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

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第三方库


    热门话题
    使用Selenium Java查找筛选器窗格“铅笔图标”的元素时出现问题   分布式缓存l2上使用infinispan和hibernate的java连接锁   使用Java的DOM XML API解析XML中的符号和   java是解析和操作字符串的有效方法   java发布NewRelicMeterRegistry时如何过滤仪表   多维数组在java中读取文件后将数据值分组   java如何将httpClient配置为jsoup   java BreakIterator在Android中是如何工作的?   找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装   Jlabel调整java大小   调试如何在VScode中的java类依赖项中设置断点   java正在获取文件夹名,而不是。mp3文件{Android}   java如何将从DiffieHellman类生成的AES密钥添加到使用该密钥的类