示例#1
0
文件: blog.py 项目: ryankask/esther
def posts_feed():
    base_url = url_for('general.index', _external=True)
    items = []
    posts = Post.get_published(num=10).all()

    for post in posts:
        post_url = urljoin(base_url, post.url)

        # TODO: Add a real description
        item = RSSItem(
            title=post.title,
            link=post_url,
            description=post.body.split('\r\n', 1)[0],
            author='{} ({})'.format(post.author.email, post.author.full_name),
            categories=[tag.name for tag in post.tags],
            guid=Guid(post_url),
            pubDate=post.pub_date
        )
        items.append(item)

    feed_config = current_app.config['BLOG_POSTS_FEED']
    rss2_feed = RSS2(
        title=feed_config['title'],
        link=base_url,
        description=feed_config['description'],
        language='en-us',
        webMaster=feed_config['webmaster'],
        lastBuildDate=posts[0].pub_date if posts else None,
        ttl=1440,
        items=items
    )
    return current_app.response_class(rss2_feed.to_xml(encoding='utf-8'),
                                      mimetype='application/rss+xml')
示例#2
0
def posts_feed():
    base_url = url_for('general.index', _external=True)
    items = []
    posts = Post.get_published(num=10).all()

    for post in posts:
        post_url = urljoin(base_url, post.url)

        # TODO: Add a real description
        item = RSSItem(title=post.title,
                       link=post_url,
                       description=post.body.split('\r\n', 1)[0],
                       author='{} ({})'.format(post.author.email,
                                               post.author.full_name),
                       categories=[tag.name for tag in post.tags],
                       guid=Guid(post_url),
                       pubDate=post.pub_date)
        items.append(item)

    feed_config = current_app.config['BLOG_POSTS_FEED']
    rss2_feed = RSS2(title=feed_config['title'],
                     link=base_url,
                     description=feed_config['description'],
                     language='en-us',
                     webMaster=feed_config['webmaster'],
                     lastBuildDate=posts[0].pub_date if posts else None,
                     ttl=1440,
                     items=items)
    return current_app.response_class(rss2_feed.to_xml(encoding='utf-8'),
                                      mimetype='application/rss+xml')
示例#3
0
 def test_get_published(self):
     post = self.create_post()
     self.assertEqual(len(Post.get_published().all()), 0)
     post.publish()
     self.assertEqual(len(Post.get_published().all()), 1)