Compare commits

..
Author SHA1 Message Date
molanp e0fd4a031d 修复权限检查自愈时错误认证群聊 (#2163)
检查bot是否运行正常 / bot check (push) Canceled after 0s
CodeQL Code Security Analysis / Analyze (python) (push) Canceled after 0s
Ruff Lint / Ruff Lint (push) Canceled after 0s
Sequential Lint and Type Check / ruff-call (push) Canceled after 0s
Release Drafter / Update Release Draft (push) Canceled after 0s
Force Sync to Aliyun / sync (push) Canceled after 0s
Update Version / update-version (push) Canceled after 0s
Sequential Lint and Type Check / pyright-call (push) Canceled after 0s
2026-10-07 18:38:28 +08:00
10 changed files with 26 additions and 24 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ ci:
autoupdate_commit_msg: ":arrow_up: auto update by pre-commit hooks"
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.10
rev: v0.8.2
hooks:
- id: ruff
args: [--fix]
@@ -76,7 +76,8 @@ async def auth_admin(
raise SkipPluginException(
f"{plugin.name}({plugin.module}) 管理员权限不足...",
tip_message=(
f"你的权限不足喔,该功能需要的权限等级: {plugin.admin_level}"
f"你的权限不足喔,该功能需要的权限等级: "
f"{plugin.admin_level}"
),
tip_background=True,
)
@@ -181,7 +181,8 @@ def event_cache_key(
channel_id = entity.channel_id or ""
scope = platform_scope or platform
return (
f"{scope}:{platform}:{bot_id}:{entity.user_id}:{group_id}:{channel_id}:{msg_id}"
f"{scope}:{platform}:{bot_id}:{entity.user_id}:"
f"{group_id}:{channel_id}:{msg_id}"
)
@@ -133,7 +133,7 @@ async def _repair_missing_qq_client_group(
"group_name": "",
"max_member_count": 0,
"member_count": 0,
"group_flag": 1,
"group_flag": 0,
"platform": context.platform,
}
group, _ = await with_db_timeout(
+8 -10
View File
@@ -121,16 +121,14 @@ async def get_chat_history(
now = datetime.now()
filter_date = now - timedelta(days=7)
date_list = await _read_db(
lambda: (
ChatHistory.filter(
user_id=user_id,
group_id=group_id,
create_time__gte=filter_date,
)
.annotate(date=RawSQL("DATE(create_time)"), count=Count("id"))
.group_by("date")
.values("date", "count")
),
lambda: ChatHistory.filter(
user_id=user_id,
group_id=group_id,
create_time__gte=filter_date,
)
.annotate(date=RawSQL("DATE(create_time)"), count=Count("id"))
.group_by("date")
.values("date", "count"),
"MyInfo.chat_history_chart",
[],
)
@@ -59,7 +59,7 @@ async def _prune_stale_tags():
deleted_count = await tag_manager.prune_stale_group_links()
if deleted_count > 0:
logger.info(
f"定时任务:成功清理了 {deleted_count} 个无效的群组标签关联。",
f"定时任务:成功清理了 {deleted_count} 个无效的群组标签" f"关联。",
"群组标签管理",
)
else:
+3 -3
View File
@@ -23,9 +23,9 @@ from .config import (
lik2relation,
)
assert len(level2attitude) == len(lik2level) == len(lik2relation), (
"好感度态度、等级、关系长度不匹配!"
)
assert (
len(level2attitude) == len(lik2level) == len(lik2relation)
), "好感度态度、等级、关系长度不匹配!"
AVA_URL = "http://q1.qlogo.cn/g?b=qq&nk={}&s=160"
@@ -426,9 +426,8 @@ async def handle_delete(names: Match[list[str]]):
async def handle_clear():
confirm = await prompt_until(
"【警告】此操作将删除所有群组标签,是否继续?\n请输入 `是` 或 `确定` 确认操作",
lambda msg: (
msg.extract_plain_text().lower() in ["是", "确定", "yes", "confirm"]
),
lambda msg: msg.extract_plain_text().lower()
in ["是", "确定", "yes", "confirm"],
timeout=30,
retry=1,
)
+3 -2
View File
@@ -88,7 +88,8 @@ class FallbackRouter(BaseModelRouter):
)
raise e
logger.warning(
f"⚠️ 节点 '{m_name}' 错误 ({e.__class__.__name__}),触发故障转移..."
f"⚠️ 节点 '{m_name}' "
f"错误 ({e.__class__.__name__}),触发故障转移..."
)
errors.append(f"{m_name}({e.__class__.__name__})")
except Exception as e:
@@ -98,7 +99,7 @@ class FallbackRouter(BaseModelRouter):
if all_nodes_bypassed and len(model_names) > 1:
fallback_model = health_manager.get_best_fallback_route(model_names)
logger.warning(
f"⚠️ 路由组所有节点均已宕机!强制放行 '{fallback_model}' 探活..."
f"⚠️ 路由组所有节点均已宕机!" f"强制放行 '{fallback_model}' 探活..."
)
try:
async with await get_model_instance(
+3 -1
View File
@@ -339,7 +339,9 @@ def _index_sql(table: str, columns: tuple[str, ...], dialect: Dialect) -> str |
index_sql = _quote_identifier(_index_name(table, columns), dialect)
columns_sql = ", ".join(_quote_identifier(column, dialect) for column in columns)
if dialect in {"sqlite", "postgres"}:
return f"CREATE INDEX IF NOT EXISTS {index_sql} ON {table_sql}({columns_sql})"
return (
f"CREATE INDEX IF NOT EXISTS {index_sql} " f"ON {table_sql}({columns_sql})"
)
if dialect == "mysql":
return f"CREATE INDEX {index_sql} ON {table_sql}({columns_sql})"
return None