You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
from datetime import datetime
|
|
|
|
from django.contrib.auth import get_user_model
|
|
from django.contrib.syndication.views import Feed
|
|
from django.utils.feedgenerator import Rss201rev2Feed
|
|
|
|
from djangoblog.utils import CommonMarkdown
|
|
from blog.models import Article
|
|
|
|
|
|
class DjangoBlogFeed(Feed):
|
|
feed_type = Rss201rev2Feed
|
|
|
|
description = '大巧无工,重剑无锋.'
|
|
title = "且听风吟 大巧无工,重剑无锋. "
|
|
link = "/feed/"
|
|
|
|
def author_name(self):
|
|
return get_user_model().objects.first().nickname
|
|
|
|
def author_link(self):
|
|
return get_user_model().objects.first().get_absolute_url()
|
|
|
|
def items(self):
|
|
return Article.objects.filter(type='a', status='p').order_by('-pub_time')[:5]
|
|
|
|
def item_title(self, item):
|
|
return item.title
|
|
|
|
def item_description(self, item):
|
|
return CommonMarkdown.get_markdown(item.body)
|
|
|
|
def feed_copyright(self):
|
|
now = datetime.now()
|
|
return "Copyright© {year} 且听风吟".format(year=now.year)
|
|
|
|
def item_link(self, item):
|
|
return item.get_absolute_url()
|
|
|
|
def item_guid(self, item):
|
|
return
|