diff --git a/zhenxun/builtin_plugins/init/init_plugin.py b/zhenxun/builtin_plugins/init/init_plugin.py index 9023781d..b4599d77 100644 --- a/zhenxun/builtin_plugins/init/init_plugin.py +++ b/zhenxun/builtin_plugins/init/init_plugin.py @@ -93,6 +93,7 @@ async def _handle_setting( name=task.name, status=task.status, run_time=task.run_time, + default_status=task.default_status, ) ) @@ -171,6 +172,12 @@ async def _(): update_list.append(task) if create_list: await TaskInfo.bulk_create(create_list, 10) + if block := [t.module for t in create_list if not t.default_status]: + block_task = ",".join(block) + "," + if group_list := await GroupConsole.all(): + for group in group_list: + group.block_task += block_task + await GroupConsole.bulk_update(group_list, ["block_task"], 10) if update_list: await TaskInfo.bulk_update( update_list, diff --git a/zhenxun/configs/utils/__init__.py b/zhenxun/configs/utils/__init__.py index 4ba9c47c..cbec0519 100644 --- a/zhenxun/configs/utils/__init__.py +++ b/zhenxun/configs/utils/__init__.py @@ -137,6 +137,8 @@ class Task(BaseBlock): """被动技能名称""" status: bool = True """全局开关状态""" + default_status: bool = True + """初次加载默认开关状态""" run_time: str | None = None """运行时间""" diff --git a/zhenxun/models/group_console.py b/zhenxun/models/group_console.py index 835649b8..bbcdb600 100644 --- a/zhenxun/models/group_console.py +++ b/zhenxun/models/group_console.py @@ -1,7 +1,4 @@ -from typing import Any - from tortoise import fields -from tortoise.backends.base.client import BaseDBAsyncClient from typing_extensions import Self from zhenxun.services.db_context import Model @@ -43,35 +40,6 @@ class GroupConsole(Model): table_description = "群组信息表" unique_together = ("group_id", "channel_id") - # @classmethod - # async def create( # type: ignore - # cls, - # using_db: BaseDBAsyncClient | None = None, - # **kwargs: Any, - # ) -> Self: - # group, _ = await super().create(using_db, **kwargs) - # return group - - # @classmethod - # async def get_or_create( # type: ignore - # cls, - # defaults: dict | None = None, - # using_db: BaseDBAsyncClient | None = None, - # **kwargs: Any, - # ) -> tuple[Self, bool]: - # group, is_create = await super().get_or_create(defaults, using_db, **kwargs) - # return group, is_create - - # @classmethod - # async def update_or_create( # type: ignore - # cls, - # defaults: dict | None = None, - # using_db: BaseDBAsyncClient | None = None, - # **kwargs: Any, - # ) -> tuple[Self, bool]: - # group, is_create = await super().update_or_create(defaults, using_db, **kwargs) - # return group, is_create - @classmethod async def get_group( cls, group_id: str, channel_id: str | None = None diff --git a/zhenxun/models/task_info.py b/zhenxun/models/task_info.py index e6c7cd33..18cdf5c8 100644 --- a/zhenxun/models/task_info.py +++ b/zhenxun/models/task_info.py @@ -15,8 +15,8 @@ class TaskInfo(Model): """被动技能名称""" status = fields.BooleanField(default=True, description="全局开关状态") """全局开关状态""" - # default_status = fields.BooleanField(default=True, description="进群默认状态") - # """进群默认状态""" + default_status = fields.BooleanField(default=True, description="进群默认状态") + """加载默认状态""" run_time = fields.CharField(255, null=True, description="运行时间") """运行时间""" run_count = fields.IntField(default=0, description="运行次数") @@ -59,5 +59,5 @@ class TaskInfo(Model): @classmethod def _run_script(cls): return [ - # "ALTER TABLE task_info ADD default_status boolean NOT NULL DEFAULT true;", + "ALTER TABLE task_info ADD default_status boolean NOT NULL DEFAULT true;", ]