##// END OF EJS Templates
Invalidate signatures along with global ID content
Invalidate signatures along with global ID content

File last commit:

r1414:cbf56940 default
r1565:72507874 default
Show More
rss.py
84 lines | 2.2 KiB | text/x-python | PythonLexer
from django.contrib.syndication.views import Feed
from django.core.urlresolvers import reverse
from django.shortcuts import get_object_or_404
from boards.models import Post, Tag, Thread
from boards import settings
from boards.models.thread import STATUS_ARCHIVE
__author__ = 'nekorin'
MAX_ITEMS = settings.get_int('RSS', 'MaxItems')
# TODO Make tests for all of these
class AllThreadsFeed(Feed):
title = settings.get('Version', 'SiteName') + ' - All threads'
link = '/'
description_template = 'boards/rss/post.html'
def items(self):
return Thread.objects.exclude(status=STATUS_ARCHIVE).order_by('-id')[:MAX_ITEMS]
def item_title(self, item):
return item.get_opening_post().title
def item_link(self, item):
return reverse('thread', args={item.get_opening_post_id()})
def item_pubdate(self, item):
return item.get_pub_time()
class TagThreadsFeed(Feed):
link = '/'
description_template = 'boards/rss/post.html'
def items(self, obj):
return obj.get_threads().exclude(status=STATUS_ARCHIVE).order_by('-id')[:MAX_ITEMS]
def get_object(self, request, tag_name):
return get_object_or_404(Tag, name=tag_name)
def item_title(self, item):
return item.get_opening_post().title
def item_link(self, item):
return reverse('thread', args={item.get_opening_post_id()})
def item_pubdate(self, item):
return item.get_pub_time()
def title(self, obj):
return obj.name
class ThreadPostsFeed(Feed):
link = '/'
description_template = 'boards/rss/post.html'
def items(self, obj):
return obj.get_thread().get_replies().order_by('-pub_time')[:MAX_ITEMS]
def get_object(self, request, post_id):
return get_object_or_404(Post, id=post_id)
def item_title(self, item):
return item.title
def item_link(self, item):
if not item.is_opening():
return reverse('thread', args={
item.get_thread().get_opening_post_id()
}) + "#" + str(item.id)
else:
return reverse('thread', args={item.id})
def item_pubdate(self, item):
return item.pub_time
def title(self, obj):
return obj.title