#rss #watch #atom #monitor

app rss-watch

rss-watch 是一个命令行 rss/atom 订阅监视工具

1 个不稳定版本

0.1.0 2019 年 3 月 1 日

#1466数据库接口

BSD-2-Clause

21KB
430

rss-watch

Build Status License Crates.io

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