跳转到主要内容

下载RSS/Atom源并转换为Maildir消息

项目描述

https://travis-ci.org/wosc/rsspull.png

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&amp;ticket=on&amp;changeset=on&amp;wiki=on&amp;max=10&amp;daysback=90&amp;format=rss" auth="user:password"/>
    </outline>
  </body>
</opml>

关于格式的说明

  • 您可以使用嵌套的<outlines>将源分组,这不会影响rsspull。

  • text属性用作相对于~/.rsspull/configmaildir设置的文件夹名称。如果您在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)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

ws.rsspull-2.5.0.tar.gz (47.3 kB 查看哈希值)

上传时间

构建分发

ws.rsspull-2.5.0-py3-none-any.whl (48.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面