X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/cf9abb6f419c407ad53036d24c36b50105adeeff..938fc832934e508085dad3645c01060a4dc9f0c9:/apps/opds/views.py?ds=sidebyside diff --git a/apps/opds/views.py b/apps/opds/views.py index a51b5b187..06e011963 100644 --- a/apps/opds/views.py +++ b/apps/opds/views.py @@ -4,6 +4,7 @@ # from base64 import b64encode import os.path +from urlparse import urljoin from django.contrib.syndication.views import Feed from django.core.urlresolvers import reverse @@ -17,6 +18,7 @@ from basicauth import logged_in_or_basicauth, factory_decorator from catalogue.models import Book, Tag from catalogue.views import books_starting_with +from stats.utils import piwik_track _root_feeds = ( { @@ -58,7 +60,7 @@ _root_feeds = ( def full_url(url): - return "http://%s%s" % (Site.objects.get_current().domain, url) + return urljoin("http://%s" % Site.objects.get_current().domain, url) class OPDSFeed(Atom1Feed): @@ -185,7 +187,7 @@ class AcquisitionFeed(Feed): def item_enclosure_length(self, book): return book.root_ancestor.epub_file.size - +@piwik_track class RootFeed(Feed): feed_type = OPDSFeed title = u'Wolne Lektury' @@ -206,7 +208,7 @@ class RootFeed(Feed): def item_description(self, item): return item['description'] - +@piwik_track class ByCategoryFeed(Feed): feed_type = OPDSFeed link = u'http://www.wolnelektury.pl/' @@ -227,7 +229,7 @@ class ByCategoryFeed(Feed): return feed['title'] def items(self, feed): - return (tag for tag in Tag.objects.filter(category=feed['category']) if tag.get_count() > 0) + return Tag.objects.filter(category=feed['category']).exclude(book_count=0) def item_title(self, item): return item.name @@ -238,7 +240,7 @@ class ByCategoryFeed(Feed): def item_description(self): return u'' - +@piwik_track class ByTagFeed(AcquisitionFeed): def link(self, tag): return tag.get_absolute_url() @@ -263,6 +265,7 @@ class ByTagFeed(AcquisitionFeed): @factory_decorator(logged_in_or_basicauth()) +@piwik_track class UserFeed(Feed): feed_type = OPDSFeed link = u'http://www.wolnelektury.pl/' @@ -277,7 +280,7 @@ class UserFeed(Feed): return u"Półki użytkownika %s" % user.username def items(self, user): - return (tag for tag in Tag.objects.filter(category='set', user=user) if tag.get_count() > 0) + return Tag.objects.filter(category='set', user=user).exclude(book_count=0) def item_title(self, item): return item.name @@ -288,8 +291,12 @@ class UserFeed(Feed): def item_description(self): return u'' +# no class decorators in python 2.5 +#UserFeed = factory_decorator(logged_in_or_basicauth())(UserFeed) + @factory_decorator(logged_in_or_basicauth()) +@piwik_track class UserSetFeed(AcquisitionFeed): def link(self, tag): return tag.get_absolute_url() @@ -306,7 +313,10 @@ class UserSetFeed(AcquisitionFeed): def items(self, tag): return Book.tagged.with_any([tag]) +# no class decorators in python 2.5 +#UserSetFeed = factory_decorator(logged_in_or_basicauth())(UserSetFeed) +@piwik_track class SearchFeed(AcquisitionFeed): description = u"Wyniki wyszukiwania na stronie WolneLektury.pl" title = u"Wyniki wyszukiwania"