X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b2d342589a7889a3b096e7192453d53bd28eed7d..ef03d00cada0de76d1e97aa362237923243bb71e:/src/opds/views.py diff --git a/src/opds/views.py b/src/opds/views.py index 001b69d7c..adfd0730c 100644 --- a/src/opds/views.py +++ b/src/opds/views.py @@ -104,7 +104,7 @@ class OPDSFeed(Atom1Feed): handler.addQuickElement(u"title", item['title']) # add a OPDS Navigation link if there's no enclosure - if item['enclosure'] is None: + if not item.get('enclosures') is None: handler.addQuickElement( u"link", u"", {u"href": item['link'], u"rel": u"subsection", u"type": u"application/atom+xml"}) # add a "green book" icon @@ -144,14 +144,14 @@ class OPDSFeed(Atom1Feed): handler.addQuickElement(u"summary", item['description'], {u"type": u"text"}) # Enclosure as OPDS Acquisition Link - if item['enclosure'] is not None: + for enc in item.get('enclosures', []): handler.addQuickElement( u"link", '', { u"rel": u"http://opds-spec.org/acquisition", - u"href": item['enclosure'].url, - u"length": item['enclosure'].length, - u"type": item['enclosure'].mime_type, + u"href": enc.url, + u"length": enc.length, + u"type": enc.mime_type, }) # add a "red book" icon handler.addQuickElement( @@ -190,18 +190,18 @@ class AcquisitionFeed(Feed): def item_author_name(self, book): try: - return book.tags.filter(category='author')[0].name - except KeyError: + return book.authors().first().name + except AttributeError: return u'' def item_author_link(self, book): try: - return book.tags.filter(category='author')[0].get_absolute_url() - except KeyError: + return book.authors().first().get_absolute_url() + except AttributeError: return u'' def item_enclosure_url(self, book): - return full_url(book.epub_file.url) if book.epub_file else None + return full_url(book.epub_url()) if book.epub_file else None def item_enclosure_length(self, book): return book.epub_file.size if book.epub_file else None