From f03876304179a79adc3bc250363da5da92300978 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Sun, 20 Feb 2022 11:06:04 +0800 Subject: [PATCH] fix bug --- README.md | 9 ++++++++- __version__ | 2 +- basic_plugins/hooks/task_hook.py | 20 +++++++++++++++---- plugins/ai/__init__.py | 7 +++---- plugins/epic/data_source.py | 2 +- .../image_management/send_image/__init__.py | 9 ++++----- plugins/open_cases/__init__.py | 4 ++-- plugins/pix_gallery/_data_source.py | 2 +- plugins/pix_gallery/pix.py | 4 ++-- plugins/weather/__init__.py | 19 ++++++------------ update_info.json | 8 +++++--- 11 files changed, 49 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index bf703351..e9e801be 100644 --- a/README.md +++ b/README.md @@ -236,9 +236,15 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__ ## 更新 +### 2022/2/20 \[v0.1.3.1] + +* 修复pix下载临时文件目录错误 +* 修复AI,天气,发送图片ignore导致无法使用 +* 修复纯文本被动技能提醒有时无法删除控制文本 + ### 2022/2/19 \[v0.1.3] (nonebot beta2!) -* 由于nonebot升级版本,提供更新建议 +* 由于nonebot升级版本,提供更新建议(__该次升级将会导致nonebot.beta1以下的插件无法使用__ * 保证services,utils,configs,plugins,basic_plugins,文件夹均为最新 * 根目录有pyproject.toml与poetry.lock * 执行命令: @@ -248,6 +254,7 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__ * playwright install chromium * python3 bot.py + * 适配nonebot.beta2 * 删除图片搜索 nonebot_plugin_picsearcher * 新增图片搜索 search_image diff --git a/__version__ b/__version__ index acc20832..d47d2c00 100644 --- a/__version__ +++ b/__version__ @@ -1 +1 @@ -__version__: v0.1.3 +__version__: v0.1.3.1 \ No newline at end of file diff --git a/basic_plugins/hooks/task_hook.py b/basic_plugins/hooks/task_hook.py index 7f3e372f..e5b527c9 100644 --- a/basic_plugins/hooks/task_hook.py +++ b/basic_plugins/hooks/task_hook.py @@ -11,7 +11,14 @@ async def handle_api_call(bot: Bot, api: str, data: Dict[str, Any]): r = None if ( (api == "send_msg" and data["message"] == "group_id" or api == "send_group_msg") - and (r := re.search("^\[\[_task\|(.*)]]", get_message_text(data["message"]))) + and ( + r := re.search( + "^\[\[_task\|(.*)]]", + data["message"] + if isinstance(data["message"], str) + else get_message_text(data["message"]), + ) + ) and r.group(1) in group_manager.get_task_data().keys() ): task = r.group(1) @@ -19,6 +26,11 @@ async def handle_api_call(bot: Bot, api: str, data: Dict[str, Any]): if not await group_manager.check_group_task_status(group_id, task): raise MockApiException(f"被动技能 {task} 处于关闭状态...") else: - msg = str(data["message"][0]) - msg = msg.replace(f"[[_task|{task}]]", "") - data["message"][0] = MessageSegment.text(msg) + if isinstance(data["message"], str): + msg = data["message"] + msg = msg.replace(f"[[_task|{task}]]", "") + data["message"] = msg + else: + msg = str(data["message"][0]) + msg = msg.replace(f"[[_task|{task}]]", "") + data["message"][0] = MessageSegment.text(msg) diff --git a/plugins/ai/__init__.py b/plugins/ai/__init__.py index 322ee02f..17d52a4a 100755 --- a/plugins/ai/__init__.py +++ b/plugins/ai/__init__.py @@ -6,11 +6,10 @@ from nonebot.adapters.onebot.v11 import ( MessageEvent, ) from nonebot.rule import to_me -from nonebot.params import CommandArg from models.friend_user import FriendUser from models.group_member_info import GroupInfoUser from services.log import logger -from utils.utils import get_message_img +from utils.utils import get_message_img, get_message_text from .data_source import get_chat_result, hello, no_result from configs.config import NICKNAME, Config @@ -42,8 +41,8 @@ ai = on_message(rule=to_me(), priority=8) @ai.handle() -async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()): - msg = arg.extract_plain_text().strip() +async def _(bot: Bot, event: MessageEvent): + msg = get_message_text(event.json()) img = get_message_img(event.json()) if "CQ:xml" in str(event.get_message()): return diff --git a/plugins/epic/data_source.py b/plugins/epic/data_source.py index 083b4d71..e8785054 100755 --- a/plugins/epic/data_source.py +++ b/plugins/epic/data_source.py @@ -1,7 +1,7 @@ from httpx import AsyncClient from datetime import datetime from nonebot.log import logger -from nonebot.adapters.cqhttp import Bot +from nonebot.adapters.onebot.v11 import Bot from configs.config import NICKNAME diff --git a/plugins/image_management/send_image/__init__.py b/plugins/image_management/send_image/__init__.py index 32673115..58cb0b35 100755 --- a/plugins/image_management/send_image/__init__.py +++ b/plugins/image_management/send_image/__init__.py @@ -1,13 +1,12 @@ from nonebot import on_message, on_regex from configs.path_config import IMAGE_PATH from utils.message_builder import image -from utils.utils import is_number +from utils.utils import is_number, get_message_text from services.log import logger -from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent, Message +from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent from utils.utils import FreqLimiter, cn2py from configs.config import Config from utils.manager import withdraw_message_manager -from nonebot.params import CommandArg from .rule import rule import random import os @@ -58,8 +57,8 @@ _path = IMAGE_PATH / "image_management" @send_img.handle() -async def _(event: MessageEvent, arg: Message = CommandArg()): - msg = arg.extract_plain_text().strip().split() +async def _(event: MessageEvent): + msg = get_message_text(event.json()).split() gallery = msg[0] if gallery not in Config.get_config("image_management", "IMAGE_DIR_LIST"): return diff --git a/plugins/open_cases/__init__.py b/plugins/open_cases/__init__.py index 39823ac4..11874e6c 100755 --- a/plugins/open_cases/__init__.py +++ b/plugins/open_cases/__init__.py @@ -227,8 +227,8 @@ async def _(event: MessageEvent): # 重置开箱 @scheduler.scheduled_job( "cron", - hour=0, - minute=1, + hour=10, + minute=22, ) async def _(): await update_count_daily() diff --git a/plugins/pix_gallery/_data_source.py b/plugins/pix_gallery/_data_source.py index 05a803f3..05043005 100644 --- a/plugins/pix_gallery/_data_source.py +++ b/plugins/pix_gallery/_data_source.py @@ -238,7 +238,7 @@ async def get_image(img_url: str, user_id: int) -> Optional[str]: TEMP_PATH / f"pix_{user_id}_{img_url[-10:-4]}.jpg", "wb" ) as f: await f.write(response.content) - return f"pix_{user_id}_{img_url[-10:-4]}.jpg" + return TEMP_PATH / f"pix_{user_id}_{img_url[-10:-4]}.jpg" except TimeoutError: logger.warning(f"PIX:{img_url} 图片下载超时...") pass diff --git a/plugins/pix_gallery/pix.py b/plugins/pix_gallery/pix.py index 1e3a8ebf..721f4771 100755 --- a/plugins/pix_gallery/pix.py +++ b/plugins/pix_gallery/pix.py @@ -149,11 +149,11 @@ async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()): f"title:{title}\n" f"author:{author}\n" f"PID:{pid}\nUID:{uid}\n" - f"{image(_img, 'temp')}" + f"{image(_img)}" ) ) else: - msg_id = await pix.send(image(_img, 'temp')) + msg_id = await pix.send(image(_img)) logger.info( f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})" f" 查看PIX图库PID: {pid}" diff --git a/plugins/weather/__init__.py b/plugins/weather/__init__.py index aad24dd3..27bfb686 100755 --- a/plugins/weather/__init__.py +++ b/plugins/weather/__init__.py @@ -1,10 +1,10 @@ from nonebot import on_regex from .data_source import get_weather_of_city, get_city_list -from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent, Message +from nonebot.adapters.onebot.v11 import MessageEvent, GroupMessageEvent from jieba import posseg from services.log import logger -from nonebot.params import CommandArg -import re +from nonebot.params import RegexGroup +from typing import Tuple, Any __zx_plugin_name__ = "天气查询" @@ -27,19 +27,12 @@ __plugin_settings__ = { } -weather = on_regex(r".{0,10}市?的?天气.{0,10}", priority=5, block=True) +weather = on_regex(r".{0,10}?(.*)的?天气.*?.{0,10}", priority=5, block=True) @weather.handle() -async def _(event: MessageEvent, arg: Message = CommandArg()): - msg = arg.extract_plain_text().strip() - msg1 = re.search(r".*?(.*)市?的?天气.*?", msg) - msg2 = re.search(r".*?天气(.*).*?", msg) - msg1 = msg1.group(1) - msg2 = msg2.group(1) - msg = msg1 if msg1 else msg2 - if msg[-1] == "的": - msg = msg[:-1] +async def _(event: MessageEvent, reg_group: Tuple[Any, ...] = RegexGroup()): + msg = reg_group[0] if msg[-1] != "市": msg += "市" city = "" diff --git a/update_info.json b/update_info.json index 5d340574..84cf81af 100644 --- a/update_info.json +++ b/update_info.json @@ -7,8 +7,10 @@ "basic_plugins", "configs/path_config.py", "configs/utils", - "bot.py" + "bot.py", + "poetry.lock", + "pyproject.toml" ], - "add_file": ["poetry.lock", "pyproject.toml"], + "add_file": [], "delete_file": [] -} +} \ No newline at end of file