将外部源条目转换为内容项

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>
馈送器的内容类型为:
> UL>
  • folder.feedFeederFolder
  • feedfeederitem项目
  • 工作原理

    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"配置并导入所有步骤。

    测试

    这里的第一个测试是doc/feedeer integration.txt上的doc test。

    假设您有一个构建,测试最好使用适当的设置 bin/test 命令:

    bin/test -s Products.feedfeeder
    

    我们现在使用travis进行测试:

    https://secure.travis-ci.org/collective/products.feedfeeder.png

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    泛型Java将参数约束到公共超类   java Spring引导:在构造函数中加载属性文件并用作autowire注释   java中的优先级队列顺序错误。util。优先级队列和特定比较器   带有Java Sprint引导REST的Google应用程序引擎标准在GCLOUD服务器中不起作用   安卓从Java代码中检索变量并将其作为参数分配给TestNG   用于读取列表值的Java JSON对象   java Hibernate映射:实体映射中的重复列   多线程。start()不从Java中的父线程分派   java Android facebook webdialog网络错误(netstack:lib_mgr错误)   http使用Java阻止网站   java DynamicAsper:访问连接报表中动态列的值   java如何分离文件中的每个单词,并在表中显示每个单词和每个单词的编号?   如何打包和部署EclipseJava应用程序?   java使用Mule Anypoint,我想实现没有flowref的功能   java Kafka consumer ClassNotFoundException   java错误捕获帮助;消息不断重复   javaspring,Thymeleaf和CSS如何给错误着色   javascript如何在java中实现反向ajax   如何通过UDP连接从java数据包中读取序列号?