From dd5ca8bb0dc7051c2860be668065c968f92c222c Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Wed, 26 Nov 2025 15:22:25 +0100 Subject: [PATCH] api: cw, audiences, elevenreader --- src/catalogue/api/serializers.py | 2 ++ src/catalogue/models/book.py | 15 +++++++++++++++ src/catalogue/templatetags/catalogue_tags.py | 10 +--------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/catalogue/api/serializers.py b/src/catalogue/api/serializers.py index 617ebe854..626ad47e4 100644 --- a/src/catalogue/api/serializers.py +++ b/src/catalogue/api/serializers.py @@ -155,6 +155,7 @@ class BookSerializer2(serializers.ModelSerializer): view_name='catalogue_api_book', lookup_field='slug' ) + audiences = serializers.ListField(source='audiences_pl') class Meta: model = Book @@ -170,6 +171,7 @@ class BookSerializer2(serializers.ModelSerializer): 'isbn_pdf', 'isbn_epub', 'isbn_mobi', 'abstract', 'has_mp3_file', 'has_sync_file', + 'elevenreader_link', 'content_warnings', 'audiences', ] class BookSerializer11Labs(serializers.ModelSerializer): diff --git a/src/catalogue/models/book.py b/src/catalogue/models/book.py index 35ca3c1f9..ecde5563d 100644 --- a/src/catalogue/models/book.py +++ b/src/catalogue/models/book.py @@ -1107,6 +1107,21 @@ class Book(models.Model): def ridero_link(self): return 'https://ridero.eu/%s/books/wl_%s/' % (get_language(), self.slug.replace('-', '_')) + def elevenreader_link(self): + return 'https://elevenreader.io/audiobooks/wolnelektury:' + self.get_first_text().slug + + def content_warnings(self): + warnings_def = { + 'wulgaryzmy': _('wulgaryzmy'), + } + warnings = self.get_extra_info_json().get('content_warnings', []) + warnings = [ + warnings_def.get(w, w) + for w in warnings + ] + warnings.sort() + return warnings + def full_sort_key(self): return self.SORT_KEY_SEP.join((self.sort_key_author, self.sort_key, str(self.id))) diff --git a/src/catalogue/templatetags/catalogue_tags.py b/src/catalogue/templatetags/catalogue_tags.py index ddf1a8fba..e79563cb3 100644 --- a/src/catalogue/templatetags/catalogue_tags.py +++ b/src/catalogue/templatetags/catalogue_tags.py @@ -424,16 +424,8 @@ def status(book, user): @register.inclusion_tag('catalogue/snippets/content_warning.html') def content_warning(book): - warnings_def = { - 'wulgaryzmy': _('wulgaryzmy'), - } - warnings = book.get_extra_info_json().get('content_warnings', []) - warnings = sorted( - warnings_def.get(w, w) - for w in warnings - ) return { - "warnings": warnings + "warnings": book.content_warnings(), } -- 2.20.1