Skip to content

Commit

Permalink
v2.6.21 (#467)
Browse files Browse the repository at this point in the history
* fix(mypy): 用强制类型转换解决一些警告信息

* fix(env): 修正 `.env.dev` 文件中的注释

* refactor(boot): 重构启动后的提示信息的逻辑

* fix: 同步 `config.py` 与 `.env.dev` 中的配置项,并补充相关信息

* chore(release): v2.6.21
  • Loading branch information
NekoAria authored Aug 28, 2023
1 parent afdf41b commit 80241eb
Show file tree
Hide file tree
Showing 7 changed files with 90 additions and 46 deletions.
106 changes: 73 additions & 33 deletions .env.dev
Original file line number Diff line number Diff line change
@@ -1,47 +1,87 @@
HOST=0.0.0.0 # 配置 NoneBot 监听的 IP/主机名
PORT=8080 # 配置 NoneBot 监听的端口
DEBUG=false # 开启 debug 模式 **请勿在生产环境开启**
SUPERUSERS=["123123123"] # 配置 NoneBot 超级用户:管理员qq,支持多管理员,逗号分隔 注意,启动消息只发送给第一个管理员
#GUILD_SUPERUSERS=["144115218677832239"] # 配置 NoneBot 频道超级用户:管理员频道号,注意非qq号,可发送@后在gocq控制台获取
NICKNAME=["elf", "ELF"] # 配置机器人的昵称
COMMAND_START=["","/"] # 配置命令起始字符
COMMAND_SEP=["."] # 配置命令分割字符

#RSS_PROXY="" # 代理地址 示例: "127.0.0.1:7890"
RSSHUB="https://rsshub.app" # rsshub订阅地址
#RSSHUB_BACKUP=[] # 备用rsshub地址 示例: ["https://rsshub.app","https://rsshub.app"] 务必使用双引号!!!
DB_CACHE_EXPIRE=30 # 去重数据库的记录清理限定天数
LIMIT=200 # 缓存rss条数
MAX_LENGTH=1024 # 正文长度限制,防止消息太长刷屏,以及消息过长发送失败的情况
ENABLE_BOOT_MESSAGE=true # 是否启用启动时的提示消息推送
# 配置 NoneBot 监听的 IP/主机名
HOST=0.0.0.0
# 配置 NoneBot 监听的端口
PORT=8080
# 开启 debug 模式 **请勿在生产环境开启**
DEBUG=false
# 配置 NoneBot 超级用户:管理员qq,支持多管理员,逗号分隔 注意,启动消息只发送给第一个管理员
SUPERUSERS=["123123123"]
# 配置 NoneBot 频道超级用户:管理员频道号,注意非qq号,可发送@后在gocq控制台获取
#GUILD_SUPERUSERS=["144115218677832239"]
# 配置机器人的昵称
NICKNAME=["elf","ELF"]
# 配置命令起始字符
COMMAND_START=["","/"]
# 配置命令分割字符
COMMAND_SEP=["."]

# 代理地址
#RSS_PROXY="127.0.0.1:7890"
# rsshub订阅地址
RSSHUB="https://rsshub.app"
# 备用 rsshub 地址 示例: ["https://rsshub.app","https://rsshub.app"] 务必使用双引号!!!
RSSHUB_BACKUP=[]
# 去重数据库的记录清理限定天数
DB_CACHE_EXPIRE=30
# 缓存rss条数
LIMIT=200
# 正文长度限制,防止消息太长刷屏,以及消息过长发送失败的情况
MAX_LENGTH=1024
# 是否启用启动时的提示消息推送
ENABLE_BOOT_MESSAGE=true

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

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

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

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

# pikpak 相关设置
#PIKPAK_USERNAME="" # pikpak 用户名
#PIKPAK_PASSWORD="" # pikpak 密码
#PIKPAK_DOWNLOAD_PATH="" # pikpak 离线保存的目录, 默认是根目录,示例: ELF_RSS/Downloads ,目录不存在会自动创建, 不能/结尾
# pikpak 用户名
PIKPAK_USERNAME=""
# pikpak 密码
PIKPAK_PASSWORD=""
# pikpak 离线保存的目录, 默认是根目录,示例: ELF_RSS/Downloads ,目录不存在会自动创建, 不能/结尾
PIKPAK_DOWNLOAD_PATH=""

# Telegram 相关设置
# Telegram 管理员 ID 列表,用于接收离线通知和管理机器人
TELEGRAM_ADMIN_IDS=[]
# Telegram 机器人的 token
TELEGRAM_BOT_TOKEN=""

# MYELF博客地址 https://myelf.club
# 出现问题请在 GitHub 上提 issues
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "ELF_RSS"
version = "2.6.20"
version = "2.6.21"
description = "QQ机器人 RSS订阅 插件,订阅源建议选择 RSSHub"
authors = ["Quan666 <[email protected]>"]
license = "GPL-3.0-only"
Expand Down
13 changes: 7 additions & 6 deletions src/plugins/ELF_RSS2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from .rss_class import Rss
from .utils import send_message_to_admin

VERSION = "2.6.20"
VERSION = "2.6.21"

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


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


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

rss_list = Rss.read_rss() # 读取list
if not rss_list:
if plugin_config.enable_boot_message:
await send_message_to_admin(f"第一次启动,你还没有订阅,记得添加哟!\n{boot_message}", bot)
logger.info("第一次启动,你还没有订阅,记得添加哟!")
await send_message_to_admin(f"{FIRST_BOOT_MESSAGE}\n{boot_message}", bot)
logger.info(FIRST_BOOT_MESSAGE)
if plugin_config.enable_boot_message:
await send_message_to_admin(f"ELF_RSS 订阅器启动成功!\n{boot_message}", bot)
logger.info("ELF_RSS 订阅器启动成功!")
await send_message_to_admin(f"{BOOT_SUCCESS_MESSAGE}\n{boot_message}", bot)
logger.info(BOOT_SUCCESS_MESSAGE)
# 创建检查更新任务
await asyncio.gather(*[tr.add_job(rss) for rss in rss_list if not rss.stop])
2 changes: 1 addition & 1 deletion src/plugins/ELF_RSS2/command/rsshub_add.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ async def handle_rsshub_routes(
await RSSHUB_ADD.reject("路由名不能为空,请重新输入")
return

rsshub_url = URL(config.rsshub)
rsshub_url = URL(str(config.rsshub))
# 对本机部署的 RSSHub 不使用代理
local_host = [
"localhost",
Expand Down
9 changes: 6 additions & 3 deletions src/plugins/ELF_RSS2/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ class ELFConfig(BaseConfig):
class Config:
extra = "allow"

# 代理地址
rss_proxy: Optional[str] = None
rsshub: AnyHttpUrl = "https://rsshub.app" # type: ignore
# 备用 rsshub 地址
rsshub_backup: List[AnyHttpUrl] = []
db_cache_expire: int = 30
limit: int = 200
Expand All @@ -31,6 +33,7 @@ class Config:
blockquote: bool = True
black_word: Optional[List[str]] = None

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

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

pikpak_username: Optional[str] = None # pikpak 用户名
pikpak_password: Optional[str] = None # pikpak 密码
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/ELF_RSS2/rss_class.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def __init__(self, data: Optional[Dict[str, Any]] = None):
self.__dict__.update(data)

# 返回订阅链接
def get_url(self, rsshub: str = config.rsshub) -> str:
def get_url(self, rsshub: str = str(config.rsshub)) -> str:
if URL(self.url).scheme in ["http", "https"]:
return self.url
# 先判断地址是否 / 开头
Expand Down
2 changes: 1 addition & 1 deletion src/plugins/ELF_RSS2/rss_parsing.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ async def fetch_rss_backup(
) -> Dict[str, Any]:
d = {}
for rsshub_url in config.rsshub_backup:
rss_url = rss.get_url(rsshub=rsshub_url)
rss_url = rss.get_url(rsshub=str(rsshub_url))
try:
resp = await session.get(rss_url, proxy=proxy)
d = feedparser.parse(await resp.text())
Expand Down

0 comments on commit 80241eb

Please sign in to comment.