Skip to content
Snippets Groups Projects
Select Git revision
  • 170-rss-feed
  • 170-channels-ui
  • develop default protected
  • 107-actor-api
  • rely-on-musicbrainz
  • fix-broken-playlist-cards
  • master
  • ollie/funkwhale-documentation-fixes
  • vuln-testing
  • plugins-v2
  • limit-album-tracks
  • 925-flac-transcoding
  • 865-sql-optimization
  • 890-notification
  • 839-donation-link
  • landing-page
  • plugins
  • add-new-shortcuts
  • 735-table-truncate
  • webdav
  • 0.20.1
  • 0.20.0
  • 0.20.0-rc1
  • 0.19.1
  • 0.19.0
  • 0.19.0-rc2
  • 0.19.0-rc1
  • 0.18.3
  • 0.18.2
  • 0.18.1
  • 0.18
  • 0.17
  • 0.16.3
  • 0.16.2
  • 0.16.1
  • 0.16
  • 0.15
  • 0.14.2
  • 0.14.1
  • 0.14
40 results

pyproject.toml

Blame
  • Forked from funkwhale / funkwhale
    Source project has a limited visibility.
    serializers.py NaN GiB
    from rest_framework import serializers
    
    from funkwhale_api import plugins
    from funkwhale_api.activity import serializers as activity_serializers
    from funkwhale_api.common import utils
    from funkwhale_api.federation import serializers as federation_serializers
    from funkwhale_api.music import models as music_models
    from funkwhale_api.music.serializers import TrackActivitySerializer, TrackSerializer
    from funkwhale_api.users.serializers import UserActivitySerializer, UserBasicSerializer
    
    from . import models
    
    
    class ListeningActivitySerializer(activity_serializers.ModelSerializer):
        type = serializers.SerializerMethodField()
        object = TrackActivitySerializer(source="track")
        actor = UserActivitySerializer(source="user")
        published = serializers.DateTimeField(source="creation_date")
    
        class Meta:
            model = models.Listening
            fields = ["id", "local_id", "object", "type", "actor", "published"]
    
        def get_actor(self, obj):
            return UserActivitySerializer(obj.user).data
    
        def get_type(self, obj):
            return "Listen"
    
    
    class ListeningSerializer(serializers.ModelSerializer):
        track = TrackSerializer(read_only=True)
        user = UserBasicSerializer(read_only=True)
        actor = serializers.SerializerMethodField()
    
        class Meta:
            model = models.Listening
            fields = ("id", "user", "track", "creation_date", "actor")
    
        def create(self, validated_data):
            validated_data["user"] = self.context["user"]
    
            return super().create(validated_data)
    
        def get_actor(self, obj):
            actor = obj.user.actor
            if actor:
                return federation_serializers.APIActorSerializer(actor).data
    
    
    class ListeningWriteSerializer(serializers.ModelSerializer):
        class Meta:
            model = models.Listening
            fields = ("id", "user", "track", "creation_date")
    
        def create(self, validated_data):
            validated_data["user"] = self.context["user"]
    
            instance = super().create(validated_data)
            plugins_conf = getattr(self.context["request"], "plugins_conf", None)
            utils.on_commit(
                plugins.hooks.dispatch,
                "history.listening.created",
                listening=instance,
                plugins_conf=plugins_conf,
            )
            return instance
    
    
    class NowSerializer(serializers.Serializer):
        track = serializers.PrimaryKeyRelatedField(
            queryset=music_models.Track.objects.all()
        )