diff options
Diffstat (limited to 'app/lib/django_comments/feeds.py')
-rw-r--r-- | app/lib/django_comments/feeds.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/lib/django_comments/feeds.py b/app/lib/django_comments/feeds.py new file mode 100644 index 0000000..bc8c501 --- /dev/null +++ b/app/lib/django_comments/feeds.py @@ -0,0 +1,33 @@ +from django.contrib.sites.shortcuts import get_current_site +from django.contrib.syndication.views import Feed +from django.utils.translation import ugettext as _ + +import django_comments + + +class LatestCommentFeed(Feed): + """Feed of latest comments on the current site.""" + + def __call__(self, request, *args, **kwargs): + self.site = get_current_site(request) + return super(LatestCommentFeed, self).__call__(request, *args, **kwargs) + + def title(self): + return _("%(site_name)s comments") % dict(site_name=self.site.name) + + def link(self): + return "http://%s/" % (self.site.domain) + + def description(self): + return _("Latest comments on %(site_name)s") % dict(site_name=self.site.name) + + def items(self): + qs = django_comments.get_model().objects.filter( + site__pk=self.site.pk, + is_public=True, + is_removed=False, + ) + return qs.order_by('-submit_date')[:40] + + def item_pubdate(self, item): + return item.submit_date |