性能优化 (#2126)

* 性能优化

* 代码改进

* 优化浏览器代际切换逻辑

* 统一缓存与生命周期

* 添加aiomysql依赖

* 优化插件路径处理逻辑,简化条件判断;在虚拟环境包管理器中添加编码和错误处理参数以增强稳定性

* 🚨 auto fix by pre-commit hooks

* 优化Windows下的关闭逻辑

* 代码优化

* bugfix:修复配置重载问题

* bugfix:修复插件加载启动竞态问题

* 收敛事件入口和权限上下文

* 优化 Windows launcher 关闭重启兜底

---------

Co-authored-by: HibiKier <775757368@qq.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Copaan
2026-04-26 15:50:15 +08:00
committed by GitHub
co-authored by HibiKier pre-commit-ci[bot]
parent 24c316cd2c
commit 5d92ccd3b0
56 changed files with 3092 additions and 806 deletions
@@ -9,13 +9,17 @@ import pytz
from zhenxun import ui
from zhenxun.configs.path_config import IMAGE_PATH
from zhenxun.models.friend_user import FriendUser
from zhenxun.models.goods_info import GoodsInfo
from zhenxun.models.group_member_info import GroupInfoUser
from zhenxun.models.sign_log import SignLog
from zhenxun.models.sign_user import SignUser
from zhenxun.models.user_console import UserConsole
from zhenxun.services.avatar_service import avatar_service
from zhenxun.services.buffered_writers import append_user_gold_log
from zhenxun.services.log import logger
from zhenxun.ui.models import ImageCell, TextCell
from zhenxun.utils.enum import GoldHandle
from zhenxun.utils.exception import GoodsNotFound
from zhenxun.utils.platform import PlatformUtils
from ._random_event import random_event
@@ -182,11 +186,32 @@ class SignManage:
gift = random_event(float(user.impression))
if isinstance(gift, int):
gold += gift
await UserConsole.add_gold(user.user_id, gold + gift, "sign_in", platform)
user_console = await UserConsole.get_user(user.user_id, platform)
user_console.gold += gold
await user_console.save(update_fields=["gold"])
await append_user_gold_log(
user_id=user.user_id,
gold=gold,
handle=GoldHandle.GET,
source="sign_in",
)
gift = f"额外金币 +{gift}"
else:
await UserConsole.add_gold(user.user_id, gold, "sign_in", platform)
await UserConsole.add_props_by_name(user.user_id, gift, 1, platform)
goods = await GoodsInfo.get_or_none(goods_name=gift)
if not goods:
raise GoodsNotFound("未找到商品...")
user_console = await UserConsole.get_user(user.user_id, platform)
user_console.gold += gold
if goods.uuid not in user_console.props:
user_console.props[goods.uuid] = 0
user_console.props[goods.uuid] += 1
await user_console.save(update_fields=["gold", "props"])
await append_user_gold_log(
user_id=user.user_id,
gold=gold,
handle=GoldHandle.GET,
source="sign_in",
)
gift += " + 1"
logger.info(
f"签到成功. score: {user.impression:.2f} "