RSS订阅机器人 ELF_RSS 的独立插件版本
Project description
[!NOTE] 本项目是 ELF_RSS 的重构版本,遵循 NoneBot2 插件开发的最佳实践,简化安装流程。
项目处于重构完成初期,可能存在 bug ,欢迎提交 PR 或 Issue 。
📖 功能介绍
- 通过命令增加、删除、查询、修改 RSS 订阅
- 翻译 RSS 订阅内容
- 个性化订阅设置
- 更新频率
- 仅发送标题/图片
- 自动下载图片至本地
- 推送过滤黑名单/白名单
- 图片压缩
- 根据标题、链接、图片自动去重发送过的消息
- 河蟹推送中的关键词
💿 安装方法
-
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令:nb plugin install nonebot-plugin-elf-rss-next
-
其他安装方式参见 文档
⚙️ 配置说明
在 .env 文件中添加:
# nonebot_plugin_elf_rss_next
# 目前并没有什么用
ELF_RSS__DEBUG=false
# RSSHub 订阅地址
ELF_RSS__RSSHUB_URL="https://rsshub.app"
# 备用 RSSHub 订阅地址(示例:["https://rsshub.app", "https://rsshub.app"])
ELF_RSS__RSSHUB_FALLBACK_URLS=[]
# 代理地址
# ELF_RSS__PROXY="http://127.0.0.1:7890"
# 屏蔽词(示例:["互动抽奖", "XX抽奖平台"])
ELF_RSS__BLACK_WORDS=[]
# 去重数据库记录期限
ELF_RSS__CACHE_EXPIRE=14
# 是否显示转发的内容(主要是微博),默认打开。如果关闭还有转发的信息的话,可以自行添加进屏蔽词(但是这整条消息就会没)
ELF_RSS__BLOCKQUOTE=true
# DeepL 翻译 API(可选,不填默认使用谷歌翻译)
ELF_RSS__DEEPL_API_KEY=""
# 百度翻译 API(可选,不填默认使用百度翻译)
# 前往 https://api.fanyi.baidu.com/ 获取
ELF_RSS__BAIDU_ID=""
ELF_RSS__BAIDU_API_KEY=""
# 配合 deepl_translator 使用的语言检测接口
# 前往 https://detectlanguage.com/ 注册获取
ELF_RSS__SINGLE_DETECTION_API_KEY=""
# 非 GIF 图片压缩后的最大分辨率(单位:px)
ELF_RSS__IMAGE_COMPRESS_SIZE=2048
# 不进行 GIF 图片压缩的最大大小(单位:KB)
ELF_RSS__GIF_COMPRESS_SIZE=6144
# RSS 更新推送消息的最大长度(防止消息太长刷屏,以及消息过长发送失败的情况)
ELF_RSS__MAX_LENGTH=500
# RSS 文章缓存数量
ELF_RSS__RSS_ENTRIES_FILE_LIMIT=200
📜 使用说明
帮助
命令:elf help
示例:elf help
功能:获取帮助信息
添加订阅
命令:elf add 订阅名 订阅地址
示例:elf add bgm-daily /bangumi.tv/calendar/today
功能:添加RSS订阅
说明:订阅地址可以填写完整的 URL 或 RSSHub 路由
取消订阅
命令:elf del 订阅名 [订阅名 ...]
示例:elf del bgm-daily twitter
功能:取消RSS订阅(支持批量操作)
所有订阅
命令:elf ls
示例:elf ls
功能:当前QQ号/群号下的所有订阅
订阅详情
命令:elf info 订阅名
示例:elf info bgm-daily
功能:获取指定订阅的详细信息
修改订阅
命令:elf edit 订阅名 属性=值 [属性=值 ...]
示例:elf edit bgm-daily
功能:修改指定订阅的属性
说明:可修改的属性和取值范围如下表所示
| 属性 | 取值 | 说明 |
|---|---|---|
| name | 无空格字符串 | 修改订阅的名称 |
| url | 无空格字符串 | 修改订阅的地址 RSSHub 订阅源可以直接填写路由,其他订阅源需要完整的 URL 地址 |
| 英文逗号分割的 QQ 号 / -1 | 修改订阅的推送用户;英文逗号开头表示追加;-1 清空所有推送用户 取消订阅请使用 del 命令 |
|
| qun | 英文逗号分割的群号 / -1 | 修改订阅的推送群;英文逗号开头表示追加;-1 清空所有推送群 取消订阅请使用 del 命令 |
| proxy | 1 / 0 | 是否使用代理 |
| freq | 正整数 / 下划线分割的 crontab 字符串 | 正整数表示每 x 分钟检查一次更新 crontab 字符串格式见表格下方说明 |
| trans | 1 / 0 | 是否翻译更新内容 |
| ot | 1 / 0 | 是否仅推送标题 |
| op | 1 / 0 | 是否仅推送图片 |
| dp | 1 / 0 | 是否将图片下载到本地 |
| cookie | 无空格字符串 | 需要身份验证的订阅源可能会需要 Cookie |
| wkey | 无空格字符串 / -1 | 设置只有包含白名单关键词的更新才会推送(支持正则);-1 表示清空白名单关键词 |
| bkey | 无空格字符串 / -1 | 设置包含黑名单关键词的更新不会推送(支持正则);-1 表示清空黑名单关键词 |
| mode | +title / +link / +image / +or -title / -link / -image / -or |
设置去重模式,默认不对推送的消息进行去重 按照推送的标题(title)、链接(link)、图片(image)进行去重 如果没有 or ,则设置的判断逻辑都满足才去重;否则满足其一就进行去重 |
| image | 非负整数 | 设置最大推送图片数量,0 表示不限制 |
| hexie | +/-关键词 | 添加/删除推送中需要和谐的关键词(支持正则) |
| merge | 1 / 0 | 是否发送合并转发消息 |
| stop | 1 / 0 | 是否停止更新 |
freq 中的 crontab 字符串定义与 Linux crontab 命令 相同,但是需要将空格替换为下划线,即:
f1_f2_f3_f4_f5
🤝 贡献代码
TODO
开发环境
-
在 VSCode 中安装插件,该项目使用 isort 和 Black Formatter 进行代码格式化
-
使用 uv 安装项目依赖
uv sync
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_elf_rss_next-0.1.0.tar.gz.
File metadata
- Download URL: nonebot_plugin_elf_rss_next-0.1.0.tar.gz
- Upload date:
- Size: 130.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e096232cfee27a001052320ae369b7b88212fcc65627b28230d08b77905f6614
|
|
| MD5 |
edcbee869d56cabb4859d9ef22df98da
|
|
| BLAKE2b-256 |
30c41ccab06c1880a9347fcee03af2dc16400fb591b9ddc53d92c2a7ede5bd8b
|
File details
Details for the file nonebot_plugin_elf_rss_next-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_elf_rss_next-0.1.0-py3-none-any.whl
- Upload date:
- Size: 61.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1c7da98875a027062e1c25663b90aa226180f825c1bd478316ff064e084ae2a
|
|
| MD5 |
8b22d466bb7c0c7d0101e74c58849695
|
|
| BLAKE2b-256 |
e2714b134cb492fa75dbaaa962c3573e0d1fb067fffdd238efa845fa1284d574
|