Fixed the service degradation of the public demo
In recent months, due to the rapid growth of the user base, the public demo (@RSStT_Bot) has suffered from service degradation. The root cause of the degradation was too many web requests resulting in too many DNS queries, making the DNS server rate-limit our VPS hosting the public demo. As a result, most web requests timed out. Now it has been fixed. So here is a tip: if your self-hosted instance is suffering from the same issue, set up a local DNS server like dnsmasq.
Some statistics about the public demo:
~20,000 feeds
~22,000 subscriptions
~6,600 users (including channels and groups)
US$6 monthly VPS (Vultr High Performance, 1 vCPU, 1GB RAM) fee
The public demo may be slow to respond due to the high server load. Deploy your own bot if you would like rapid response and a shorter monitor interval. If I receive more than US$18 donation monthly, I will consider upgrading the VPS for better performance (2 vCPU, 2GB RAM).
Bot | Channel | Group | GitHub repo | Patreon
修复了公共实例的服务降级问题
近几个月来,由于用户群体的快速增长,公共实例 (@RSStT_Bot) 的服务出现了降级。降级的根本原因是网络请求数量过大,导致发出了太多的 DNS 查询,使得 DNS 服务器对托管公共实例的 VPS 进行了速率限制。因此,大多数网络请求都超时了。现在这个问题已经得到修复。因此,这里有一个小提示:如果您的自托管实例遇到同样的问题,可以考虑设置一个本地 DNS 服务器,如 dnsmasq 。
有关公共实例的一些统计数据:
~20,000 个订阅源
~22,000 个订阅
~6,600 名用户(包括频道和群组)
每月 6 美元的 VPS(Vultr High Performance, 1 vCPU, 1GB RAM)费用
由于服务器负载较高,公共实例可能响应较慢。如果您期望快速响应和更短的监视间隔,请部署自己的机器人。如果我每月收到超过 18 美元的捐款,我会考虑升级 VPS 以获得更好的性能(2 vCPU,2GB RAM)。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
In recent months, due to the rapid growth of the user base, the public demo (@RSStT_Bot) has suffered from service degradation. The root cause of the degradation was too many web requests resulting in too many DNS queries, making the DNS server rate-limit our VPS hosting the public demo. As a result, most web requests timed out. Now it has been fixed. So here is a tip: if your self-hosted instance is suffering from the same issue, set up a local DNS server like dnsmasq.
Some statistics about the public demo:
~20,000 feeds
~22,000 subscriptions
~6,600 users (including channels and groups)
US$6 monthly VPS (Vultr High Performance, 1 vCPU, 1GB RAM) fee
The public demo may be slow to respond due to the high server load. Deploy your own bot if you would like rapid response and a shorter monitor interval. If I receive more than US$18 donation monthly, I will consider upgrading the VPS for better performance (2 vCPU, 2GB RAM).
Bot | Channel | Group | GitHub repo | Patreon
修复了公共实例的服务降级问题
近几个月来,由于用户群体的快速增长,公共实例 (@RSStT_Bot) 的服务出现了降级。降级的根本原因是网络请求数量过大,导致发出了太多的 DNS 查询,使得 DNS 服务器对托管公共实例的 VPS 进行了速率限制。因此,大多数网络请求都超时了。现在这个问题已经得到修复。因此,这里有一个小提示:如果您的自托管实例遇到同样的问题,可以考虑设置一个本地 DNS 服务器,如 dnsmasq 。
有关公共实例的一些统计数据:
~20,000 个订阅源
~22,000 个订阅
~6,600 名用户(包括频道和群组)
每月 6 美元的 VPS(Vultr High Performance, 1 vCPU, 1GB RAM)费用
由于服务器负载较高,公共实例可能响应较慢。如果您期望快速响应和更短的监视间隔,请部署自己的机器人。如果我每月收到超过 18 美元的捐款,我会考虑升级 VPS 以获得更好的性能(2 vCPU,2GB RAM)。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
Please open Telegram to view this post
VIEW IN TELEGRAM
#Release v2.4.1: Minor enhancements, bug fixes, and Happy New Year! 🎉
Enhancements
●
● Append enclosures to Telegraph post: Append enclosures (if any) to Telegraph post if any. Previously, enclosures can only be sent in Telegram messages, but not in Telegraph posts.
● Dependencies update: Bumped most outdated dependencies to the latest version. An optional dependency
● L10n update: Localizations have been updated.
● Misc refactoring: Some code has been refactored to improve readability and maintainability.
Bug fixes
● "Remote"
● Resized images still too big: Fix a bug causing images resized by
● Sinaimg images not parsed properly: Fix the URL regex of Sinaimg images. It can hopefully reduce the frequency of seeing "invalid media" in messages.
● WEBP fully fetched regardless of fetch limit: Fix a bug causing WEBP without
● Entry hashing for monitor and sub not unified: Unify the entry hashing for monitor and sub. Previously, the entry hashing for monitor and sub is not unified, which may cause the bot to send persisting entries (posts) after a feed is subscribed for the first time.
Bot | Channel | Group | GitHub repo | Patreon
#Release v2.4.1: 次要的增强和 bug 修复,以及新年快乐!🎉
增强
● 经反代的
● 将 enclosure 附加到 Telegraph 文章: 如果有的话,将 enclosure (附件) 附加到 Telegraph 文章。先前,enclosure 只能在 Telegram 消息中发送,而无法在 Telegraph 文章中发送。
● 依赖项更新: 将大部分过时的依赖项更新到了最新版本。引入可一个可选依赖
● 本地化更新: 本地化已被更新。
● 杂项重构: 重构了一些代码以提高可读性和可维护性。
Bug 修复
● “远程”
● 调节尺寸后的图像仍然太大: 修复了一个错误,这个错误导致经过
● Sinaimg 图片未被正确解析: 修复了针对 Sinaimg (微博图床) 图片的正则表达式。这有望减少在消息中见到 "Invalid media" 的频率。
● WEBP 被完全获取,而没有考虑获取限制: 修复了一个导致不带有
● 监视器和订阅的条目散列不统一: 统一监视器和订阅的条目散列。先前,监视器和订阅的条目散列不统一,这可能导致 bot 在一个 RSS 源被首次订阅后发送已经存在的条目 (文章)。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
Enhancements
●
wsrv.nl
via relay: Try to use wsrv.nl
(environment variable IMAGES_WESERV_NL
) via the media relay server (environment variable IMG_RELAY_SERVER
). This is a workaround for images from domains/TLDs banned by wsrv.nl
or CDNs that ban wsrv.nl
. It can hopefully reduce the frequency of seeing "invalid media" in messages since RSStT uses wsrv.nl
heavily to convert images into formats accepted by Telegram DCs. See also #369.● Append enclosures to Telegraph post: Append enclosures (if any) to Telegraph post if any. Previously, enclosures can only be sent in Telegram messages, but not in Telegraph posts.
● Dependencies update: Bumped most outdated dependencies to the latest version. An optional dependency
isal
has been added to slightly improve the performance of entry hashing.● L10n update: Localizations have been updated.
● Misc refactoring: Some code has been refactored to improve readability and maintainability.
Bug fixes
● "Remote"
/test
unavailable: Fix a bug preventing the bot manager from using the /test
command "remotely".● Resized images still too big: Fix a bug causing images resized by
wsrv.nl
to be sometimes too big (exceed the 5MiB limitation of Telegram DC) to send.● Sinaimg images not parsed properly: Fix the URL regex of Sinaimg images. It can hopefully reduce the frequency of seeing "invalid media" in messages.
● WEBP fully fetched regardless of fetch limit: Fix a bug causing WEBP without
Content-Length
header to be fully fetched regardless of the fetch limit.● Entry hashing for monitor and sub not unified: Unify the entry hashing for monitor and sub. Previously, the entry hashing for monitor and sub is not unified, which may cause the bot to send persisting entries (posts) after a feed is subscribed for the first time.
Bot | Channel | Group | GitHub repo | Patreon
#Release v2.4.1: 次要的增强和 bug 修复,以及新年快乐!🎉
增强
● 经反代的
wsrv.nl
: 尝试通过媒体反代服务器 (环境变量 IMG_RELAY_SERVER
) 使用 wsrv.nl
(环境变量 IMAGES_WESERV_NL
)。这是对那些来自被 wsrv.nl
封禁的域名或将 wsrv.nl
封禁的 CDN 的图片的变通解决方案。考虑到 RSStT 大量使用 wsrv.nl
将图片转换为 Telegram DC 所接受的格式,这有望减少在消息中见到 "Invalid media" 的频率。另请参阅 #369。● 将 enclosure 附加到 Telegraph 文章: 如果有的话,将 enclosure (附件) 附加到 Telegraph 文章。先前,enclosure 只能在 Telegram 消息中发送,而无法在 Telegraph 文章中发送。
● 依赖项更新: 将大部分过时的依赖项更新到了最新版本。引入可一个可选依赖
isal
用于稍微提升条目散列的性能。● 本地化更新: 本地化已被更新。
● 杂项重构: 重构了一些代码以提高可读性和可维护性。
Bug 修复
● “远程”
/test
不可用:修复阻止 bot 管理员“远程”使用 /test
命令的错误。● 调节尺寸后的图像仍然太大: 修复了一个错误,这个错误导致经过
wsrv.nl
调节尺寸后的图像有时候仍然太大(超过 Telegram DC 的 5MiB 限制)以至于无法发送。● Sinaimg 图片未被正确解析: 修复了针对 Sinaimg (微博图床) 图片的正则表达式。这有望减少在消息中见到 "Invalid media" 的频率。
● WEBP 被完全获取,而没有考虑获取限制: 修复了一个导致不带有
Content-Length
标头的 WEBP 被完全获取,而没有考虑获取限制的错误。● 监视器和订阅的条目散列不统一: 统一监视器和订阅的条目散列。先前,监视器和订阅的条目散列不统一,这可能导致 bot 在一个 RSS 源被首次订阅后发送已经存在的条目 (文章)。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
GitHub
Release v2.4.1: Minor enhancements, bug fixes, and Happy New Year! 🎉 · Rongronggg9/RSS-to-Telegram-Bot
Enhancements
wsrv.nl via relay: Try to use wsrv.nl (environment variable IMAGES_WESERV_NL) via the media relay server (environment variable IMG_RELAY_SERVER). This is a workaround for images from ...
wsrv.nl via relay: Try to use wsrv.nl (environment variable IMAGES_WESERV_NL) via the media relay server (environment variable IMG_RELAY_SERVER). This is a workaround for images from ...
#Release v2.5.0: Responsiveness improvement, tiny enhancements and fixes
Addition
● Set niceness for subprocesses/threads: (Unix only) Nice subprocesses and/or threads to improve the responsiveness of the main process. This is tunable via the environment variable
Enhancements
● HTML list support improvement: Now
Bug fixes
● Stay in topic group even when the "General" topic is closed: Now that topic groups are not fully supported, the bot can only send messages in the "General" topic. Previously, the bot would only send an error message to the bot manager if the "General" topic is closed. Now the bot will leave the topic group, without disturbing the bot manager, if the "General" topic is closed. This is a temporary limitation before topic groups are fully supported.
● v2.4.1 not released to PyPI: Due to a previous mistake, v2.4.1 could not be released to PyPI. v2.5.0 fixes the mistake and is released to PyPI.
Bot | Channel | Group | GitHub repo | Patreon
#Release v2.5.0: 响应性优化、小的增强和修复
新增功能
● 为子进程/线程设置 nice 值: (仅限 Unix) 为子进程和/或线程提升 nice 值以改进主进程的响应性。这可通过环境变量
增强
● 改进了对 HTML 列表的支持: 现在,
Bug 修复
● 即使 “General” 话题已关闭,也留在话题群组中: 由于话题群组尚未被完全支持,bot 只能在 “General” 话题中发送消息。先前,如果 “General” 话题被关闭,bot 只会向 bot 管理员发送错误消息。现在,如果 “General” 话题被关闭,bot 将离开话题群组,而不再打扰 bot 管理员。这是在话题群组完全受支持之前的一个临时限制。
● v2.4.1 未被发布到 PyPI: 由于一个先前的失误,v2.4.1 无法被发布到 PyPI。v2.5.0 修正了这一失误,并被发布到 PyPI。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
Addition
● Set niceness for subprocesses/threads: (Unix only) Nice subprocesses and/or threads to improve the responsiveness of the main process. This is tunable via the environment variable
EXECUTOR_NICENESS_INCREMENT
.Enhancements
● HTML list support improvement: Now
<menu>
and <dir>
are treated the same as <ul>
(unordered list). In addition, orphan <li>
(list item) without a valid list parent tag are no longer ignored but treated as an item in an single unordered list.Bug fixes
● Stay in topic group even when the "General" topic is closed: Now that topic groups are not fully supported, the bot can only send messages in the "General" topic. Previously, the bot would only send an error message to the bot manager if the "General" topic is closed. Now the bot will leave the topic group, without disturbing the bot manager, if the "General" topic is closed. This is a temporary limitation before topic groups are fully supported.
● v2.4.1 not released to PyPI: Due to a previous mistake, v2.4.1 could not be released to PyPI. v2.5.0 fixes the mistake and is released to PyPI.
Bot | Channel | Group | GitHub repo | Patreon
#Release v2.5.0: 响应性优化、小的增强和修复
新增功能
● 为子进程/线程设置 nice 值: (仅限 Unix) 为子进程和/或线程提升 nice 值以改进主进程的响应性。这可通过环境变量
EXECUTOR_NICENESS_INCREMENT
调节。增强
● 改进了对 HTML 列表的支持: 现在,
<menu>
和 <dir>
被视为 <ul>
(无序列表)。此外,没有有效列表父标签的孤立 <li>
(列表项) 不再被忽略,而是被视为单个无序列表中的一个项目。Bug 修复
● 即使 “General” 话题已关闭,也留在话题群组中: 由于话题群组尚未被完全支持,bot 只能在 “General” 话题中发送消息。先前,如果 “General” 话题被关闭,bot 只会向 bot 管理员发送错误消息。现在,如果 “General” 话题被关闭,bot 将离开话题群组,而不再打扰 bot 管理员。这是在话题群组完全受支持之前的一个临时限制。
● v2.4.1 未被发布到 PyPI: 由于一个先前的失误,v2.4.1 无法被发布到 PyPI。v2.5.0 修正了这一失误,并被发布到 PyPI。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
GitHub
Release v2.5.0: Responsiveness improvement, tiny enhancements and fixes · Rongronggg9/RSS-to-Telegram-Bot
Addition
Set niceness for subprocesses/threads: (Unix only) Nice subprocesses and/or threads to improve the responsiveness of the main process. This is tunable via the environment variable EXECUTO...
Set niceness for subprocesses/threads: (Unix only) Nice subprocesses and/or threads to improve the responsiveness of the main process. This is tunable via the environment variable EXECUTO...
RSStT Bot Channel
⭐️ 200 Stars, thank you! If you love this bot but have not hit the star button on GitHub, do not hesitate 💫 Video made with stargazer. Bot | Channel | Group | GitHub repo | Patreon ⭐️ 200 个 Star,感谢! 如果您对 bot 感到喜爱,却还没有在 GitHub 上点击过 Star,请不要犹豫 💫 视频使用 stargazer…
Please open Telegram to view this post
VIEW IN TELEGRAM
#Release v2.6.0: Upload media to Telegraph, management enhancements
Highlights
● Upload media to Telegraph: When generating Telegraph posts, images as well as videos will be uploaded to Telegraph. This is to solve anti-hotlinking issues and improve the load performance of posts. This feature depends on the latest version of the media relay server (Rongronggg9/rsstt-img-relay). Those images and videos that are too large to be uploaded will still be proxied by
Addition
● Multiple managers: The environment variable
● Customizable error logging chat: Previously, some error logs were always sent to the bot manager. To make it more flexible, a new environment variable
Enhancements
● Strip whitespaces in
● Only set "force reply" in groups: Only set
● Minor refactor: Some internal functions have been refactored to improve readability and maintainability.
Bug fixes
● (
● "Remote"
Bot | Channel | Group | GitHub repo | Patreon
Highlights
● Upload media to Telegraph: When generating Telegraph posts, images as well as videos will be uploaded to Telegraph. This is to solve anti-hotlinking issues and improve the load performance of posts. This feature depends on the latest version of the media relay server (Rongronggg9/rsstt-img-relay). Those images and videos that are too large to be uploaded will still be proxied by
wsrv.nl
(environment variable IMAGES_WESERV_NL
) or media relay server (environment variable IMG_RELAY_SERVER
). Thanks #431 for inspiration.Addition
● Multiple managers: The environment variable
MANAGER
now accepts a single user ID as well as a list separated by ;
, ,
, (space)
, (linebreak)
, or (tab)
. Each user in the list will be able to manage the bot equally.● Customizable error logging chat: Previously, some error logs were always sent to the bot manager. To make it more flexible, a new environment variable
ERROR_LOGGING_CHAT
, accepting a single user/channel/group ID, has been added. If set, these error logs will be sent to the specified chat. Otherwise, the first user ID in MANAGER
will be selected as default.Enhancements
● Strip whitespaces in
<li>
: Strip whitespaces (including linebreaks) in <li>
(list item) to improve readability. Only the leading and trailing whitespaces (including linebreaks) are stripped.● Only set "force reply" in groups: Only set
ReplyKeyboardForceReply
to True
in groups. Previously, it was also set in private chats. See also "Bug fixes" below.● Minor refactor: Some internal functions have been refactored to improve readability and maintainability.
Bug fixes
● (
/sub
) "force reply" not cleared: Both /sub
and /import
set ReplyKeyboardForceReply
to True
to force the user to reply to the bot. However, due to a bug of Telegram, it keeps effective even if the user has made a reply, making the reply bar always reappear. Previously, a workaround has been applied to /import
by deleting the prompt message containing ReplyKeyboardForceReply
after the user has made a reply (see also #170). But /sub
was forgotten at that time. Now the workaround has been applied to /sub
too.● "Remote"
/lang
unavailable: Fix a bug preventing users from using the /lang
command "remotely".Bot | Channel | Group | GitHub repo | Patreon
GitHub
Release v2.6.0: Upload media to Telegraph, management enhancements · Rongronggg9/RSS-to-Telegram-Bot
Highlights
Upload media to Telegraph: When generating Telegraph posts, images as well as videos will be uploaded to Telegraph. This is to solve anti-hotlinking issues and improve the load performa...
Upload media to Telegraph: When generating Telegraph posts, images as well as videos will be uploaded to Telegraph. This is to solve anti-hotlinking issues and improve the load performa...
#Release v2.6.0: 上传媒体到 Telegraph、管理增强
亮点
● 上传媒体到 Telegraph: 在生成 Telegraph 文章时,图片和视频都将被上传到 Telegraph。这是为了解决防盗链问题和提高文章的加载性能。此功能依赖媒体反代服务器 (Rongronggg9/rsstt-img-relay) 的最新版本。由于太大而无法上传的图片和视频仍将由
新增功能
● 多个管理员: 环境变量
● 可自定义的错误日志会话: 先前,一些错误日志总是发送到 bot 管理员。为了使其更加灵活,添加了一个新的环境变量
增强
● 除去
● 只在群组中设置“强制回复”: 只在群组中设置
● 次要的重构: 重构了一些内部函数以提高可读性和可维护性。
Bug 修复
● (
● “远程”
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
亮点
● 上传媒体到 Telegraph: 在生成 Telegraph 文章时,图片和视频都将被上传到 Telegraph。这是为了解决防盗链问题和提高文章的加载性能。此功能依赖媒体反代服务器 (Rongronggg9/rsstt-img-relay) 的最新版本。由于太大而无法上传的图片和视频仍将由
wsrv.nl
(环境变量 IMAGES_WESERV_NL
) 或媒体反代服务器 (环境变量 IMG_RELAY_SERVER
) 进行代理。感谢 #431 的启发。新增功能
● 多个管理员: 环境变量
MANAGER
现在既接受单个用户 ID,也接受由 ;
, ,
, (空格)
, (换行)
或 (制表符)
分隔的列表。列表中的每个用户都可以平等地管理机器人。● 可自定义的错误日志会话: 先前,一些错误日志总是发送到 bot 管理员。为了使其更加灵活,添加了一个新的环境变量
ERROR_LOGGING_CHAT
,其接受单个用户/频道/群组 ID。如果被设置,这些错误日志将被发送到指定的会话。否则,将选择 MANAGER
中的第一个用户 ID 作为默认值。增强
● 除去
<li>
中的表层空格: 除去 <li>
(列表项) 中的表层空格 (包括换行符) 以提高可读性。只有前导和尾随空格 (包括换行符) 被除去。● 只在群组中设置“强制回复”: 只在群组中设置
ReplyKeyboardForceReply
为 True
。先前,它也在私聊中被设置。另请参阅下面的“Bug 修复”。● 次要的重构: 重构了一些内部函数以提高可读性和可维护性。
Bug 修复
● (
/sub
) “强制回复”未被清除: /sub
和 /import
都将 ReplyKeyboardForceReply
设置为 True
以强制用户回复 bot。然而,由于 Telegram 的一个 bug,即使用户已经回复过了,它仍然有效,导致回复栏总是重新出现。先前,通过在用户回复后删除包含 ReplyKeyboardForceReply
的提示消息,为 /import
应用了变通解决方案 (另请参阅 #170)。但是 /sub
在那时被遗忘了。现在,这个变通解决方案也被应用到了 /sub
上。● “远程”
/lang
不可用:修复阻止用户“远程”使用 /lang
命令的错误。官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
GitHub
Release v2.6.0: Upload media to Telegraph, management enhancements · Rongronggg9/RSS-to-Telegram-Bot
Highlights
Upload media to Telegraph: When generating Telegraph posts, images as well as videos will be uploaded to Telegraph. This is to solve anti-hotlinking issues and improve the load performa...
Upload media to Telegraph: When generating Telegraph posts, images as well as videos will be uploaded to Telegraph. This is to solve anti-hotlinking issues and improve the load performa...
Telegram DC5 is under severe service degradation. @RSStT_Bot is unable to log in or send any messages.
Telegram DC5 正经历严重的服务降级。 @RSStT_Bot 目前无法登录和发送任何消息。
Telegram DC5 正经历严重的服务降级。 @RSStT_Bot 目前无法登录和发送任何消息。
#Release v2.7.0: #Hashtags from post, Python 3.12 support, and more
BREAKING CHANGES
● Migrate to
Highlights
● #Hashtags from post (feed entry): If enabled in
● Support Python 3.12: Minor fixes have been made to support Python 3.12. The official Docker image is now based on Python 3.12 as well.
● Helper scripts to make contributions easier: When performing contributions that update database models, creating database migration files is not an easy job. scripts/aerich_helper.py is a helper script that can simplify the process. Passing
Enhancements
● Defer monitoring as per RSSHub TTL: Defer monitoring as per the TTL (Time To Live) of feeds generated by RSSHub. RSSHub caches feed until the TTL expires, so aggressively monitoring RSSHub feeds with a long TTL is unnecessary. This aims to reduce the load of RSStT instances, as well as RSSHub instances. No delay will be applied if TTL is unavailable or less than 5 minutes. Feeds not generated by RSSHub are unaffected, considering the widespread misuse of RSS TTL.
● Defer monitoring as per Cloudflare cache: Ditto, but for feeds proxied by Cloudflare. If Cloudflare proxies a feed without caching it, no delay will be applied to the feed.
● Better handling custom #hashtags: Invalid characters and punctuations that break hashtags are now replaced with
● Refine monitoring logging: The monitoring log has been refined to be more informative and easier to read.
● Minor refactor: Some internal functions have been refactored to improve readability and maintainability.
Bot | Channel | Group | GitHub repo | Patreon
#Release v2.7.0: 来自文章的 #hashtag、Python 3.12 支持和更多
重大变更
● 迁移到
亮点
● 来自文章 (源条目) 的 #hashtag: 如果在
● 支持 Python 3.12: 进行了一些小的修复以支持 Python 3.12。官方 Docker 镜像现在也基于 Python 3.12。
● 使贡献更容易的辅助脚本: 在进行更新数据库模型的贡献时,创建数据库迁移文件并不是一件容易的事。scripts/aerich_helper.py 是一个可以简化这个流程的辅助脚本。将
增强
● 根据 RSSHub TTL 推迟监控: 根据 RSSHub 生成的 feed 的 TTL (生存时间) 推迟监控。RSSHub 会缓存 feed 直到 TTL 过期,因此对 TTL 较长的 RSSHub feed 进行激进的监控是不必要的。这旨在减少 RSStT 实例以及 RSSHub 实例的负载。如果 TTL 不可用或小于 5 分钟,则不会应用延迟。考虑到 RSS TTL 被广泛误用的情况,并非由 RSSHub 生成的 feed 不受影响。
● 根据 Cloudflare 缓存推迟监控: 同上,但适用于由 Cloudflare 代理的 feed。如果 Cloudflare 代理一个 feed 但不缓存它,将不会对这样的 feed 应用延迟。
● 更好地处理自定义 #hashtag: 当设置自定义 hashtag 时,会将破坏 hashtag 的无效字符和标点符号替换为
● 改进了监控日志: 监控日志已经被改进,使其更加信息丰富和易于阅读。
● 次要的重构: 重构了一些内部函数以提高可读性和可维护性。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
BREAKING CHANGES
● Migrate to
aerich
0.7.2: A breaking change introduced in aerich
(a dependency of RSStT) 0.7.x has prevented RSStT from upgrading it for a long time. A lot of effort has been made, so the migration is expected to be seamless and shouldn't break anything. However, it is encouraged to make a database backup before upgrading RSStT. If you encounter any issues due to the migration, please file a bug report.Highlights
● #Hashtags from post (feed entry): If enabled in
/set
or /set_default
, hashtags from posts (feed entries), merged with the custom hashtags of the feed, will be added to the message. The term "hashtags from post" refers to <category>
elements in RSS <item>
or Atom <entry>
. This feature is disabled by default. Thanks @maooyer for their first contribution in #449.● Support Python 3.12: Minor fixes have been made to support Python 3.12. The official Docker image is now based on Python 3.12 as well.
● Helper scripts to make contributions easier: When performing contributions that update database models, creating database migration files is not an easy job. scripts/aerich_helper.py is a helper script that can simplify the process. Passing
--help
to the script to see a detailed usage guide.Enhancements
● Defer monitoring as per RSSHub TTL: Defer monitoring as per the TTL (Time To Live) of feeds generated by RSSHub. RSSHub caches feed until the TTL expires, so aggressively monitoring RSSHub feeds with a long TTL is unnecessary. This aims to reduce the load of RSStT instances, as well as RSSHub instances. No delay will be applied if TTL is unavailable or less than 5 minutes. Feeds not generated by RSSHub are unaffected, considering the widespread misuse of RSS TTL.
● Defer monitoring as per Cloudflare cache: Ditto, but for feeds proxied by Cloudflare. If Cloudflare proxies a feed without caching it, no delay will be applied to the feed.
● Better handling custom #hashtags: Invalid characters and punctuations that break hashtags are now replaced with
_
(underscore) when setting custom hashtags.● Refine monitoring logging: The monitoring log has been refined to be more informative and easier to read.
● Minor refactor: Some internal functions have been refactored to improve readability and maintainability.
Bot | Channel | Group | GitHub repo | Patreon
#Release v2.7.0: 来自文章的 #hashtag、Python 3.12 支持和更多
重大变更
● 迁移到
aerich
0.7.2:aerich
(RSStT 的一个依赖项) 0.7.x 中引入的一个重大变更使 RSStT 长期以来无法升级它。已经作出了很多努力,所以迁移预期为无缝的,且不应该造成任何破坏。但是,建议在升级 RSStT 之前进行数据库备份。如果您因迁移而遇到任何问题,请提交错误报告。亮点
● 来自文章 (源条目) 的 #hashtag: 如果在
/set
或 /set_default
中启用,来自文章 (源条目) 的 hashtag,在与源的自定义 hashtag 合并后,将被添加到消息中。术语“来自文章的 hashtag”指的是 RSS <item>
或 Atom <entry>
中的 <category>
元素。此功能默认禁用。感谢 @maooyer 在 #449 中作出的初次贡献。● 支持 Python 3.12: 进行了一些小的修复以支持 Python 3.12。官方 Docker 镜像现在也基于 Python 3.12。
● 使贡献更容易的辅助脚本: 在进行更新数据库模型的贡献时,创建数据库迁移文件并不是一件容易的事。scripts/aerich_helper.py 是一个可以简化这个流程的辅助脚本。将
--help
传递给脚本以查看详细的使用指南。增强
● 根据 RSSHub TTL 推迟监控: 根据 RSSHub 生成的 feed 的 TTL (生存时间) 推迟监控。RSSHub 会缓存 feed 直到 TTL 过期,因此对 TTL 较长的 RSSHub feed 进行激进的监控是不必要的。这旨在减少 RSStT 实例以及 RSSHub 实例的负载。如果 TTL 不可用或小于 5 分钟,则不会应用延迟。考虑到 RSS TTL 被广泛误用的情况,并非由 RSSHub 生成的 feed 不受影响。
● 根据 Cloudflare 缓存推迟监控: 同上,但适用于由 Cloudflare 代理的 feed。如果 Cloudflare 代理一个 feed 但不缓存它,将不会对这样的 feed 应用延迟。
● 更好地处理自定义 #hashtag: 当设置自定义 hashtag 时,会将破坏 hashtag 的无效字符和标点符号替换为
_
(下划线)。● 改进了监控日志: 监控日志已经被改进,使其更加信息丰富和易于阅读。
● 次要的重构: 重构了一些内部函数以提高可读性和可维护性。
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
GitHub
Release v2.7.0: #Hashtags from post, Python 3.12 support, and more · Rongronggg9/RSS-to-Telegram-Bot
BREAKING CHANGES
Migrate to aerich 0.7.2: A breaking change introduced in aerich (a dependency of RSStT) 0.7.x has prevented RSStT from upgrading it for a long time. A lot of effort has been made,...
Migrate to aerich 0.7.2: A breaking change introduced in aerich (a dependency of RSStT) 0.7.x has prevented RSStT from upgrading it for a long time. A lot of effort has been made,...
#Release v2.8.0: Retain post order, rewritten monitor, and more
Highlights
● Retain post order: Retain the order of posts in a feed when sending them. Previously, all new posts were sent simultaneously, losing their order within the feed. Note: Posts from different feeds are still sent simultaneously, so it is expected to see them interlaced.
● Rewritten monitor: The feed monitor has been rewritten for flexibility and robustness. It is now more memory-efficient and can smooth out spikes in CPU usage.
Enhancements
● Print Telegram user info of bot: Print the bot's Telegram user info when the bot is started. This is to help bot managers to find the bot's username and user ID when deploying the bot.
● Minor refactor: Some internal functions have been refactored to improve performance and maintainability.
Bug fixes
● Exit with 0 when disconnected: If the bot was logged out due to a network error or Telegram DC degradation, it would exit with exit-code 0. This led to confusion when the bot was running in a container or as a service. Now the bot will exit with exit-code 100 when disconnected.
● Unable to handle completely empty posts: Fix
● Minor bug fixes
Bot | Channel | Group | GitHub repo | Patreon | Ko-fi
#Release v2.8.0: 保留文章顺序,重写的监视器和更多
亮点
● 保留文章顺序: 在发送文章时保留文章在 feed 中的顺序。先前,所有新文章都被同时发送,失去了它们在 feed 中的顺序。注意:来自不同 feed 的文章仍然同时发送,因此预计会看到它们交错。
● 重写的监视器: Feed 监视器已被重写,以提高灵活性和稳健性。它现在更节省内存,并且可以平滑 CPU 使用率的波动。
增强
● 打印 bot 的 Telegram 用户信息: 在 bot 启动时打印 bot 的 Telegram 用户信息。这是为了帮助 bot 管理员在部署 bot 时找到 bot 的用户名和用户 ID。
● 次要的重构: 重构了一些内部函数以提高性能和可维护性。
Bug 修复
● 断开连接后以 0 退出: 过去,如果 bot 由于网络错误或 Telegram DC 降级而被登出,它将以退出码 0 退出。当 bot 在容器中或作为服务运行时,这会导致混乱。现在,当断开连接时,机器人将以退出码 100 退出。
● 无法处理完全空白的文章: 修复由完全空白的文章引起的
● 次要的 bug 修复
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
Highlights
● Retain post order: Retain the order of posts in a feed when sending them. Previously, all new posts were sent simultaneously, losing their order within the feed. Note: Posts from different feeds are still sent simultaneously, so it is expected to see them interlaced.
● Rewritten monitor: The feed monitor has been rewritten for flexibility and robustness. It is now more memory-efficient and can smooth out spikes in CPU usage.
Enhancements
● Print Telegram user info of bot: Print the bot's Telegram user info when the bot is started. This is to help bot managers to find the bot's username and user ID when deploying the bot.
● Minor refactor: Some internal functions have been refactored to improve performance and maintainability.
Bug fixes
● Exit with 0 when disconnected: If the bot was logged out due to a network error or Telegram DC degradation, it would exit with exit-code 0. This led to confusion when the bot was running in a container or as a service. Now the bot will exit with exit-code 100 when disconnected.
● Unable to handle completely empty posts: Fix
AttributeError
caused by completely empty posts. They are ignored now.● Minor bug fixes
Bot | Channel | Group | GitHub repo | Patreon | Ko-fi
#Release v2.8.0: 保留文章顺序,重写的监视器和更多
亮点
● 保留文章顺序: 在发送文章时保留文章在 feed 中的顺序。先前,所有新文章都被同时发送,失去了它们在 feed 中的顺序。注意:来自不同 feed 的文章仍然同时发送,因此预计会看到它们交错。
● 重写的监视器: Feed 监视器已被重写,以提高灵活性和稳健性。它现在更节省内存,并且可以平滑 CPU 使用率的波动。
增强
● 打印 bot 的 Telegram 用户信息: 在 bot 启动时打印 bot 的 Telegram 用户信息。这是为了帮助 bot 管理员在部署 bot 时找到 bot 的用户名和用户 ID。
● 次要的重构: 重构了一些内部函数以提高性能和可维护性。
Bug 修复
● 断开连接后以 0 退出: 过去,如果 bot 由于网络错误或 Telegram DC 降级而被登出,它将以退出码 0 退出。当 bot 在容器中或作为服务运行时,这会导致混乱。现在,当断开连接时,机器人将以退出码 100 退出。
● 无法处理完全空白的文章: 修复由完全空白的文章引起的
AttributeError
。它们现在会被忽略。● 次要的 bug 修复
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
GitHub
Release v2.8.0: Retain post order, rewritten monitor, and more · Rongronggg9/RSS-to-Telegram-Bot
Highlights
Retain post order: Retain the order of posts in a feed when sending them. Previously, all new posts were sent simultaneously, losing their order within the feed. Note: Posts from differ...
Retain post order: Retain the order of posts in a feed when sending them. Previously, all new posts were sent simultaneously, losing their order within the feed. Note: Posts from differ...
(简体中文翻译在下一条消息)
I am adding topic group support to RSStT and would like to know which subscription-topic relation satisfies your typical use case.
[1]
⭕️ Easy to implement.
⭕️ Migrating subscriptions among topics is straightforward.
❌ Unable to copy subscriptions among topics.
❌ Unable to subscribe to the same feed in different topics.
❌ Unable to subscribe to the same feed in the same topic.
[2]
⭕️ Easy to implement.
❓ Migrating subscriptions among topics is confusing - conflicts may occur.
⭕️ Able to copy subscriptions among topics.
❓ But confusing - conflicts may occur.
⭕️ Able to subscribe to the same feed in different topics.
❌ Subscriptions to the same feed cannot have different customization settings (their settings are always synchronized).
❌ Unable to subscribe to the same feed in the same topic. (so-called "conflicts")
[3]
❌ Hard to implement.
❓ Migrating subscriptions among topics is confusing - conflicts may occur.
⭕️ Able to copy subscriptions among topics.
❓ But confusing - conflicts may occur.
⭕️ Able to subscribe to the same feed in different topics.
⭕️ Subscriptions to the same feed may have different customization settings (their settings are never synchronized).
❌ Unable to subscribe to the same feed in the same topic. (so-called "conflicts")
(简体中文翻译在下一条消息)
I am adding topic group support to RSStT and would like to know which subscription-topic relation satisfies your typical use case.
[1]
⭕️ Easy to implement.
⭕️ Migrating subscriptions among topics is straightforward.
❌ Unable to copy subscriptions among topics.
❌ Unable to subscribe to the same feed in different topics.
❌ Unable to subscribe to the same feed in the same topic.
[2]
⭕️ Easy to implement.
❓ Migrating subscriptions among topics is confusing - conflicts may occur.
⭕️ Able to copy subscriptions among topics.
❓ But confusing - conflicts may occur.
⭕️ Able to subscribe to the same feed in different topics.
❌ Subscriptions to the same feed cannot have different customization settings (their settings are always synchronized).
❌ Unable to subscribe to the same feed in the same topic. (so-called "conflicts")
[3]
❌ Hard to implement.
❓ Migrating subscriptions among topics is confusing - conflicts may occur.
⭕️ Able to copy subscriptions among topics.
❓ But confusing - conflicts may occur.
⭕️ Able to subscribe to the same feed in different topics.
⭕️ Subscriptions to the same feed may have different customization settings (their settings are never synchronized).
❌ Unable to subscribe to the same feed in the same topic. (so-called "conflicts")
(简体中文翻译在下一条消息)
(See the previous message for English translation)
我正在为 RSStT 添加话题群组支持,并想知道哪种订阅-话题关系满足您的典型用例。
[1]
⭕️ 容易实现。
⭕️ 在话题之间迁移订阅是直截了当的。
❌ 不可以在话题之间复制订阅。
❌ 不可以在不同的话题中订阅同一个 feed。
❌ 不可以在同一个话题中订阅同一个 feed。
[2]
⭕️ 容易实现。
❓ 在话题之间迁移订阅是令人迷惑的 - 可能发生冲突。
⭕️ 可以在话题之间复制订阅。
❓ 但是是令人迷惑的 - 可能发生冲突。
⭕️ 可以在不同的话题中订阅同一个 feed。
❌ 对同一个 feed 的多个订阅不能具有不同的自定义设置 (它们的设置是永远被同步的)。
❌ 不可以在同一个话题中订阅同一个 feed。(所谓的 "冲突")
[3]
❌ 难以实现。
❓ 在话题之间迁移订阅是令人迷惑的 - 可能发生冲突。
⭕️ 可以在话题之间复制订阅。
❓ 但是是令人迷惑的 - 可能发生冲突。
⭕️ 可以在不同的话题中订阅同一个 feed。
⭕️ 对同一个 feed 的多个订阅可以具有不同的自定义设置 (它们的设置是永不同步的)。
❌ 不可以在同一个话题中订阅同一个 feed。(所谓的 "冲突")
(See the previous message for English translation)
我正在为 RSStT 添加话题群组支持,并想知道哪种订阅-话题关系满足您的典型用例。
[1]
⭕️ 容易实现。
⭕️ 在话题之间迁移订阅是直截了当的。
❌ 不可以在话题之间复制订阅。
❌ 不可以在不同的话题中订阅同一个 feed。
❌ 不可以在同一个话题中订阅同一个 feed。
[2]
⭕️ 容易实现。
❓ 在话题之间迁移订阅是令人迷惑的 - 可能发生冲突。
⭕️ 可以在话题之间复制订阅。
❓ 但是是令人迷惑的 - 可能发生冲突。
⭕️ 可以在不同的话题中订阅同一个 feed。
❌ 对同一个 feed 的多个订阅不能具有不同的自定义设置 (它们的设置是永远被同步的)。
❌ 不可以在同一个话题中订阅同一个 feed。(所谓的 "冲突")
[3]
❌ 难以实现。
❓ 在话题之间迁移订阅是令人迷惑的 - 可能发生冲突。
⭕️ 可以在话题之间复制订阅。
❓ 但是是令人迷惑的 - 可能发生冲突。
⭕️ 可以在不同的话题中订阅同一个 feed。
⭕️ 对同一个 feed 的多个订阅可以具有不同的自定义设置 (它们的设置是永不同步的)。
❌ 不可以在同一个话题中订阅同一个 feed。(所谓的 "冲突")
(See the previous message for English translation)
Which subscription-topic relation satisfies your typical use case? (If more than one option satisfies your typical use case, choose the one with the smallest number)
哪种订阅-主题关系满足您的典型用例?(如果多于一个选项满足您的典型用例,选择数字最小的一个)
哪种订阅-主题关系满足您的典型用例?(如果多于一个选项满足您的典型用例,选择数字最小的一个)
Anonymous Poll
80%
[1]
10%
[2]
10%
[3]
#Release v2.9.0: Telegraph-related revert, skip cert verification, and more
BREAKING CHANGES
Media (image and video) are no longer uploaded when generating Telegraph posts due to Telegraph disabling media upload. (first introduced in v2.6.0)
Addition
● Disable TLS certificate verification: The environment variable
Enhancements
● Sanitize post title and author: The title and author of a post (RSS item or Atom entry) are now sanitized to prevent unexpected formatting issues. In particular, unexpected whitespaces and linebreaks are removed, and any HTML elements are stripped. This helps display them correctly in Telegram messages as well as Telegraph posts.
● Improve robustness on Railway.app: Some Railway-specific environment variables are recognized to improve robustness on Railway.app. In particular,
● Minor refactor: Some internal functions have been refactored to improve readability and maintainability.
Bug fixes
●
● Bot managers can set monitoring intervals shorter than limit: Due to the breaking change introduced in v2.8.0, the privilege of bot managers to set intervals shorter than the minimal monitoring interval became useless. While v2.8.0 only applied this limitation when monitoring the updates of feeds, this release also applies it to the attempts by bot managers to change the monitoring interval for a subscription. Note: bot managers can always lower the minimal monitoring interval by adjusting
● Minor bug fixes
Bot | Channel | Group | GitHub repo | Patreon | Ko-fi
#Release v2.9.0: 与 Telegraph 相关的 revert、跳过证书校验和更多
重大变更
由于 Telegraph 禁用了媒体上传,生成 Telegraph 文章时不再上传媒体 (图片与视频) 。(在 v2.6.0 中首次引入)
新增功能
● 关闭 TLS 证书验证: 环境变量
增强
● 净化文章标题和作者: 文章 (RSS item 或 Atom entry) 的标题和作者现在被净化以防止意外的格式问题。特别是,预期外的空格和换行符被移除,任何 HTML 元素都被剥离。这有助于在 Telegram 消息以及 Telegraph 文章中正确显示它们。
● 改善在 Railway.app 上的稳健性: 一些特定于 Railway 的环境变量被识别以提高在 Railway.app 上的稳健性。特别是,当
● 次要的重构: 重构了一些内部函数以提高可读性和可维护性。
Bug 修复
●
● Bot 管理员可以设置比限制更短的监控间隔: 由于 v2.8.0 中引入的一个重大变更,bot 管理员可以设置比最小监控间隔更短的间隔的特权变得毫无意义。虽然 v2.8.0 只在监控 feed 的更新时应用了这个限制,但这个版本也将它应用于 bot 管理员的更改订阅监控间隔的尝试。注意: bot 管理员总是可以通过调整
● 次要的 bug 修复
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
BREAKING CHANGES
Media (image and video) are no longer uploaded when generating Telegraph posts due to Telegraph disabling media upload. (first introduced in v2.6.0)
Addition
● Disable TLS certificate verification: The environment variable
VERIFY_TLS
has been added to disable (when set to 0
) or enable (when set to 1
, default) TLS certificate verification. This is useful when subscribing to feeds with their TLS misconfigured. Note: Disabling TLS certificate verification is not recommended and should only be used as a last resort.Enhancements
● Sanitize post title and author: The title and author of a post (RSS item or Atom entry) are now sanitized to prevent unexpected formatting issues. In particular, unexpected whitespaces and linebreaks are removed, and any HTML elements are stripped. This helps display them correctly in Telegram messages as well as Telegraph posts.
● Improve robustness on Railway.app: Some Railway-specific environment variables are recognized to improve robustness on Railway.app. In particular,
DATABASE_PRIVATE_URL
and DATABASE_PUBLIC_URL
will be used when DATABASE_URL
is unavailable or invalid. This should solve most database connection issues on Railway.app.● Minor refactor: Some internal functions have been refactored to improve readability and maintainability.
Bug fixes
●
/version
not working: When installed from PyPI (e.g. pip install rsstt
), the /version
command might cause an error. This was a regression introduced in v2.7.0.● Bot managers can set monitoring intervals shorter than limit: Due to the breaking change introduced in v2.8.0, the privilege of bot managers to set intervals shorter than the minimal monitoring interval became useless. While v2.8.0 only applied this limitation when monitoring the updates of feeds, this release also applies it to the attempts by bot managers to change the monitoring interval for a subscription. Note: bot managers can always lower the minimal monitoring interval by adjusting
minimal_interval
in /set_option
(see also Advanced Settings), but doing so will also permit anyone who is able to use the bot to set shorter intervals.● Minor bug fixes
Bot | Channel | Group | GitHub repo | Patreon | Ko-fi
#Release v2.9.0: 与 Telegraph 相关的 revert、跳过证书校验和更多
重大变更
由于 Telegraph 禁用了媒体上传,生成 Telegraph 文章时不再上传媒体 (图片与视频) 。(在 v2.6.0 中首次引入)
新增功能
● 关闭 TLS 证书验证: 环境变量
VERIFY_TLS
已被添加以禁用 (设置为 0
时) 或启用 (设置为 1
时,默认) TLS 证书验证。当订阅 TLS 被错误配置的 feed 时,这很有用。注意:不建议禁用 TLS 证书验证,只应用作最后手段。增强
● 净化文章标题和作者: 文章 (RSS item 或 Atom entry) 的标题和作者现在被净化以防止意外的格式问题。特别是,预期外的空格和换行符被移除,任何 HTML 元素都被剥离。这有助于在 Telegram 消息以及 Telegraph 文章中正确显示它们。
● 改善在 Railway.app 上的稳健性: 一些特定于 Railway 的环境变量被识别以提高在 Railway.app 上的稳健性。特别是,当
DATABASE_URL
不可用或无效时,将使用 DATABASE_PRIVATE_URL
和 DATABASE_PUBLIC_URL
。这应该解决在 Railway.app 上的大多数数据库连接问题。● 次要的重构: 重构了一些内部函数以提高可读性和可维护性。
Bug 修复
●
/version
不工作: 当从 PyPI 安装时 (例如 pip install rsstt
), /version
命令可能会导致错误。这是在 v2.7.0 中引入的一个回归 (regression)。● Bot 管理员可以设置比限制更短的监控间隔: 由于 v2.8.0 中引入的一个重大变更,bot 管理员可以设置比最小监控间隔更短的间隔的特权变得毫无意义。虽然 v2.8.0 只在监控 feed 的更新时应用了这个限制,但这个版本也将它应用于 bot 管理员的更改订阅监控间隔的尝试。注意: bot 管理员总是可以通过调整
/set_option
中的 minimal_interval
来降低最小监控间隔 (另请参阅 高级设置),但这样做也会允许任何能够使用 bot 的人设置更短的间隔。● 次要的 bug 修复
官方 bot 实例 | 加入频道 | 加入群组 | GitHub 仓库 | 捐赠支持
GitHub
Release v2.9.0: Telegraph-related revert, skip cert verification, and more · Rongronggg9/RSS-to-Telegram-Bot
BREAKING CHANGES
Media (image and video) are no longer uploaded when generating Telegraph posts due to Telegraph disabling media upload. (first introduced in v2.6.0)
Addition
Disable TLS certifica...
Media (image and video) are no longer uploaded when generating Telegraph posts due to Telegraph disabling media upload. (first introduced in v2.6.0)
Addition
Disable TLS certifica...