rssbot
其他语言: 英文
Telegram RSS 机器人 @RustRssBot
支持:
- RSS 0.9
- RSS 0.91
- RSS 0.92
- RSS 0.93
- RSS 0.94
- RSS 1.0
- RSS 2.0
- Atom 0.3
- Atom 1.0
- JSON Feed 1
使用
/rss - 显示当前订阅的 RSS 列表
/sub - 订阅一个 RSS: /sub http://example.com/feed.xml
/unsub - 退订一个 RSS: /unsub http://example.com/feed.xml
/export - 导出为 OPML
下载
可直接从 Releases 下载预编译的程序(带 zh
的为中文版), Linux 版本为 musl 静态链接, 无需其他依赖
编译
请先尝试从上面下载, 如不可行或者有其他需求再手动编译
先安装 Rust Nightly 以及 Cargo (推荐使用 rustup
), 然后:
cargo build --release
编译好的文件位于: ./target/release/rssbot
运行
用法:
rssbot [标志] [选项] <token>
标志:
-h, --help 打印帮助信息
--insecure 危险: 不安全模式, 接受无效的 TLS 证书
--restricted 使机器人命令只对群组管理员可用
-V, --version 打印版本信息
选项:
--admin <用户 id>... 私人模式, 只有指定用户可以使用此机器人。此参数可多次传递以允许多个管理员
--api-uri <tgapi-uri> 自定义 telegram api URI [默认: https://api.telegram.org/]
-d, --database <路径> 数据库路径 [默认: ./rssbot.json]
--max-feed-size <字节> 最大订阅源大小, 0 为无限制 [默认: 2097152]
--max-interval <秒> 最大抓取间隔 [默认: 43200]
--min-interval <秒> 最小抓取间隔 [默认: 300]
参数:
<token> Telegram 机器人令牌
注意: 你可以使用像 @userinfobot @getidsbot 这样的机器人获取 <用户 id>
<token>
请参照 这里 申请
环境变量
HTTP_PROXY
: 用于 HTTP 的代理HTTPS_PROXY
: 用于 HTTPS 的代理RSSBOT_DONT_PROXY_FEEDS
: 设为1
使所有订阅的 RSS 不通过代理(仅代理 Telegram)NO_PROXY
: 暂不支持,等待 reqwest#877
从旧的 RSSBot 迁移
对于 原先 Clojure 版本的 Bot, 可以使用以下脚本转换数据库
#!/bin/bash
DATABASE=$1
TARGET=$2
DATA=$(echo "SELECT url, title FROM rss;" | sqlite3 $DATABASE)
IFS=$'\n'
echo -e "[\c" > $TARGET
for line in ${DATA[@]}
do
IFS='|'
r=($line)
link=${r[0]}
title=${r[1]}
echo -e "{\"link\":\"$link\"," \
"\"title\":\"$title\"," \
"\"error_count\":0," \
"\"hash_list\":[]," \
"\"subscribers\":[\c" >> $TARGET
subscribers=$(echo "SELECT subscriber FROM subscribers WHERE rss='$link';" | sqlite3 $DATABASE)
IFS=$'\n'
for subscriber in ${subscribers[@]}
do
echo -e "$subscriber,\c" >> $TARGET
done
echo -e "]},\c" >> $TARGET
done
echo "]" >> $TARGET
sed -i "s/,]/]/g" $TARGET
参数 1 为旧数据库地址, 2 为结果输出地址
需要注意的是已推送的 RSS 记录不会保留, 如果直接使用转换后的数据库, 会重复推送旧的 RSS
许可证
这是一个发布到公共领域的自由和无限制软件。
任何人都可以自由复制、修改、发布、使用、编译、销售或分发此软件,无论是源代码形式还是编译后的二进制文件,用于任何目的,商业或非商业用途,并通过任何方式进行。