From 067da9dc5747023e4af6ca6e39e7ed86b3d763e4 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Thu, 3 Mar 2022 00:18:59 +0800 Subject: [PATCH] update 0.1.4.3 --- README.md | 4 ++++ __version__ | 2 +- basic_plugins/hooks/task_hook.py | 14 ++++++++++++-- basic_plugins/super_cmd/bot_friend_group.py | 3 ++- plugins/fudu.py | 2 +- .../genshin/query_user/resin_remind/init_task.py | 6 ++++++ utils/manager/requests_manager.py | 7 +++++++ 7 files changed, 33 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 494ba461..a44b5638 100644 --- a/README.md +++ b/README.md @@ -236,6 +236,10 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__ ## 更新 +### 2022/3/3 \[v0.1.4.3] + +* 修复手动同意群聊请求依旧退出 + ### 2022/3/1 \[v0.1.4.2] * 0.1.4内容 diff --git a/__version__ b/__version__ index 961c4c43..b7aa5f58 100644 --- a/__version__ +++ b/__version__ @@ -1 +1 @@ -__version__: v0.1.4.2 +__version__: v0.1.4.3 \ No newline at end of file diff --git a/basic_plugins/hooks/task_hook.py b/basic_plugins/hooks/task_hook.py index cfec90db..7cd241e8 100644 --- a/basic_plugins/hooks/task_hook.py +++ b/basic_plugins/hooks/task_hook.py @@ -14,10 +14,20 @@ async def handle_api_call(bot: Bot, api: str, data: Dict[str, Any]): or api == "send_group_msg" ) and ( - (r := re.search("^\[\[_task\|(.*)]]", str(data["message"]["text"]).strip())) + ( + r := re.search( + "^\[\[_task\|(.*)]]", + data["message"].strip() + if isinstance(data["message"], str) + else str(data["message"]["text"]).strip(), + ) + ) or ( r := re.search( - "^[[_task\|(.*)]]", str(data["message"]["text"]).strip() + "^[[_task\|(.*)]]", + data["message"].strip() + if isinstance(data["message"], str) + else str(data["message"]["text"]).strip(), ) ) ) diff --git a/basic_plugins/super_cmd/bot_friend_group.py b/basic_plugins/super_cmd/bot_friend_group.py index 7ef4b00f..2e45a482 100755 --- a/basic_plugins/super_cmd/bot_friend_group.py +++ b/basic_plugins/super_cmd/bot_friend_group.py @@ -102,7 +102,7 @@ async def _(bot: Bot, cmd: Tuple[str, ...] = Command(), arg: Message = CommandAr if is_number(id_): id_ = int(id_) if cmd[:2] == "同意": - rid = await requests_manager.approve(bot, id_, "group") + rid = requests_manager.get_group_id(id_) if rid: await friend_handle.send("同意群聊请求成功..") if await GroupInfo.get_group_info(rid): @@ -116,6 +116,7 @@ async def _(bot: Bot, cmd: Tuple[str, ...] = Command(), arg: Message = CommandAr group_info["member_count"], 1 ) + await requests_manager.approve(bot, id_, "group") else: await friend_handle.send("同意群聊请求失败,可能是未找到此id的请求..") else: diff --git a/plugins/fudu.py b/plugins/fudu.py index 8b2cf090..c11963d7 100755 --- a/plugins/fudu.py +++ b/plugins/fudu.py @@ -132,4 +132,4 @@ async def get_fudu_img_hash(url, group_id): logger.warning(f"复读下载图片失败...") except Exception as e: logger.warning(f"复读读取图片Hash出错 {type(e)}:{e}") - return "" + return "" diff --git a/plugins/genshin/query_user/resin_remind/init_task.py b/plugins/genshin/query_user/resin_remind/init_task.py index a13fb834..d22dde36 100644 --- a/plugins/genshin/query_user/resin_remind/init_task.py +++ b/plugins/genshin/query_user/resin_remind/init_task.py @@ -5,6 +5,7 @@ from apscheduler.jobstores.base import ConflictingIdError from nonebot import Driver from .._models import Genshin from datetime import datetime, timedelta +from apscheduler.jobstores.base import JobLookupError from services.log import logger from nonebot.plugin import require from configs.config import Config @@ -108,6 +109,11 @@ async def _(): def add_job(user_id: int, uid: int): + # 移除 + try: + scheduler.remove_job(f"genshin_resin_remind_{uid}_{user_id}") + except JobLookupError: + pass date = datetime.now(pytz.timezone("Asia/Shanghai")) + timedelta(seconds=30) try: scheduler.add_job( diff --git a/utils/manager/requests_manager.py b/utils/manager/requests_manager.py index ac790c88..8a796ae3 100755 --- a/utils/manager/requests_manager.py +++ b/utils/manager/requests_manager.py @@ -75,6 +75,13 @@ class RequestManager(StaticData): break self.save() + def get_group_id(self, id_: int) -> Optional[int]: + """ + 通过id获取群号 + :param id_: id + """ + return self._data["group"].get(id_) + async def approve(self, bot: Bot, id_: int, type_: str) -> Optional[int]: """ 同意请求