3 个不稳定版本
0.3.0 | 2024年7月10日 |
---|---|
0.2.2 | 2022年10月14日 |
0.2.1 | 2022年10月13日 |
#1121 在 命令行工具
57KB
1K SLoC
关于 rss-actions
这是一个用于跟踪 RSS 源并在更新时自动运行脚本的 Rust 库和命令行程序。
通过 URL 和别名添加源,您可以为源关联多个过滤器,这些过滤器可以根据条目的标题中的关键字来匹配源中的特定条目。过滤器还与一个脚本相关联,该脚本会在每个与过滤器关键字匹配的条目上运行。
总结一下,源有:
- 一个名称,称为别名
- 一个 URL
过滤器有:
- 与之关联的源,通过别名引用
- 用于匹配相关联源中每个条目的关键字列表
- 在匹配的条目上运行的脚本
- 标记过滤器上次匹配时间的戳(不是源中最新的条目!)
每个源只下载一次,以防止在单个源上有多个过滤器时意外触达速率限制。
数据存储在本地 sqlite 数据库中。
使用方法
使用以下方法添加源:
rss-actions add feed <alias> <url>
使用以下方法添加过滤器:
rss-actions add filter <alias> <path-to-script> [keywords...]
然后添加一个 crontab 条目或 systemd 定时器文件,调用
rss-actions update
要列出源和过滤器,可以使用 rss-actions list feeds
和 rss-actions list filters
。
使用和部署说明
请注意,如果您希望更新以不同的用户身份运行,您必须将配置文件从 $XDG_CONFIG_DIR/rss-actions/
和 sqlite 数据库从 $XDG_DATA_DIR/rss-actions/
复制到其他用户家目录中的相应目录,或更改配置文件以指向数据库的正确位置。此外,请确保您的脚本具有正确的位置并且是可访问的。
其他事项
在编写此程序时,我尝试只编写“集成”测试,即在顶级目录 tests/ 中。
到目前为止,唯一未被捕获的错误是
-
在我的测试中,我创建了一个自定义配置,使用临时数据库目录,因此我错过了默认目录(~/.local/share/rss-actions/)不存在的情况。这可能会通过检查代码覆盖率来捕获。在之前的项目中,我为此显式进行了测试,实际上操作了$HOME环境变量,并使用全局锁以确保对该测试的测试不能并行运行(但其余的测试套件可以)。
-
关键字匹配应该是大小写不敏感的,但我的测试中没有测试这一点
依赖项
~32–44MB
~804K SLoC