Preparing for Django 1.10
[wolnelektury.git] / src / opds / views.py
index a96bfb3..adfd073 100644 (file)
@@ -10,7 +10,7 @@ from django.core.urlresolvers import reverse
 from django.shortcuts import get_object_or_404
 from django.utils.feedgenerator import Atom1Feed
 from django.conf import settings
-from django.http import Http404, HttpResponse
+from django.http import Http404
 from django.contrib.sites.models import Site
 from django.utils.functional import lazy
 
@@ -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(
@@ -201,7 +201,7 @@ class AcquisitionFeed(Feed):
             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
@@ -361,9 +361,6 @@ class SearchFeed(AcquisitionFeed):
 
     ATOM_PLACEHOLDER = re.compile(r"^{(atom|opds):\w+}$")
 
-    def __call__(self, *args, **kwargs):
-        return HttpResponse('Search is temporarily disabled', status=503)
-
     def get_object(self, request):
         """
         For OPDS 1.1 We should handle a query for search terms