跳转到主要内容

Opps CMS的Feed阅读器应用

项目描述

opps-feedcrawler
================

FeedCrawler接受任何类型的**feed**,执行其自定义处理器以创建CMS条目。


Feed
====

Feed通常是一个带有一些配置的url,**url**、**凭证**、**处理器**和**操作**

最简单的例子是一个RSS feed

- url = 'http://site.com/feed.rss'
- processor = 'opps.feedcrawler.processors.rss.RSSProcessor'
- actions = ['opps.feedcrawler.actions.rss.RSSActions'

在上面的例子中,我们有一个用于读取feed条目的**url**,feedcrawler附带了一个内置的RSS feed处理器
**RSSProcessor**将获取feed url并完成所有工作,从数据库中检索、读取和创建**条目**。

> 您可以使用自己的处理器类替换 RSSProcessor,遵循处理器API。

> 示例: 'yourproject.yourmodule.processors.MyProcessor'

> 处理器API在“处理器API”部分有文档说明


此外,您的**feed**执行**操作**,这是一个返回包含函数的Django管理操作列表的可调用路径。
操作的一个例子是“创建帖子”,它将选定的条目转换为Opps帖子。

处理器API
=============

feedcrawler提供了一个**BaseProcessor**类,您可以通过扩展它并重写一些方法。



from opps.feedcrawler.processors.base import BaseProcessor

class MyProcessor(BaseProcessor)
"""
BaseProcessor.__init__接收**feed**对象作为参数

def __init__(feed, entry_model, *args, **kwargs)
self.feed = feed
self.entry_model = entry_model

如果您需要,可以重写,但请注意。
"""

def process(self)
url = self.feed.source_url
max_entries = self.feed.max_entries
...

这里您可以在**self.feed**中访问**feed**对象
entries = read_and_parse_rss_feed(url) # 获取并解析XML feed的示例函数

现在您可以使用**self.entry_model**来创建CMS条目
for entry in entries
请记住实现自己的逻辑以避免重复
self.entry_model.objects.get_or_create(
title=entry['title']
...
...
)

这个方法应该返回读取和创建的条目数或0
return len(entries)



上述处理器将由管理命令**manage.py process_feeds -f feed_slug**执行,您也可以将此命令放入**cron**或**celery**中运行

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

opps-feedcrawler-0.2.1.tar.gz (31.4 kB 查看散列)

上传时间

构建分布

opps_feedcrawler-0.2.1-py2.7.egg (106.6 kB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面