✨ feat(http_utils): 添加可选的 accept_status_codes 参数以支持自定义状态码处理 (#2096)

- 在 AsyncHttpx 类中,新增 accept_status_codes 参数,允许用户指定哪些 HTTP 状态码不视为错误。
- 更新了单次请求的逻辑,以便在响应状态码符合 accept_status_codes 时不调用 raise_for_status 方法。

✨ feat(message): 增加随机失败提示消息功能

- 在 MessageUtils 类中,添加可爱风格的失败提示消息列表和获取随机消息的方法。

✨ feat(github_utils): 引入动态查询外部插件分组的功能

- 在 AliyunFileInfo 类中,新增 list_group_repositories 方法以列出分组下的所有仓库,并实现通过仓库名称获取仓库ID的逻辑。

✨ feat(virtual_env_package_manager): 增加清理 requirements 文件的功能

- 新增 _clean_requirements_file 方法,清理 requirements 文件中的非ASCII注释,避免 Windows 上 pip 使用 GBK 编码读取 UTF-8 文件时出错。

✨ feat(repo_utils): 优化阿里云仓库 URL 处理逻辑

- 更新 prepare_aliyun_url 方法以支持指定分组名称,并新增 get_aliyun_group_for_repo 方法以获取仓库所属的阿里云分组名。
This commit is contained in:
HibiKier
2026-02-06 16:45:48 +08:00
committed by GitHub
parent b95acce800
commit 5c067bcf04
7 changed files with 368 additions and 22 deletions
+39
View File
@@ -1,6 +1,8 @@
import base64
from io import BytesIO
from pathlib import Path
import random
from typing import ClassVar
import nonebot
from nonebot.adapters.onebot.v11 import Message, MessageSegment
@@ -48,6 +50,43 @@ class Config(BaseModel):
class MessageUtils:
# 可爱风格的失败提示消息列表
FAILURE_MESSAGES: ClassVar[list[str]] = [
"出了点小问题,待会再试试吧~ (´・ω・`)",
"哎呀,失败了呢 QAQ",
"好像哪里不对劲... (・∀・;)",
"emm...出错了 (;′⌒`)",
"失败了,但问题不大!╮(╯▽╰)╭",
"搞砸了...下次一定行 (๑•̀ㅂ•́)و✧",
"这次没成功,再来一次?",
"出错啦,让我缓缓... (´-ω-`)",
"翻车了,容我想想 ( ˘•ω•˘ )",
"不太顺利呢,稍后再试吧 (´;ω;`)",
"失败了...不过没关系啦 (・ω<)☆",
"呃,出了点状况 Σ(っ°Д°;)っ",
"没搞定,但别灰心~",
"坏掉了...等等再试试看 (>_<)",
"这次不太行,下次加油!(ง •_•)ง",
]
@classmethod
def get_failure_message(cls) -> str:
"""获取随机失败提示消息
返回:
str: 随机的可爱失败提示消息
"""
return random.choice(cls.FAILURE_MESSAGES)
@classmethod
def build_failure_message(cls) -> UniMessage:
"""构造随机失败提示消息
返回:
UniMessage: 构造完成的失败提示消息
"""
return cls.build_message(cls.get_failure_message())
@classmethod
def __build_message(
cls, msg_list: list[MESSAGE_TYPE], format_args: dict | None = None