下载RSS/Atom源并转换为Maildir消息
项目描述
rsspull下载并解析RSS和Atom源,将帖子转换为电子邮件消息,并将它们存储在Maildirs中。这样您就可以使用电子邮件客户端阅读源(我使用claws,因此我可以在一个应用程序中访问邮件列表、新闻组和源)。主要工作由神奇的feedparser库执行。
安装
rsspull至少需要Python 3.3。您可以从PyPI安装它,如下所示
$ pip install ws.rsspull
您需要在~/.rsspull/config中创建一个配置文件,例如
[global] target = ~/Maildir/rss target_type = maildir logfile = ~/.rsspull/log workers = 1 user_agent = optional custom header
对于低流量应用程序,您也可以通过SMTP发送电子邮件
[global] target = test@example.com target_type = smtp://my-smtp-server.example.com
在~/.rsspull/feeds.opml中列出您想要抓取的源
<?xml version="1.0" encoding="utf-8"?> <opml version="1.1"> <head> <title>feeds.opml</title> <ownerName>rsspull</ownerName> <ownerEmail>rsspull@localhost</ownerEmail> </head> <body> <outline text="tech"> <outline text="ongoing" xmlUrl="http://www.tbray.org/ongoing/ongoing.atom" /> </outline> <outline text="general"> <outline text="heisec" xmlUrl="http://www.heise.de/security/news/news.rdf" /> <outline text="trac_example" xmlUrl="https://example.com/trac/timeline?milestone=on&ticket=on&changeset=on&wiki=on&max=10&daysback=90&format=rss" auth="user:password"/> </outline> </body> </opml>
关于格式的说明
您可以使用嵌套的<outlines>将源分组,这不会影响rsspull。
text属性用作相对于~/.rsspull/config中maildir设置的文件夹名称。如果您在IMAP服务器上运行rsspull,您可以使用类似text=".rss.tech.ongoing"的东西创建文件夹层次结构(检查您的IMAP服务器文档,了解它如何表示文件夹层次结构。点示例对Courier有效,其他可能使用实际的子文件夹,等等)。
支持使用auth属性进行基本身份验证。
您可以使用file:// URL。
然后只需运行
$ rsspull
来下载源。
您可以将 rsspull --confdir /path/to/config 传递给命令,以使用除 ~/.rsspull 之外的其他位置。
功能
使用 If-Modified-Since HTTP头信息,避免下载未更改的订阅源。
为每条消息添加一个 Content-Location 头信息,包含该帖子的URL。我在claws中将以下脚本绑定到[返回],以便在网页浏览器中打开当前条目。
#!/bin/bash URL=`sed -ne '/^Content-Location/s/.*: //p' $1 | head -n 1` if [ -n "$URL" ]; then mozilla $URL &> /dev/null fi
条目被转换为多部分消息,一部分是原始HTML,另一部分被转换为类似Markdown的纯文本(通过html2text),因此大多数情况下,在浏览器中打开都不是必要的,因为您可以直接在电子邮件客户端中阅读帖子。
可以使用多个工作线程来下载和解析订阅源,以提高性能,因为大量时间都花在等待下载完成上(workers 设置在 ~/.rsspull/config 中)。
自2007年以来一直作为日常使用,因此它绝对“适用于我”(tm)。
变更
2.5.0 (2023-04-16)
变更
使用户代理头信息可配置(useragent)
2.4.0 (2023-04-04)
变更
停止支持Python-2(py2)
从setup.py切换到pyproject.toml(wheel)
2.3.1 (2023-03-20)
在订阅源名称中转义“/”,以避免创建文件名
2.3.0 (2018-04-03)
使SMTP服务器可配置。
2.2.1 (2018-03-30)
修复Python-3的Unicode问题。
2.2 (2018-03-24)
支持通过SMTP发送消息,作为写入Maildir的替代方案。
添加命令行选项以设置配置目录。
2.1 (2018-03-06)
从urllib2切换到requests。
使Python-3兼容。
2.0 (2014-02-22)
从使用curl切换到使用urllib2。
打包为egg。
1.2 (2013-10-03)
使用stdlib xml解析器而不是python-xml。
1.1 (2009-05-23)
直接将消息写入Maildir,而不是使用procmail。
将消息作为多部分,包括文本和HTML发送。
1.0 (2007-03-31)
首次发布,灵感来源于 http://newspipe.sourceforge.net/。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。