Fix #260: Implemented scrobble endpoint of subsonic API

This commit is contained in:
Eliot Berriot 2018-06-01 23:59:08 +02:00
parent 9ee0f09ff4
commit 0f792bf75c
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
5 changed files with 72 additions and 2 deletions

View file

@ -4,6 +4,7 @@ from django.db.models import functions, Count
from rest_framework import serializers
from funkwhale_api.history import models as history_models
from funkwhale_api.music import models as music_models
@ -228,3 +229,18 @@ def get_music_directory_data(artist):
td['size'] = tf.size
data['child'].append(td)
return data
class ScrobbleSerializer(serializers.Serializer):
submission = serializers.BooleanField(default=True, required=False)
id = serializers.PrimaryKeyRelatedField(
queryset=music_models.Track.objects.annotate(
files_count=Count('files')
).filter(files_count__gt=0)
)
def create(self, data):
return history_models.Listening.objects.create(
user=self.context['user'],
track=data['id'],
)