Telegram Web Link
Channel created
RSS-to-Telegram-Bot,关心你的阅读体验的 Telegram RSS 机器人。

官方 bot 实例: @RSStT_Bot

本频道会时常播报项目的更新状况。如您需要反馈 bug,可在讨论群内或评论区反馈,也可在 GitHub Issues 反馈。

提供两个频道供预览转发效果:
@GZMTR
@ithome_full
@capoo_sub

官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持


RSS-to-Telegram-Bot, A Telegram RSS bot that cares about your reading experience.

Official bot instance: @RSStT_Bot

Subscribe to this channel to get the latest news on the project. If you have encountered any problems or bugs, please feel free to make feedback to our Telegram group or GitHub issue.

Want to preview?:
@GZMTR
@ithome_full
@capoo_sub

Official bot instance | Official channel | Official group | GitHub repo | Patreon
placeholder
dev 分支更新

* 更改许可证为 AGPL (待合并至 master 分支)
* 因 docker hub auto build 开始收费,转为使用 GitHub Actions
* 将 dependabot 改为仅在 dev 分支工作(待合并至 master 分支)

* 完全重写解码 description/contents 的代码:
|- 使用 bs4 实现,不再依赖 html2text,xmlparser.py 已经无用途
|- parse_mode 转为 HTML,不再使用 MarkdownV2,编码简洁可靠
|- 支持更详细粒度的解码,可呈现稍丰富的格式
|- 修复了无法正确处理 <ol> (有序列表)的问题
|- 侦测到 <img> 满足某些特征时,如 emoji、自定义表情等,将其转换为其描述文本加入文本中且不再出现在图片列表里
|- 加入依赖 emoji,实现 emoji shortcodes 自动解码
|- 加入依赖 fuzzywuzzy,实现更可靠的标题存在性侦测
|- 实现输出内容纯文本计数,不会再出现因链接过长而导致文本在远未到达纯文本字数限制(文字消息 4096,媒体消息 1024)前被截断

* 完全重写发送消息的代码:
|- 文章中存在多于 10 件媒体时,支持分条发送
|- 支持视频与图片任意混合于同一条消息
|- 超限媒体不再直接丢弃,而是作为链接附加到消息末尾
|- 因 telegram api 不稳定而无法发出图片时,自动更换图床服务器重发(仅限微博图床,非微博图床自动将所有媒体转为链接附加到消息末尾)
|- 触发 flood control 时自动等待(未验证可用性)
|- 不再无条件原样重试,仅在超时时才会自动原样重试
|- 不再支持超长消息分条发送时附加消息编号

* /test 命令现在可以使用诸如 /test https://some.website/rss all 的格式来一次性获取 feed 中的全部文章

* 启动时自动设置机器人的命令列表(感谢 #7

* 已知问题:
|- 超长消息分条发送可能不稳定
|- 重写部分缺乏日志记录

* 接下来的计划:
|- 改用 logging 实现日志记录
|- 更改配置输入方式,不再通过环境变量读入配置
|- 更改数据库结构
|- 实现一定程度的并行运行
|- 支持多用户使用

注意:本项目可能会在某个时候引入 breaking change 且不能无缝过渡,请注意备份您的订阅列表(通过 /list 命令)。具体何时,则取决于开发进度。

一键更新:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR
(注意:该命令会更新所有容器,如果不需要这么做,请在最后加上容器名;该命令并不会切换分支,如您需要体验 dev 分支,请重新创建容器并在创建时指定分支)

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
RSStT Bot Channel pinned «RSS-to-Telegram-Bot,关心你的阅读体验的 Telegram RSS 机器人。 官方 bot 实例: @RSStT_Bot 本频道会时常播报项目的更新状况。如您需要反馈 bug,可在讨论群内或评论区反馈,也可在 GitHub Issues 反馈。 提供两个频道供预览转发效果: @GZMTR @ithome_full @capoo_sub 官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持 RSS-to-Telegram-Bot, A Telegram…»
#dev 分支更新
* 替换 README 中的图标为新设计的图标
* 因应许可证变更,在 /help 消息中添加仓库链接
* 因应许可证变更,更新 README
* 更改 user-agent,规避 requests 默认的 UA 被某些网站屏蔽的问题
* 解码相关:
|- 为列表首尾添加换行,以规避某些 feed 不给列表前后加换行的问题
|- 将 <h\d> 标题解码后的先导换行从一个改为两个,增强可读性
|- 对文章标题也实施 emoji 化
|- 修复了某些时候,超长消息自动分割时发出空消息的问题
|- 修复了错误的 HTML 转义顺序导致的转义失效

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
#dev 分支更新
* 添加了 GIF 支持,现在文章内的 GIF 不会再被转换为静态图片
|- 由于 Telegram 的限制,一条消息只能含有一张 GIF,因此若 GIF 过多,将引起刷屏
|- 为避免 GIF 前后都有静态图片/视频而造成 GIF 分隔消息的状况,以减少总消息数目,GIF 会最后发出,而不是按照文章中的顺序

* 修复了文本全部发送完毕而图片未发送完毕时,剩下的图片不会被发出的问题

* 根据更新后的 Telegram Bot API 文档,增加了图片长宽比限制

* 优化了标题存在性判断

* 更新依赖 bs4 到 4.10.0

* 移除了不再需要的旧代码

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
#dev 分支更新
* 重构权限检查,为将来的多用户功能做准备
* 使用 logging 库来记录 log
* 更新 README 和帮助消息

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
#master 分支更新
合入 dev 分支更新内容,包含大量更新,tag 1.5。

更新概要:
注意:由于未来可能加入多用户功能而导致数据库及配置文件变更,请时常备份订阅列表(目前仅可通过 `/test` 备份)

* 文章解码完全重写,更加稳定及更加忠实还原原有格式
|- 针对大量短动态类 RSS 源进行了测试
|- 即使是长文 RSS 源,也可以正确处理
* 支持 GIF
* 消息多于 10 张媒体时支持分条发送
* 支持视频与图片任意混合于同一条消息
* 超限媒体不再直接丢弃,而是作为链接附加到消息末尾
* 自动判断 RSS 源的标题是否为自动填充,并自动选择是否略去标题
* 自动显示作者名
* 自动替换 emoji shortcodes 为 emoji
* 自动替换满足某些特征的表情图片为 emoji 或其描述文本
* 因 telegram api 不稳定而无法发出图片时,自动更换图床服务器重发
|- 仅限微博图源,非微博图源自动将所有媒体转为链接附加到消息末尾
* 改进文本长度计数方式,不再因为链接 url 过长而导致消息被提前分割
* 更改 user-agent,规避某些网站屏蔽 requests UA 的问题
* 改进的日志记录

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
#dev 分支更新
* 如果 Telegram Bot API 拒收了媒体,自动尝试使用媒体反代服务(实验性)
* 支持解析代码(<code>/<pre>
* 重构了超长消息分割方法,尝试修正一些问题(可能不稳定)
* 重写了有序列表 (<ol>) / 无序列表 (<ul>) 的解码方式,避免极端情况下错误地达到文本长度限制
* 支持为嵌套列表添加缩进

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
提供两个频道供预览转发效果。

短动态类(新浪微博)转发:
@GZMTR

长文类(IT 之家)转发:
@ithome_full

不会自行搭建的订阅者也不用着急,本阶段功能完善后,下一阶段将进行多用户功能开发,待多用户功能开发完成,会有官方实例开放予公众使用。

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
#dev 分支更新

* 支持使用 Redis 作为数据库(实验性)
|- 因此已经支持部署到 Railway 时持久化订阅
* 日志微调

加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
2025/06/30 00:15:44
Back to Top
HTML Embed Code: