1 个不稳定版本
0.1.0 | 2019 年 3 月 1 日 |
---|
#1466 在 数据库接口
21KB
430 行
rss-watch
rss-watch 是一个命令行工具,用于监视 RSS/Atom 订阅并在给定订阅上出现新条目时执行脚本。
条目数据将通过环境变量传递给脚本。
用法
rss-watch
创建一个 SQLite 数据库以跟踪之前看到的订阅和条目。
如果你不使用 -d
标志覆盖数据库路径,则将根据你的平台使用以下默认位置。
平台 | 路径 |
---|---|
*nix | $XDG_DATA_HOME/rss-watch/database.db |
MacOS | $HOME/Library/Application Support/rss-watch/database.db |
Windows | %LOCALAPPDATA%\mkroman\rss-watch\database.db |
如果你不希望为现有条目执行脚本,那么在第一次监视新订阅时使用 rss-watch
的 --init
是一个好主意。
rss-watch --init -i 6h https://blog.rust-lang.org/feed.xml ./some-script.sh
它将开始监视 Rust 博客,并且只有从这个点开始出现新条目时才会运行 ./some-script.sh
,而
rss-watch -i 6h https://blog.rust-lang.org/feed.xml ./some-script.sh
如果这是第一次监视此订阅,则将立即为每个现有条目运行 ./some-script.sh
。
示例
在出现新提交时发布 Redis 消息
创建包含以下内容的 publish-redis-message.sh
文件
#!/usr/bin/env bash
redis-cli publish some.channel "There's a new commit: ${FEED_LINK}"
使其可执行
chmod +x ./publish-redis-message.sh
然后使用以下方式运行 rss-watch
rss-watch -i 1m https://github.com/mkroman/rss-watch/commits/master.atom ./publish-redis-message.sh
然后它将每分钟检查一次新提交,并将提交 URL 发布到 some.channel
频道。
环境变量
这是一个可以将它们传递给脚本的变量的列表。
名称 | 描述 |
---|---|
FEED_URL | 整个订阅的 URL。 __必需__ |
FEED_GUID | 给定条目的唯一 ID。这用于区分条目和旧的条目。 __必需__ |
FEED_LINK | 指向此条目“完整故事”的链接。在 Atom 条目中,这将是最先出现的“alternate”链接。 _可选_ |
FEED_TITLE | 新条目的标题。 _可选_ |
安装
先决条件
- libsqlite3-dev
rss-watch
目前仅在 crates.io 或 GitHub 上提供。
使用 Cargo 安装最新稳定版本
cargo install rss-watch
使用 Cargo 从 git 安装
cargo install --git https://github.com/mkroman/rss-watch.git rss-watch
许可证
本软件根据BSD 2条款许可证授权。
依赖项
~53MB
~1M SLoC