20 个版本
0.7.1 | 2024年5月9日 |
---|---|
0.7.0 | 2024年2月2日 |
0.7.0-beta.3 | 2024年1月24日 |
0.7.0-beta.1 | 2023年12月19日 |
0.1.0-beta.0 | 2021年6月1日 |
#188 在 命令行工具
49KB
1.5K SLoC
RSS Forwarder
检查 RSS/Atom 资源的新条目并将它们转发到不同的目标(称为“接收器”),例如 webhook 或应用程序/脚本。
支持的接收器
接收器 | 类型值 | 描述 |
---|---|---|
Discord | discord |
Discord webhook |
Slack | slack |
Slack webhook |
自定义 | custom |
JSON 流到 stdin |
支持的平台
平台 | 架构 | 图像* |
---|---|---|
Linux | x86_64, aarch64 | ✅ |
macOS | x86_64, aarch64 | ❌ |
Windows | - | ❌ |
* 表示是否有容器(Docker)镜像可用
安装
官方二进制文件
您可以从 发行页面 下载最新二进制文件
Cargo
cargo install rss-forwarder@<version>
# or from source
cargo install --git https://github.com/morphy2k/rss-forwarder.git
容器镜像
请参阅 GitHub 容器包
使用方法
USAGE: rss-forwarder [OPTIONS] <CONFIG_FILE>
OPTIONS:
-f, --format <FORMAT> Log format: full, pretty, compact, json (default: full)
--color <WHEN> Colorize output: auto, always, never (default: auto)
--debug Enables debug mode
--verbose Enables verbose mode
-h, --help Show this help message
-v, --version Show version information
配置
资源配置以 TOML 文件的形式传递。
资源
字段 | 类型 | 必需 | 默认 | 描述 |
---|---|---|---|---|
url |
字符串 | 是 | RSS 资源的 URL | |
interval |
字符串 | 否 | 60s | 指定检查的时间间隔。例如 10m 、3h 、1d 。 |
retry_limit |
无符号整数 | 否 | 10 | 指定发生某些错误后的重试次数。 |
sink |
对象 | 是 | 接收器选项 |
Discord 接收器
将资源项发送到 Discord webhook
字段 | 类型 | 必需 | 默认 | 描述 |
---|---|---|---|---|
type |
字符串 | 是 | 接收器类型 | |
url |
字符串 | 是 | Discord webhook URL |
Slack 接收器
将资源项发送到 Slack webhook
字段 | 类型 | 必需 | 默认 | 描述 |
---|---|---|---|---|
type |
字符串 | 是 | 接收器类型 | |
url |
字符串 | 是 | Slack webhook URL |
自定义接收器
以 NDJSON 格式将资源项流到 stdin。
字段 | 类型 | 必需 | 默认 | 描述 |
---|---|---|---|---|
type |
字符串 | 是 | 接收器类型 | |
command |
字符串 | 是 | 程序路径 | |
参数 |
[字符串] | 否 | 传递给程序的参数。 |
JSON 示例
{
"title": "Item Example",
"description": "This is an example",
"content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.",
"link": "https://example.com/news/item-example",
"date": "2021-09-08T23:12:05+02:00",
"authors": [
{
"name": "Jane Doe",
"email": "[email protected]",
"uri": "https://example.com/author/jane-doe"
}
]
}
配置示例
# Feed 1
[feeds.github-blog]
url = "https://github.blog/all.atom"
interval = "10m"
retry_limit = 5
sink.type = "discord"
sink.url = "https://discord.com/api/webhooks/84175.../OZdejNBCL1..."
# Feed 2
[feeds.rust-blog]
url = "https://blog.rust-lang.net.cn/feed.xml"
interval = "1m"
[feeds.rust-blog.sink]
type = "custom"
command = "bash"
arguments = ["-c", "cat - >> ./rust-blog.log"]
依赖关系
~19–33MB
~592K SLoC