简单提要聚合器
plutopluto的Python项目详细描述
plutopluto-简单提要聚合器
概述
显示来自多个源的帖子:
plutopluto http://xkcd.com/atom.xml http://what-if.xkcd.com/feed.atom
显示来自多页提要的帖子:
plutopluto http://staff.tumblr.com/page/{page}/rss
从单独的文件加载配置(带有URL):
plutopluto -c config.cfg
历史记录
几年前当我停止使用facebook时,我唯一错过的就是 得到一系列有趣的东西。我真的很喜欢滚动 看一些图片,读一些讨论,看一些视频。
所以我开始寻找替代品。很快我意识到我没有 需要一个社交网络。现有博客基础设施 rss或atom提要已经足够满足我想要的任何东西了。
唯一缺少的是在流中显示这些提要的好方法。所以 这就是我想要创建的:一个流式的提要阅读器。
后来我意识到我想使用plutopluto还有第二个原因: 很多博客都很烂。它们要么看起来很难看,要么速度慢得无法使用。 尤其是以图片为中心的博客。所以我就点燃冥王星 有了博客的feed,有了一个漂亮干净的界面可以滚动浏览 内容。
架构
我最初在php中实现了plutopluto。这是对javascript的重写。
不幸的是,跨源策略阻止javascript访问 直接供给。所以有一个最小的python服务器来获取feed和 还将它们转换为json。我可以使用第三方服务,比如 google feed API但我不想泄露任何数据给google和 另外,我已经从另一个项目获得了所需的python代码。
javascript代码依赖于jquery。但是,我写了一个 受jqlite启发的重新实现。为什么?因为它 很有趣。
设计
默认的设计是极简主义和实用的。它只是一个帖子列表 按时间排序。当你滚动到底部时,会加载更多的帖子,因此 可以一直滚动直到没有帖子留下。每个帖子都有标题 节中包含发布时间和源名称。当你点击 在源代码上你转到原始帖子。
这个设计灵感来自soup.io,也类似于tumblr。
配置
您可以配置所有flask related options以及HOST,PORT 以及使用plutopluto --config FILE的单独配置文件中的URLS。有关示例,请参见example.cfg。如果没有提供配置, 尝试使用文件.plutopluto.cfg,首先在当前文件夹中,然后在 回家。
有些选项可以直接传递给plutopluto。见plutopluto --help。 如果定义了,它们将优先于配置文件中的那些。
扩展/破解
这个项目的一切都是为了简单。我是认真的。 我真的希望代码能被尽可能多的人理解和扩展 尽可能的。如果你看到任何你不理解的东西:请创建一个bug 报告。
常见问题解答
-
为什么叫“冥王星”?
- 有一种传统的feed聚合器称为: planetplanet, moonmoon 什么是favicon? 这是一个悲伤的冥王星。When I was a child, pluto was still considered a planet.
- 帖子排序不正确
- 加载和解析许多feed需要一些时间。所以当第一个帖子是 显示,许多源尚未完成。事实上,第一个帖子是 加载第一个源后立即显示。所以前几篇文章 必须来自同一来源。
- 流总是从同一个源开始
- 参见上一个问题。