audio api
[wolnelektury.git] / src / catalogue / api / serializers.py
index 60e52a0..1608b0f 100644 (file)
@@ -156,6 +156,8 @@ class BookSerializer2(serializers.ModelSerializer):
             'epub', 'mobi', 'pdf', 'html', 'txt', 'fb2', 'xml',
             'cover_thumb', 'cover',
             'isbn_pdf', 'isbn_epub', 'isbn_mobi',
+            'abstract',
+            'has_mp3_file',
         ]
 
 class BookSerializer11Labs(serializers.ModelSerializer):
@@ -189,6 +191,17 @@ class BookSerializer11Labs(serializers.ModelSerializer):
         ]
 
 
+class MediaSerializer2(MediaSerializer):
+    size = serializers.SerializerMethodField()
+
+    class Meta:
+        model = BookMedia
+        fields = ['url', 'director', 'type', 'name', 'part_name', 'artist', 'duration', 'size']
+
+    def get_size(self, obj):
+        return obj.file.size
+
+
 class BookSerializer(LegacyMixin, serializers.ModelSerializer):
     author = serializers.CharField(source='author_unicode')
     kind = serializers.CharField(source='kind_unicode')
@@ -352,6 +365,15 @@ class FragmentDetailSerializer(serializers.ModelSerializer):
         fields = ['book', 'anchor', 'text', 'url', 'themes']
 
 
+class FragmentSerializer2(serializers.ModelSerializer):
+    url = AbsoluteURLField()
+    html = serializers.CharField(source='text')
+
+    class Meta:
+        model = Fragment
+        fields = ['anchor', 'html', 'url']
+
+
 class FilterTagSerializer(serializers.ModelSerializer):
     class Meta:
         model = Tag