From 4cb350a00385b5de8523bd03dcc0d19abff67ef0 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Mon, 5 Aug 2024 20:25:02 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/models/ban_console.py | 2 -- zhenxun/models/task_info.py | 19 ++++++++++++++++--- zhenxun/plugins/parse_bilibili/__init__.py | 3 +-- zhenxun/plugins/russian/data_source.py | 6 +++++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/zhenxun/models/ban_console.py b/zhenxun/models/ban_console.py index 47fec6af..9f91438f 100644 --- a/zhenxun/models/ban_console.py +++ b/zhenxun/models/ban_console.py @@ -116,8 +116,6 @@ class BanConsole(Model): if await cls.check_ban_time(user_id, group_id): return True else: - if await cls.check_ban_time(user_id, group_id): - return True await cls.unban(user_id, group_id) return False diff --git a/zhenxun/models/task_info.py b/zhenxun/models/task_info.py index 90aa3c08..3ca1fb49 100644 --- a/zhenxun/models/task_info.py +++ b/zhenxun/models/task_info.py @@ -2,6 +2,7 @@ from tortoise import fields from zhenxun.services.db_context import Model +from .ban_console import BanConsole from .group_console import GroupConsole @@ -25,18 +26,30 @@ class TaskInfo(Model): @classmethod async def is_block(cls, module: str, group_id: str | None) -> bool: - """判断被动技能是否被禁用 + """判断被动技能是否可以发送 参数: module: 被动技能模块名 group_id: 群组id 返回: - bool: 是否被禁用 + bool: 是否可以发送 """ if task := await cls.get_or_none(module=module): + """被动全局状态""" if not task.status: return True if group_id: - return await GroupConsole.is_block_task(group_id, module) + if await GroupConsole.is_block_task(group_id, module): + """群组是否禁用被动""" + return True + if g := await GroupConsole.get_or_none( + group_id=group_id, channel_id__isnull=True + ): + """群组权限是否小于0""" + if g.level < 0: + return True + if await BanConsole.is_ban(None, group_id): + """群组是否被ban""" + return True return False diff --git a/zhenxun/plugins/parse_bilibili/__init__.py b/zhenxun/plugins/parse_bilibili/__init__.py index 9d5d4ba2..3fcd136e 100644 --- a/zhenxun/plugins/parse_bilibili/__init__.py +++ b/zhenxun/plugins/parse_bilibili/__init__.py @@ -10,7 +10,6 @@ from nonebot_plugin_session import EventSession from zhenxun.configs.path_config import TEMP_PATH from zhenxun.configs.utils import PluginExtraData, RegisterConfig, Task -from zhenxun.models.group_console import GroupConsole from zhenxun.models.task_info import TaskInfo from zhenxun.services.log import logger from zhenxun.utils.http_utils import AsyncHttpx @@ -45,7 +44,7 @@ __plugin_meta__ = PluginMetadata( async def _rule(session: EventSession) -> bool: - return not TaskInfo.is_block("bilibili_parse", session.id3 or session.id2) + return not await TaskInfo.is_block("bilibili_parse", session.id3 or session.id2) _matcher = on_message(priority=1, block=False, rule=_rule) diff --git a/zhenxun/plugins/russian/data_source.py b/zhenxun/plugins/russian/data_source.py index b25b72cf..6a6d96a4 100644 --- a/zhenxun/plugins/russian/data_source.py +++ b/zhenxun/plugins/russian/data_source.py @@ -293,7 +293,11 @@ class RussianManage: return result, settle else: """存活""" - p = (russian.bullet_index + russian.bullet_num + 1) / len(russian.bullet_arr) * 100 + p = ( + (russian.bullet_index + russian.bullet_num + 1) + / len(russian.bullet_arr) + * 100 + ) result = ( random.choice( [