Skip to content

v2.7.0: #Hashtags from post, Python 3.12 support, and more

Compare
Choose a tag to compare
@Rongronggg9 Rongronggg9 released this 09 May 17:16
· 202 commits to dev since this release
v2.7.0
1e66c03

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.

v2.7.0: 来自文章的 #hashtag、Python 3.12 支持和更多

重大变更

  • 迁移到 aerich 0.7.2aerich (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 的无效字符和标点符号替换为 _ (下划线)。
  • 改进了监控日志: 监控日志已经被改进,使其更加信息丰富和易于阅读。
  • 次要的重构: 重构了一些内部函数以提高可读性和可维护性。