X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b79db6039bfe0baeb7b01220606c2afa33655527..dec2b6f06be97c498010e0b3af0d27f27631142d:/apps/opds/views.py diff --git a/apps/opds/views.py b/apps/opds/views.py index 96a4cae53..ec93da138 100644 --- a/apps/opds/views.py +++ b/apps/opds/views.py @@ -259,7 +259,7 @@ class ByTagFeed(AcquisitionFeed): def items(self, tag): books = Book.tagged.with_any([tag]) - l_tags = Tag.objects.filter(category='book', slug__in=[book.book_tag_slug() for book in books]) + l_tags = Tag.objects.filter(category='book', slug__in=[book.book_tag_slug() for book in books.iterator()]) descendants_keys = [book.pk for book in Book.tagged.with_any(l_tags)] if descendants_keys: books = books.exclude(pk__in=descendants_keys) @@ -370,6 +370,11 @@ class SearchFeed(AcquisitionFeed): author = request.GET.get('author', '') title = request.GET.get('title', '') translator = request.GET.get('translator', '') + + # Our client didn't handle the opds placeholders + if author == '{atom:author}': author = '' + if title == '{atom:title}': title = '' + if translator == '{atom:contributor}': translator = '' categories = None fuzzy = False @@ -384,7 +389,7 @@ class SearchFeed(AcquisitionFeed): if author: print "narrow to author %s" % author - hint.tags(srch.search_tags(author, filter=srch.term_filter(Term('tag_category', 'author')))) + hint.tags(srch.search_tags(author, filt=srch.term_filter(Term('tag_category', 'author')))) if translator: print "filter by translator %s" % translator @@ -401,7 +406,7 @@ class SearchFeed(AcquisitionFeed): if title: print "hint by book title %s" % title q = srch.make_phrase(srch.get_tokens(title, field='title'), field='title') - hint.books(*srch.search_books(q, filter=flt)) + hint.books(*srch.search_books(q, filt=flt)) toks = srch.get_tokens(query) print "tokens: %s" % toks @@ -428,7 +433,7 @@ class SearchFeed(AcquisitionFeed): srch.make_phrase(srch.get_tokens(q, field=fld), field=fld))) flt = srch.chain_filters(filters) - books = srch.search_books(TermQuery(Term('is_book', 'true')), filter=flt) + books = srch.search_books(TermQuery(Term('is_book', 'true')), filt=flt) return books def get_link(self, query):