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**中运行
================
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 查看散列)
关闭
opps-feedcrawler-0.2.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | fe93d09f3acb896969ab95d0e97e799d1d50dfb8f559fe0dacd7cc76dfff7f7e |
|
MD5 | bcf26d6e169000b4ff114f47ed83e89d |
|
BLAKE2b-256 | 6ea7c58103253646c67fd999720dde61a80d177342d4ecf52e11ac001426c661 |
关闭
opps_feedcrawler-0.2.1-py2.7.egg的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | dd0df66c7d5b6d80ac82f0e4709017b140f3a549644197214034ca808c17b991 |
|
MD5 | 18ee38ae43b7a67ce044e83e5cefa706 |
|
BLAKE2b-256 | 701c35c9fea007e37e5ddb9c59770b575a2afc31eac44585f77cbd04d48c1b63 |