将外部源条目转换为内容项
Products.feedfeeder的Python项目详细描述
进料器
feedfeed只需要做一些事情:
- 阅读一些atom提要(不要太多)。
- 从atom提要中提取的条目创建feedfederitems。 任何包含存储模块的源项都将具有存储模块 下拉并作为文件项添加到源项。
- 这意味着找出哪些项目是新的,这也意味着 一个好的id生成机制。
等等,没有现有的产品?
zope和 普罗恩他们似乎都不合适。只有一个 实际将条目存储在zope数据库中的产品,但是 这是针对很多用户单独添加大量feed, 所以它需要一个单独的zeo过程(旧版本)或者 独立的MySQL数据库(新版本)。
所有其他产品都没有在数据库中存储条目 旧的/未维护的/等。
在某种意义上,我们使用的是现有的产品,就像我们使用马克·皮尔格林的 优秀的feedparser( http://feedparser.org )可以完成实际的 原子读数。
产品名称
该产品将atom提要的内容作为文档/文件提供给plone 内容类型。所以"feedfeeder"有点自嘲 姓名。乐趣很重要:—)
产品结构
我正在使用archgenxml生成锅炉板。有一个 "generate.sh"将为您调用archgenxml的shell脚本。没有什么 幻想.
< DL>工作原理
feed feed是一个文件夹,其中包含所有以前添加的feed 作为文档或文件的条目。它有一个"feeds"属性 包含要读取的源列表。
feedparser被周期性地调用(通过cron作业?)解析 喂养。提要中的项的uid转换为合适的 filename(条目的atom id的md5 hex散列),这样您就可以 检测是否有新项目。
新项目将转换为源项目。 feed数据填充到feed项中(请参阅名为objectinfo的字段)。
订阅源文件夹的计划更新
zope可以配置为定期触发url调用。 在zope.conf中,可以使用<;clock server>;指令定义计划和url 使用以下数据:
<clock-server> method /path_to_feedfolder/update_feed_items period 3600 # seconds user admin password 123 host localhost:8080 </clock-server>
更新所有源一次
如果你的站点有几个feed文件夹 希望在您可以执行以下操作时全部更新:
<clock-server> method /yoursiteid/feed-mega-update period 3600 # seconds user admin password 123 host localhost:8080 </clock-server>
删除旧的馈送项目
您可以定期删除超过特定天数的订阅源项目。例如,要每周删除一次超过90天的订阅源项目,您可以执行以下操作:
<clock-server> method /yoursiteid/feed-mega-cleanup?days=90 period 604800 # seconds user admin password 123 host localhost:8080 </clock-server>
依赖关系
从版本3开始,我们需要plone 4.3或5.0。
plone 5:在附加组件控制面板中,还需要安装 "plone的原型内容类型"。否则,如果您尝试添加 feedFeederFolder,您将得到一个404未找到错误,因为 找不到createobject 脚本。
对于较早的PLONE4版本,请使用版本2.x。当前最新版本是2.8。
如果您使用plone 3,请使用products.feedfeeder版本 2行。当前最新版本是2.0.9。
升级说明
如果您在plone 4.0或4.1中安装了products.feedfeeder 2.1.x 如果你升级到4.2或更高版本,那么你将丢失一些 以新样式列出或订购馈电线项目的功能 收藏。要解决这个问题,您应该转到 zope管理界面,访问导入选项卡,选择 "F"eedfeeder registry"配置并导入所有步骤。