X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/1beaf3b696a5de934f5df02081b95fce8c933e5b..82cef4d2af27243f4f4c33bafd9e1c2447d41895:/apps/opds/views.py diff --git a/apps/opds/views.py b/apps/opds/views.py index 09aaa5477..ec93da138 100644 --- a/apps/opds/views.py +++ b/apps/opds/views.py @@ -194,10 +194,10 @@ class AcquisitionFeed(Feed): class RootFeed(Feed): feed_type = OPDSFeed title = u'Wolne Lektury' - link = u'http://www.wolnelektury.pl/' + link = u'http://wolnelektury.pl/' description = u"Spis utworów na stronie http://WolneLektury.pl" author_name = u"Wolne Lektury" - author_link = u"http://www.wolnelektury.pl/" + author_link = u"http://wolnelektury.pl/" def items(self): return _root_feeds @@ -214,10 +214,10 @@ class RootFeed(Feed): @piwik_track class ByCategoryFeed(Feed): feed_type = OPDSFeed - link = u'http://www.wolnelektury.pl/' + link = u'http://wolnelektury.pl/' description = u"Spis utworów na stronie http://WolneLektury.pl" author_name = u"Wolne Lektury" - author_link = u"http://www.wolnelektury.pl/" + author_link = u"http://wolnelektury.pl/" def get_object(self, request, category): feed = [feed for feed in _root_feeds if feed['category']==category] @@ -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) @@ -274,7 +274,7 @@ class UserFeed(Feed): link = u'http://www.wolnelektury.pl/' description = u"Półki użytkownika na stronie http://WolneLektury.pl" author_name = u"Wolne Lektury" - author_link = u"http://www.wolnelektury.pl/" + author_link = u"http://wolnelektury.pl/" def get_object(self, request): return request.user @@ -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):