Skip to main content
RssReader × ErisPulse

ErisPulse-RssReader

RSS 订阅器 · Subscribe any RSS/Atom feed and get push notifications in chat

PyPI Python License Stars Downloads ErisPulse


ErisPulse 的全功能 RSS/Atom 订阅器模块。在聊天中订阅任意源,按计划自动轮询抓取并以富文本卡片推送新内容。配备交互式菜单、批量导入、关键词过滤、多群隔离,以及订阅健康检查——定时探活全部源,发现失效链接自动通知所在群。

功能特性

功能 说明
订阅抓取 订阅任意 RSS/Atom 源,定时抓取并推送新内容
富文本卡片 自动降级渲染:Html > Markdown > Text
交互式菜单 /rss 进入引导式菜单,回复编号即可操作
快捷订阅 /rss <URL> 一键订阅
批量添加 一次粘贴多个地址批量导入
关键词过滤 黑名单 / 白名单,普通关键词或正则,会话级或全局级
多目标独立 多群 / 多用户各自独立订阅
智能去重 同一条目绝不重复推送
暂停 / 恢复 随时暂停或恢复任一订阅
健康检查 定时探活全部源,失效源标记并 @订阅人通知到群
导出订阅 一键导出全部订阅列表
仪表盘 网页端完整增删改查 + 改 URL + 一键清理失效源

安装

epsdk install RssReader
# 或
pip install ErisPulse-RssReader

依赖 feedparser>=6.0beautifulsoup4>=4.12 已在依赖中声明,安装时自动拉取。

使用

模块加载后通过斜杠命令交互:

命令列表

命令 说明
/rss 打开交互式菜单
/rss <URL> 快速订阅 RSS 源

菜单内回复编号操作:

编号 操作
1 添加订阅
2 查看订阅列表
3 删除订阅
4 暂停 / 恢复订阅
5 测试 RSS 源
6 立即推送
7 批量添加订阅
8 过滤规则管理
9 导出订阅
10 修改推送间隔
11 订阅健康检查(管理本人添加的失效源;管理员可管理全部)

HTTP API

模块注册以下 HTTP 端点:

端点 说明
GET /RssReader/api/stats 订阅 / 过滤统计
GET /RssReader/api/subscriptions 查询订阅(可选 target_type & target_id
POST /RssReader/api/subscriptions 添加订阅
GET /RssReader/api/subscriptions/export 导出全部订阅
GET /RssReader/api/subscriptions/unhealthy 查询失效订阅
POST /RssReader/api/subscriptions/health-check 立即体检
POST /RssReader/api/subscriptions/purge-unhealthy 一键删除全部失效
PUT /RssReader/api/subscriptions/{id} 更新订阅(支持改 url
DELETE /RssReader/api/subscriptions/{id} 删除订阅
POST /RssReader/api/subscriptions/{id}/toggle 暂停 / 恢复
GET /RssReader/api/filters 查询过滤规则
POST /RssReader/api/filters 添加过滤规则
DELETE /RssReader/api/filters/{id} 删除过滤规则

配置

首次加载自动生成默认配置,可在 ErisPulse 配置中修改 RssReader 节:

[RssReader]
default_interval = 30          # 默认推送间隔(分钟)
max_items_per_push = 5         # 每次推送最大条数
auto_start = true              # 启动时自动开始抓取
max_subs_per_chat = 20         # 每个聊天最大订阅数
admins = []                    # 管理员用户 ID(健康检查可管理全部订阅)
health_check_interval = 1440   # 健康检查间隔(分钟)
health_check_fail_threshold = 3 # 连续失败几次判定失效
health_check_probe_timeout = 10 # 体检单个源的最长超时(秒)
参数 默认值 说明
default_interval 30 默认推送间隔(分钟)
max_items_per_push 5 每次推送最大条数
auto_start true 启动时自动开始抓取
max_subs_per_chat 20 每个聊天最大订阅数
admins [] 管理员用户 ID(健康检查可管理全部订阅)
health_check_interval 1440 健康检查间隔(分钟)
health_check_fail_threshold 3 连续失败几次判定失效
health_check_probe_timeout 10 体检单个源最长超时(秒)

推送效果

推送时自动检测平台能力,按 Html > Markdown > Text 优先级降级展示:

  • 单条更新 → 详细卡片(标题、作者、时间、摘要、链接)
  • 多条更新 → 摘要列表(标题 + 时间)

架构

RssReader/
├── Core.py          模块入口,注册命令、HTTP 路由与仪表盘视图
├── rss.py           RSS/Atom 抓取与解析,FeedItem 数据模型,源探活
├── store.py         存储层,订阅 / 历史 / 过滤规则 CRUD + 健康状态
├── scheduler.py     调度器,逐源轮询 + 健康检查任务 + 失效通知
└── templates.py     Html / Markdown / Text 降级模板

自 v1.2 起,存储层为每条订阅记录 added_by / last_status / last_check_at / last_error / fail_count,支持定时健康检查;添加者可管理自己添加的失效源,管理员可管理全部。

License


Related · ErisPulse · Documentation · Issues

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

erispulse_rssreader-1.2.0.tar.gz (546.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

erispulse_rssreader-1.2.0-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file erispulse_rssreader-1.2.0.tar.gz.

File metadata

  • Download URL: erispulse_rssreader-1.2.0.tar.gz
  • Upload date:
  • Size: 546.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for erispulse_rssreader-1.2.0.tar.gz
Algorithm Hash digest
SHA256 6e5bcb2c8912c0c6bd36afbf8c0303db53a42efabb70ed90ee76f3655221f384
MD5 ee1aa9cbb59a8bdae30489fa1d557ec5
BLAKE2b-256 0ebf5473c81754e9c43460264792d4de1f3525e4541cb3cfc623bd6d09c975b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for erispulse_rssreader-1.2.0.tar.gz:

Publisher: python-publish.yml on wsu2059q/ErisPulse-RssReader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file erispulse_rssreader-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for erispulse_rssreader-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b595ed3eb258544aa714cf3c83c0a747dc859eae7cf7e4099fbb7d9832074ee2
MD5 56ea0f93a8c1f8aa4f57aee1b187a3f3
BLAKE2b-256 a2e94386f063d7d511dcee09db5747b7cb4c2ee8ad5f4be477ba767ab41b13bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for erispulse_rssreader-1.2.0-py3-none-any.whl:

Publisher: python-publish.yml on wsu2059q/ErisPulse-RssReader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page