Skip to content

Commit 80241eb

Browse files
authored
v2.6.21 (#467)
* fix(mypy): 用强制类型转换解决一些警告信息 * fix(env): 修正 `.env.dev` 文件中的注释 * refactor(boot): 重构启动后的提示信息的逻辑 * fix: 同步 `config.py` 与 `.env.dev` 中的配置项,并补充相关信息 * chore(release): v2.6.21
1 parent afdf41b commit 80241eb

File tree

7 files changed

+90
-46
lines changed

7 files changed

+90
-46
lines changed

.env.dev

+73-33
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,87 @@
1-
HOST=0.0.0.0 # 配置 NoneBot 监听的 IP/主机名
2-
PORT=8080 # 配置 NoneBot 监听的端口
3-
DEBUG=false # 开启 debug 模式 **请勿在生产环境开启**
4-
SUPERUSERS=["123123123"] # 配置 NoneBot 超级用户:管理员qq,支持多管理员,逗号分隔 注意,启动消息只发送给第一个管理员
5-
#GUILD_SUPERUSERS=["144115218677832239"] # 配置 NoneBot 频道超级用户:管理员频道号,注意非qq号,可发送@后在gocq控制台获取
6-
NICKNAME=["elf", "ELF"] # 配置机器人的昵称
7-
COMMAND_START=["","/"] # 配置命令起始字符
8-
COMMAND_SEP=["."] # 配置命令分割字符
9-
10-
#RSS_PROXY="" # 代理地址 示例: "127.0.0.1:7890"
11-
RSSHUB="https://rsshub.app" # rsshub订阅地址
12-
#RSSHUB_BACKUP=[] # 备用rsshub地址 示例: ["https://rsshub.app","https://rsshub.app"] 务必使用双引号!!!
13-
DB_CACHE_EXPIRE=30 # 去重数据库的记录清理限定天数
14-
LIMIT=200 # 缓存rss条数
15-
MAX_LENGTH=1024 # 正文长度限制,防止消息太长刷屏,以及消息过长发送失败的情况
16-
ENABLE_BOOT_MESSAGE=true # 是否启用启动时的提示消息推送
1+
# 配置 NoneBot 监听的 IP/主机名
2+
HOST=0.0.0.0
3+
# 配置 NoneBot 监听的端口
4+
PORT=8080
5+
# 开启 debug 模式 **请勿在生产环境开启**
6+
DEBUG=false
7+
# 配置 NoneBot 超级用户:管理员qq,支持多管理员,逗号分隔 注意,启动消息只发送给第一个管理员
8+
SUPERUSERS=["123123123"]
9+
# 配置 NoneBot 频道超级用户:管理员频道号,注意非qq号,可发送@后在gocq控制台获取
10+
#GUILD_SUPERUSERS=["144115218677832239"]
11+
# 配置机器人的昵称
12+
NICKNAME=["elf","ELF"]
13+
# 配置命令起始字符
14+
COMMAND_START=["","/"]
15+
# 配置命令分割字符
16+
COMMAND_SEP=["."]
17+
18+
# 代理地址
19+
#RSS_PROXY="127.0.0.1:7890"
20+
# rsshub订阅地址
21+
RSSHUB="https://rsshub.app"
22+
# 备用 rsshub 地址 示例: ["https://rsshub.app","https://rsshub.app"] 务必使用双引号!!!
23+
RSSHUB_BACKUP=[]
24+
# 去重数据库的记录清理限定天数
25+
DB_CACHE_EXPIRE=30
26+
# 缓存rss条数
27+
LIMIT=200
28+
# 正文长度限制,防止消息太长刷屏,以及消息过长发送失败的情况
29+
MAX_LENGTH=1024
30+
# 是否启用启动时的提示消息推送
31+
ENABLE_BOOT_MESSAGE=true
1732

1833
# 图片压缩
19-
ZIP_SIZE=2048 # 非 GIF 图片压缩后的最大长宽值,单位 px
20-
GIF_ZIP_SIZE=6144 # GIF 图片压缩临界值,单位 KB
21-
IMG_FORMAT="{subs}/{name}{ext}" # 保存图片的文件名,可使用 {subs}:订阅名 {name}:文件名 {ext}:文件后缀(可省略)
22-
IMG_DOWN_PATH="" # 图片的下载路径,默认为./data/image 可以为相对路径(./test)或绝对路径(/home)
34+
# 非 GIF 图片压缩后的最大长宽值,单位 px
35+
ZIP_SIZE=2048
36+
# GIF 图片压缩临界值,单位 KB
37+
GIF_ZIP_SIZE=6144
38+
# 保存图片的文件名,可使用 {subs}:订阅名 {name}:文件名 {ext}:文件后缀(可省略)
39+
IMG_FORMAT="{subs}/{name}{ext}"
40+
# 图片的下载路径,默认为./data/image 可以为相对路径(./test)或绝对路径(/home)
41+
IMG_DOWN_PATH=""
2342

24-
BLOCKQUOTE=true # 是否显示转发的内容(主要是微博),默认打开,如果关闭还有转发的信息的话,可以自行添加进屏蔽词(但是这整条消息就会没)
25-
#BLACK_WORD=[] # 屏蔽词填写 支持正则,如 ["互动抽奖","微博抽奖平台"] 务必使用双引号!!!
43+
# 是否显示转发的内容(主要是微博),默认打开,如果关闭还有转发的信息的话,可以自行添加进屏蔽词(但是这整条消息就会没)
44+
BLOCKQUOTE=true
45+
# 屏蔽词填写 支持正则,如 ["互动抽奖","微博抽奖平台"] 务必使用双引号!!!
46+
BLACK_WORD=[]
2647

2748
# 使用百度翻译API 可选,填的话两个都要填,不填默认使用谷歌翻译(需墙外?)
2849
# 百度翻译接口appid和secretKey,前往http://api.fanyi.baidu.com/获取
2950
# 一般来说申请标准版免费就够了,想要好一点可以认证上高级版,有月限额,rss用也足够了
30-
#BAIDU_ID=""
31-
#BAIDU_KEY=""
51+
BAIDU_ID=""
52+
BAIDU_KEY=""
53+
# DEEPL 翻译API 可选,不填默认使用谷歌翻译(需墙外?)
54+
DEEPL_TRANSLATOR_API_KEY=""
55+
# 配合 deepl_translator 使用的语言检测接口,前往 https://detectlanguage.com/documentation 注册获取 api_key
56+
SINGLE_DETECTION_API_KEY=""
3257

3358
# qbittorrent 相关设置(文件下载位置等更多设置请在qbittorrent软件中设置)
34-
#QB_USERNAME="" # qbittorrent 用户名
35-
#QB_PASSWORD="" # qbittorrent 密码
36-
#QB_WEB_URL="http://127.0.0.1:8081" # qbittorrent 客户端默认是关闭状态,请打开并设置端口号为 8081,同时勾选 “对本地主机上的客户端跳过身份验证”
37-
#QB_DOWN_PATH="" # qb的文件下载地址,这个地址必须是 go-cqhttp能访问到的
38-
#DOWN_STATUS_MSG_GROUP=[] # 下载进度消息提示群组 示例 [12345678] 注意:最好是将该群设置为免打扰
39-
#DOWN_STATUS_MSG_DATE=10 # 下载进度检查及提示间隔时间,秒,不建议小于 10s
59+
# qbittorrent 用户名
60+
QB_USERNAME=""
61+
# qbittorrent 密码
62+
QB_PASSWORD=""
63+
# qbittorrent 客户端默认是关闭状态,请打开并设置端口号为 8081,同时勾选 “对本地主机上的客户端跳过身份验证”
64+
#QB_WEB_URL="http://127.0.0.1:8081"
65+
# qb的文件下载地址,这个地址必须是 go-cqhttp能访问到的
66+
QB_DOWN_PATH=""
67+
# 下载进度消息提示群组 示例 [12345678] 注意:最好是将该群设置为免打扰
68+
DOWN_STATUS_MSG_GROUP=[]
69+
# 下载进度检查及提示间隔时间,单位秒,不建议小于 10
70+
DOWN_STATUS_MSG_DATE=10
4071

4172
# pikpak 相关设置
42-
#PIKPAK_USERNAME="" # pikpak 用户名
43-
#PIKPAK_PASSWORD="" # pikpak 密码
44-
#PIKPAK_DOWNLOAD_PATH="" # pikpak 离线保存的目录, 默认是根目录,示例: ELF_RSS/Downloads ,目录不存在会自动创建, 不能/结尾
73+
# pikpak 用户名
74+
PIKPAK_USERNAME=""
75+
# pikpak 密码
76+
PIKPAK_PASSWORD=""
77+
# pikpak 离线保存的目录, 默认是根目录,示例: ELF_RSS/Downloads ,目录不存在会自动创建, 不能/结尾
78+
PIKPAK_DOWNLOAD_PATH=""
79+
80+
# Telegram 相关设置
81+
# Telegram 管理员 ID 列表,用于接收离线通知和管理机器人
82+
TELEGRAM_ADMIN_IDS=[]
83+
# Telegram 机器人的 token
84+
TELEGRAM_BOT_TOKEN=""
4585

4686
# MYELF博客地址 https://myelf.club
4787
# 出现问题请在 GitHub 上提 issues

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "ELF_RSS"
3-
version = "2.6.20"
3+
version = "2.6.21"
44
description = "QQ机器人 RSS订阅 插件,订阅源建议选择 RSSHub"
55
authors = ["Quan666 <[email protected]>"]
66
license = "GPL-3.0-only"

src/plugins/ELF_RSS2/__init__.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from .rss_class import Rss
1616
from .utils import send_message_to_admin
1717

18-
VERSION = "2.6.20"
18+
VERSION = "2.6.21"
1919

2020
__plugin_meta__ = PluginMetadata(
2121
name="ELF_RSS",
@@ -34,6 +34,8 @@ def check_first_connect(_: LifecycleMetaEvent) -> bool:
3434

3535

3636
start_metaevent = on_metaevent(rule=check_first_connect, temp=True)
37+
FIRST_BOOT_MESSAGE = "首次启动,目前没有订阅,请添加!\n另外,请检查配置文件的内容(详见部署教程)!"
38+
BOOT_SUCCESS_MESSAGE = "ELF_RSS 订阅器启动成功!"
3739

3840

3941
# 启动时发送启动成功信息
@@ -49,11 +51,10 @@ async def start(bot: Bot) -> None:
4951

5052
rss_list = Rss.read_rss() # 读取list
5153
if not rss_list:
52-
if plugin_config.enable_boot_message:
53-
await send_message_to_admin(f"第一次启动,你还没有订阅,记得添加哟!\n{boot_message}", bot)
54-
logger.info("第一次启动,你还没有订阅,记得添加哟!")
54+
await send_message_to_admin(f"{FIRST_BOOT_MESSAGE}\n{boot_message}", bot)
55+
logger.info(FIRST_BOOT_MESSAGE)
5556
if plugin_config.enable_boot_message:
56-
await send_message_to_admin(f"ELF_RSS 订阅器启动成功!\n{boot_message}", bot)
57-
logger.info("ELF_RSS 订阅器启动成功!")
57+
await send_message_to_admin(f"{BOOT_SUCCESS_MESSAGE}\n{boot_message}", bot)
58+
logger.info(BOOT_SUCCESS_MESSAGE)
5859
# 创建检查更新任务
5960
await asyncio.gather(*[tr.add_job(rss) for rss in rss_list if not rss.stop])

src/plugins/ELF_RSS2/command/rsshub_add.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ async def handle_rsshub_routes(
5757
await RSSHUB_ADD.reject("路由名不能为空,请重新输入")
5858
return
5959

60-
rsshub_url = URL(config.rsshub)
60+
rsshub_url = URL(str(config.rsshub))
6161
# 对本机部署的 RSSHub 不使用代理
6262
local_host = [
6363
"localhost",

src/plugins/ELF_RSS2/config.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ class ELFConfig(BaseConfig):
1414
class Config:
1515
extra = "allow"
1616

17+
# 代理地址
1718
rss_proxy: Optional[str] = None
1819
rsshub: AnyHttpUrl = "https://rsshub.app" # type: ignore
20+
# 备用 rsshub 地址
1921
rsshub_backup: List[AnyHttpUrl] = []
2022
db_cache_expire: int = 30
2123
limit: int = 200
@@ -31,6 +33,7 @@ class Config:
3133
blockquote: bool = True
3234
black_word: Optional[List[str]] = None
3335

36+
# 百度翻译的 appid 和 key
3437
baidu_id: Optional[str] = None
3538
baidu_key: Optional[str] = None
3639
deepl_translator_api_key: Optional[str] = None
@@ -39,10 +42,10 @@ class Config:
3942

4043
qb_username: Optional[str] = None # qbittorrent 用户名
4144
qb_password: Optional[str] = None # qbittorrent 密码
42-
qb_web_url: Optional[str] = None
45+
qb_web_url: Optional[str] = None # qbittorrent 的 web 地址
4346
qb_down_path: Optional[str] = None # qb 的文件下载地址,这个地址必须是 go-cqhttp 能访问到的
44-
down_status_msg_group: Optional[List[int]] = None
45-
down_status_msg_date: int = 10
47+
down_status_msg_group: Optional[List[int]] = None # 下载进度消息提示群组
48+
down_status_msg_date: int = 10 # 下载进度检查及提示间隔时间,单位秒
4649

4750
pikpak_username: Optional[str] = None # pikpak 用户名
4851
pikpak_password: Optional[str] = None # pikpak 密码

src/plugins/ELF_RSS2/rss_class.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __init__(self, data: Optional[Dict[str, Any]] = None):
4444
self.__dict__.update(data)
4545

4646
# 返回订阅链接
47-
def get_url(self, rsshub: str = config.rsshub) -> str:
47+
def get_url(self, rsshub: str = str(config.rsshub)) -> str:
4848
if URL(self.url).scheme in ["http", "https"]:
4949
return self.url
5050
# 先判断地址是否 / 开头

src/plugins/ELF_RSS2/rss_parsing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ async def fetch_rss_backup(
136136
) -> Dict[str, Any]:
137137
d = {}
138138
for rsshub_url in config.rsshub_backup:
139-
rss_url = rss.get_url(rsshub=rsshub_url)
139+
rss_url = rss.get_url(rsshub=str(rsshub_url))
140140
try:
141141
resp = await session.get(rss_url, proxy=proxy)
142142
d = feedparser.parse(await resp.text())

0 commit comments

Comments
 (0)