diff --git a/bot.py b/bot.py index 76fe8204..52cd29fc 100644 --- a/bot.py +++ b/bot.py @@ -1,8 +1,8 @@ import nonebot # from nonebot.adapters.discord import Adapter as DiscordAdapter -from nonebot.adapters.dodo import Adapter as DoDoAdapter -from nonebot.adapters.kaiheila import Adapter as KaiheilaAdapter +# from nonebot.adapters.dodo import Adapter as DoDoAdapter +# from nonebot.adapters.kaiheila import Adapter as KaiheilaAdapter from nonebot.adapters.onebot.v11 import Adapter as OneBotV11Adapter nonebot.init() @@ -10,8 +10,8 @@ nonebot.init() driver = nonebot.get_driver() driver.register_adapter(OneBotV11Adapter) -driver.register_adapter(KaiheilaAdapter) -driver.register_adapter(DoDoAdapter) +# driver.register_adapter(KaiheilaAdapter) +# driver.register_adapter(DoDoAdapter) # driver.register_adapter(DiscordAdapter) from zhenxun.services.db_context import disconnect, init diff --git a/pyproject.toml b/pyproject.toml index b0950322..ff0aff5c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,8 +68,8 @@ plugins = [ plugin_dirs = ["zhenxun/services", "zhenxun/builtin_plugins", "zhenxun/plugins"] adapters = [ { name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11" }, - { name = "DoDo", module_name = "nonebot.adapters.dodo" }, - { name = "开黑啦", module_name = "nonebot.adapters.kaiheila" }, +# { name = "DoDo", module_name = "nonebot.adapters.dodo" }, +# { name = "开黑啦", module_name = "nonebot.adapters.kaiheila" }, ] [tool.ruff] diff --git a/scripts/bot_check.py b/scripts/bot_check.py index 3e6c2d2a..4fa7493b 100644 --- a/scripts/bot_check.py +++ b/scripts/bot_check.py @@ -3,10 +3,6 @@ import os import re import nonebot - -# from nonebot.adapters.discord import Adapter as DiscordAdapter -from nonebot.adapters.dodo import Adapter as DoDoAdapter -from nonebot.adapters.kaiheila import Adapter as KaiheilaAdapter from nonebot.adapters.onebot.v11 import Adapter as OneBotV11Adapter from nonebot.log import logger @@ -17,8 +13,6 @@ from zhenxun.services.db_context import disconnect, init driver = nonebot.get_driver() driver.register_adapter(OneBotV11Adapter) -driver.register_adapter(KaiheilaAdapter) -driver.register_adapter(DoDoAdapter) driver.on_startup(init) diff --git a/zhenxun/builtin_plugins/admin/welcome_message/data_source.py b/zhenxun/builtin_plugins/admin/welcome_message/data_source.py index 99f18033..5ba125ac 100644 --- a/zhenxun/builtin_plugins/admin/welcome_message/data_source.py +++ b/zhenxun/builtin_plugins/admin/welcome_message/data_source.py @@ -206,6 +206,8 @@ class Manager: 返回: list: 消息内容 """ + if not session.group: + return None json_data = cls.__get_data(session) if not json_data: return None diff --git a/zhenxun/builtin_plugins/check/data_source.py b/zhenxun/builtin_plugins/check/data_source.py index 0ca8f95e..368500c7 100644 --- a/zhenxun/builtin_plugins/check/data_source.py +++ b/zhenxun/builtin_plugins/check/data_source.py @@ -23,7 +23,7 @@ ARM_KEY = "aarch64" @dataclass class CPUInfo: - core: int + core: int | None """CPU 物理核心数""" usage: float """CPU 占用百分比,取值范围(0,100]""" diff --git a/zhenxun/builtin_plugins/hooks/_auth_checker.py b/zhenxun/builtin_plugins/hooks/_auth_checker.py index 2276a8fa..242e3bf7 100644 --- a/zhenxun/builtin_plugins/hooks/_auth_checker.py +++ b/zhenxun/builtin_plugins/hooks/_auth_checker.py @@ -1,3 +1,5 @@ +from typing import ClassVar + from nonebot.adapters import Bot, Event from nonebot.adapters.onebot.v11 import PokeNotifyEvent from nonebot.exception import IgnoredException @@ -38,11 +40,11 @@ class Limit(BaseModel): class LimitManage: - add_module = [] # noqa: RUF012 + add_module: ClassVar[list] = [] - cd_limit: dict[str, Limit] = {} # noqa: RUF012 - block_limit: dict[str, Limit] = {} # noqa: RUF012 - count_limit: dict[str, Limit] = {} # noqa: RUF012 + cd_limit: ClassVar[dict[str, Limit]] = {} + block_limit: ClassVar[dict[str, Limit]] = {} + count_limit: ClassVar[dict[str, Limit]] = {} @classmethod def add_limit(cls, limit: PluginLimit): diff --git a/zhenxun/builtin_plugins/platform/__init__.py b/zhenxun/builtin_plugins/platform/__init__.py index 74132b8b..8ded37ef 100644 --- a/zhenxun/builtin_plugins/platform/__init__.py +++ b/zhenxun/builtin_plugins/platform/__init__.py @@ -16,7 +16,9 @@ except ImportError: try: - from nonebot.adapters.qq import Bot # noqa: F401 + from nonebot.adapters.qq import ( # noqa: F401 # pyright: ignore [reportMissingImports] + Bot, + ) nonebot.load_plugins(str((path / "qq_api").resolve())) except ImportError: diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/database/models/sql_log.py b/zhenxun/builtin_plugins/web_ui/api/tabs/database/models/sql_log.py index 73670d60..b5ef7189 100644 --- a/zhenxun/builtin_plugins/web_ui/api/tabs/database/models/sql_log.py +++ b/zhenxun/builtin_plugins/web_ui/api/tabs/database/models/sql_log.py @@ -17,7 +17,7 @@ class SqlLog(Model): create_time = fields.DatetimeField(auto_now_add=True) """创建时间""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "sql_log" table_description = "sql执行日志" diff --git a/zhenxun/configs/utils/__init__.py b/zhenxun/configs/utils/__init__.py index 1276d8ff..052993a7 100644 --- a/zhenxun/configs/utils/__init__.py +++ b/zhenxun/configs/utils/__init__.py @@ -1,3 +1,4 @@ +from collections import defaultdict from collections.abc import Callable import copy from datetime import datetime @@ -95,7 +96,7 @@ class ConfigGroup(BaseModel): """模块名""" name: str | None = None """插件名""" - configs: dict[str, ConfigModel] = {} + configs: dict[str, ConfigModel] = defaultdict() """配置项列表""" def get(self, c: str, default: Any = None) -> Any: diff --git a/zhenxun/models/bag_user.py b/zhenxun/models/bag_user.py index 9f829abe..bcee7da4 100644 --- a/zhenxun/models/bag_user.py +++ b/zhenxun/models/bag_user.py @@ -25,7 +25,7 @@ class BagUser(Model): property: dict[str, int] = fields.JSONField(default={}) # type: ignore """道具""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "bag_users" table_description = "用户道具数据表" unique_together = ("user_id", "group_id") diff --git a/zhenxun/models/ban_console.py b/zhenxun/models/ban_console.py index 5b9e5b2a..39907ff0 100644 --- a/zhenxun/models/ban_console.py +++ b/zhenxun/models/ban_console.py @@ -24,7 +24,7 @@ class BanConsole(Model): operator = fields.CharField(255) """使用Ban命令的用户""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "ban_console" table_description = "封禁人员/群组数据表" diff --git a/zhenxun/models/bot_connect_log.py b/zhenxun/models/bot_connect_log.py index 768f049c..ad96186d 100644 --- a/zhenxun/models/bot_connect_log.py +++ b/zhenxun/models/bot_connect_log.py @@ -17,6 +17,6 @@ class BotConnectLog(Model): create_time = fields.DatetimeField(auto_now_add=True) """创建时间""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "bot_connect_log" table_description = "bot连接表" diff --git a/zhenxun/models/bot_console.py b/zhenxun/models/bot_console.py index df130a89..30e981ef 100644 --- a/zhenxun/models/bot_console.py +++ b/zhenxun/models/bot_console.py @@ -25,7 +25,7 @@ class BotConsole(Model): available_tasks = fields.TextField(default="", description="可用被动技能") """可用被动技能""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "bot_console" table_description = "Bot数据表" diff --git a/zhenxun/models/chat_history.py b/zhenxun/models/chat_history.py index 5e23887d..7284db1e 100644 --- a/zhenxun/models/chat_history.py +++ b/zhenxun/models/chat_history.py @@ -26,7 +26,7 @@ class ChatHistory(Model): platform = fields.CharField(255, null=True) """平台""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "chat_history" table_description = "聊天记录数据表" diff --git a/zhenxun/models/fg_request.py b/zhenxun/models/fg_request.py index 899ae5dd..8d4dc03c 100644 --- a/zhenxun/models/fg_request.py +++ b/zhenxun/models/fg_request.py @@ -33,7 +33,7 @@ class FgRequest(Model): ) """处理类型""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "fg_request" table_description = "好友群组请求" diff --git a/zhenxun/models/friend_user.py b/zhenxun/models/friend_user.py index e4e5ca03..c6d6f119 100644 --- a/zhenxun/models/friend_user.py +++ b/zhenxun/models/friend_user.py @@ -16,7 +16,7 @@ class FriendUser(Model): platform = fields.CharField(255, null=True, description="平台") """平台""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "friend_users" table_description = "好友信息数据表" diff --git a/zhenxun/models/goods_info.py b/zhenxun/models/goods_info.py index 6fba55fe..07efa6f4 100644 --- a/zhenxun/models/goods_info.py +++ b/zhenxun/models/goods_info.py @@ -32,7 +32,7 @@ class GoodsInfo(Model): icon = fields.TextField(null=True) """图标路径""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "goods_info" table_description = "商品数据表" diff --git a/zhenxun/models/group_console.py b/zhenxun/models/group_console.py index 8520b93d..70a3d901 100644 --- a/zhenxun/models/group_console.py +++ b/zhenxun/models/group_console.py @@ -46,7 +46,7 @@ class GroupConsole(Model): platform = fields.CharField(255, default="qq", description="所属平台") """所属平台""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "group_console" table_description = "群组信息表" unique_together = ("group_id", "channel_id") diff --git a/zhenxun/models/group_info.py b/zhenxun/models/group_info.py index 9b8e3065..b60120a1 100644 --- a/zhenxun/models/group_info.py +++ b/zhenxun/models/group_info.py @@ -23,7 +23,7 @@ class GroupInfo(Model): platform = fields.CharField(255, default="qq", description="所属平台") """所属平台""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "group_info" table_description = "群聊信息表" @@ -75,8 +75,8 @@ class GroupInfo(Model): group_id=group_id, defaults={"platform": platform} ) if is_superuser: - if "module," not in group.superuser_block_plugin: - group.superuser_block_plugin += f"{module}," + if "module," not in group.superuser_block_plugin: # type: ignore + group.superuser_block_plugin += f"{module}," # type: ignore elif "module," not in group.block_plugin: group.block_plugin += f"{module}," await group.save(update_fields=["block_plugin", "superuser_block_plugin"]) @@ -99,8 +99,8 @@ class GroupInfo(Model): group_id=group_id, defaults={"platform": platform} ) if is_superuser: - if "module," in group.superuser_block_plugin: - group.superuser_block_plugin = group.superuser_block_plugin.replace( + if "module," in group.superuser_block_plugin: # type: ignore + group.superuser_block_plugin = group.superuser_block_plugin.replace( # type: ignore f"{module},", "" ) elif "module," in group.block_plugin: diff --git a/zhenxun/models/group_member_info.py b/zhenxun/models/group_member_info.py index edb74d66..2bb3d46f 100644 --- a/zhenxun/models/group_member_info.py +++ b/zhenxun/models/group_member_info.py @@ -22,7 +22,7 @@ class GroupInfoUser(Model): platform = fields.CharField(255, null=True, description="平台") """平台""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "group_info_users" table_description = "群员信息数据表" unique_together = ("user_id", "group_id") diff --git a/zhenxun/models/level_user.py b/zhenxun/models/level_user.py index 72ed26e1..d60b52c2 100644 --- a/zhenxun/models/level_user.py +++ b/zhenxun/models/level_user.py @@ -15,7 +15,7 @@ class LevelUser(Model): group_flag = fields.IntField(default=0) """特殊标记,是否随群管理员变更而设置权限""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "level_users" table_description = "用户权限数据库" unique_together = ("user_id", "group_id") diff --git a/zhenxun/models/plugin_info.py b/zhenxun/models/plugin_info.py index aea208bd..d9fca59d 100644 --- a/zhenxun/models/plugin_info.py +++ b/zhenxun/models/plugin_info.py @@ -51,7 +51,7 @@ class PluginInfo(Model): is_show = fields.BooleanField(default=True, description="是否显示在帮助中") """是否显示在帮助中""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "plugin_info" table_description = "插件基本信息" diff --git a/zhenxun/models/plugin_limit.py b/zhenxun/models/plugin_limit.py index 172c5394..bee905ff 100644 --- a/zhenxun/models/plugin_limit.py +++ b/zhenxun/models/plugin_limit.py @@ -35,6 +35,6 @@ class PluginLimit(Model): max_count = fields.IntField(null=True, description="最大调用次数") """最大调用次数""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "plugin_limit" table_description = "插件限制" diff --git a/zhenxun/models/sign_group_user.py b/zhenxun/models/sign_group_user.py index 6aab53d1..adbd797c 100644 --- a/zhenxun/models/sign_group_user.py +++ b/zhenxun/models/sign_group_user.py @@ -24,7 +24,7 @@ class SignGroupUser(Model): """使用指定双倍概率""" # specify_probability = fields.DecimalField(10, 3, default=0) - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "sign_group_users" table_description = "群员签到数据表" unique_together = ("user_id", "group_id") diff --git a/zhenxun/models/sign_log.py b/zhenxun/models/sign_log.py index 16efd198..6424f94c 100644 --- a/zhenxun/models/sign_log.py +++ b/zhenxun/models/sign_log.py @@ -17,6 +17,6 @@ class SignLog(Model): platform = fields.CharField(255, null=True, description="平台") """平台""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "sign_log" table_description = "用户签到记录表" diff --git a/zhenxun/models/sign_user.py b/zhenxun/models/sign_user.py index 9fb6299d..1b4e033b 100644 --- a/zhenxun/models/sign_user.py +++ b/zhenxun/models/sign_user.py @@ -32,7 +32,7 @@ class SignUser(Model): platform = fields.CharField(255, null=True, description="平台") """平台""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "sign_users" table_description = "用户签到数据表" diff --git a/zhenxun/models/statistics.py b/zhenxun/models/statistics.py index ad29cb17..812a9d6d 100644 --- a/zhenxun/models/statistics.py +++ b/zhenxun/models/statistics.py @@ -17,7 +17,7 @@ class Statistics(Model): bot_id = fields.CharField(255, null=True) """Bot Id""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "statistics" table_description = "插件调用统计数据库" diff --git a/zhenxun/models/task_info.py b/zhenxun/models/task_info.py index bcb4bb65..d80d7bac 100644 --- a/zhenxun/models/task_info.py +++ b/zhenxun/models/task_info.py @@ -21,7 +21,7 @@ class TaskInfo(Model): run_count = fields.IntField(default=0, description="运行次数") """运行次数""" - class Meta: # type: ignore + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "task_info" table_description = "被动技能基本信息" diff --git a/zhenxun/models/user_console.py b/zhenxun/models/user_console.py index b4f830d7..b590a802 100644 --- a/zhenxun/models/user_console.py +++ b/zhenxun/models/user_console.py @@ -26,7 +26,7 @@ class UserConsole(Model): create_time = fields.DatetimeField(auto_now_add=True, description="创建时间") """创建时间""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "user_console" table_description = "用户数据表" diff --git a/zhenxun/models/user_gold_log.py b/zhenxun/models/user_gold_log.py index ebcff2d1..399a0e2c 100644 --- a/zhenxun/models/user_gold_log.py +++ b/zhenxun/models/user_gold_log.py @@ -18,6 +18,6 @@ class UserGoldLog(Model): create_time = fields.DatetimeField(auto_now_add=True, description="创建时间") """创建时间""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "user_gold_log" table_description = "用户金币记录表" diff --git a/zhenxun/models/user_props.py b/zhenxun/models/user_props.py index ff9fd6fb..bcae2e63 100644 --- a/zhenxun/models/user_props.py +++ b/zhenxun/models/user_props.py @@ -15,6 +15,6 @@ class UserProps(Model): platform = fields.CharField(255, null=True) """平台""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "user_props" table_description = "用户道具表" diff --git a/zhenxun/models/user_props_log.py b/zhenxun/models/user_props_log.py index bc4f3cc4..9cae679d 100644 --- a/zhenxun/models/user_props_log.py +++ b/zhenxun/models/user_props_log.py @@ -20,6 +20,6 @@ class UserPropsLog(Model): create_time = fields.DatetimeField(auto_now_add=True, description="创建时间") """创建时间""" - class Meta: + class Meta: # pyright: ignore [reportIncompatibleVariableOverride] table = "user_props_log" table_description = "用户道具记录表" diff --git a/zhenxun/utils/_build_image.py b/zhenxun/utils/_build_image.py index ed16351c..99eccf74 100644 --- a/zhenxun/utils/_build_image.py +++ b/zhenxun/utils/_build_image.py @@ -11,6 +11,7 @@ import uuid from nonebot.utils import run_sync from PIL import Image, ImageDraw, ImageFilter, ImageFont from PIL.Image import Image as tImage +from PIL.Image import Resampling, Transpose from PIL.ImageFont import FreeTypeFont from zhenxun.configs.path_config import FONT_PATH @@ -62,7 +63,7 @@ class BuildImage: else: self.markImg = Image.open(background) if width and height: - self.markImg = self.markImg.resize((width, height), Image.LANCZOS) + self.markImg = self.markImg.resize((width, height), Resampling.LANCZOS) else: self.width = self.markImg.width self.height = self.markImg.height @@ -487,7 +488,7 @@ class BuildImage: x, y = self.markImg.size for i, k in itertools.product(range(n, x - n), range(n, y - n)): color = self.markImg.getpixel((i, k)) - color = color[:-1] + (int(100 * alpha_ratio),) + color = color[:-1] + (int(100 * alpha_ratio),) # type: ignore self.markImg.putpixel((i, k), color) self.draw = ImageDraw.Draw(self.markImg) return self @@ -623,7 +624,7 @@ class BuildImage: left, top = ((value + offset) * antialias for value in ellipse_box[:2]) right, bottom = ((value - offset) * antialias for value in ellipse_box[2:]) draw.ellipse([left, top, right, bottom], fill=fill) - mask = mask.resize(self.markImg.size, Image.LANCZOS) + mask = mask.resize(self.markImg.size, Resampling.LANCZOS) with contextlib.suppress(ValueError): self.markImg.putalpha(mask) return self @@ -685,7 +686,7 @@ class BuildImage: return self @run_sync - def transpose(self, angle: Literal[0, 1, 2, 3, 4, 5, 6]) -> Self: + def transpose(self, angle: Transpose) -> Self: """ 旋转图片(包括边框)