diff --git a/README.md b/README.md index c7a5319f..c05420ce 100644 --- a/README.md +++ b/README.md @@ -249,7 +249,9 @@ __Docker 最新版本由 [Sakuracio](https://github.com/Sakuracio) 提供__ * 修复原神玩家查询没开地图时报错 * 最低priority修改为 999 * 修复刷屏检测失效 +* 修复刷屏检测设置命令无法生效 * 优化刷屏显示设置禁言时长显示,并改为分钟 +* 修复了多连开箱无法指定武器箱 ### 2022/5/19 diff --git a/plugins/mute.py b/plugins/mute.py index 33624ae9..2e2a970f 100755 --- a/plugins/mute.py +++ b/plugins/mute.py @@ -56,7 +56,7 @@ mute_setting = on_command( ) -def get_data() -> Dict[Any]: +def get_data() -> Dict[Any, Any]: try: with open(DATA_PATH / "group_mute_data.json", "r", encoding="utf8") as f: data = json.load(f) @@ -134,9 +134,10 @@ async def _(bot: Bot, event: GroupMessageEvent): @mute_setting.handle() async def _(event: GroupMessageEvent, cmd: Tuple[str, ...] = Command(), arg: Message = CommandArg()): + global mute_data group_id = str(event.group_id) if not mute_data.get(group_id): - mute_data[group_id] = {"count": 10, "time": 7, "duration": 0} + mute_data[group_id] = {"count": Config.get_config("mute", "MUTE_DEFAULT_COUNT"), "time": Config.get_config("mute", "MUTE_DEFAULT_TIME"), "duration": Config.get_config("mute", "MUTE_DEFAULT_DURATION")} msg = arg.extract_plain_text().strip() if cmd[0] == "刷屏检测设置": await mute_setting.finish( @@ -147,17 +148,18 @@ async def _(event: GroupMessageEvent, cmd: Tuple[str, ...] = Command(), arg: Mes ) if not is_number(msg): await mute.finish("设置的参数必须是数字啊!", at_sender=True) - if cmd[0] == "设置检测时间": + if cmd[0] == "设置刷屏检测时间": mute_data[group_id]["time"] = int(msg) msg += "秒" - if cmd[0] == "设置检测次数": + if cmd[0] == "设置刷屏检测次数": mute_data[group_id]["count"] = int(msg) msg += " 次" - if cmd[0] == "设置禁言时长": + if cmd[0] == "设置刷屏禁言时长": mute_data[group_id]["duration"] = int(msg) msg += " 分钟" await mute_setting.send(f'刷屏检测:{cmd[0]}为 {msg}') logger.info( f'USER {event.user_id} GROUP {group_id} {cmd[0]}:{msg}' ) + print(mute_data) save_data() diff --git a/plugins/open_cases/__init__.py b/plugins/open_cases/__init__.py index 39823ac4..e649751d 100755 --- a/plugins/open_cases/__init__.py +++ b/plugins/open_cases/__init__.py @@ -1,4 +1,4 @@ -from typing import Type +from typing import Type, Tuple, Any from nonebot import on_command from nonebot.matcher import Matcher from utils.utils import scheduler, is_number @@ -9,7 +9,7 @@ from nonebot.permission import SUPERUSER import random from nonebot.plugin import MatcherGroup from configs.path_config import IMAGE_PATH -from nonebot.params import CommandArg +from nonebot.params import CommandArg, RegexGroup from .open_cases_c import ( open_case, total_open_statistics, @@ -145,12 +145,12 @@ async def _(event: GroupMessageEvent): ) -open_shilian: Type[Matcher] = cases_matcher_group.on_regex("(.*)连开箱(.*?)") +open_shilian: Type[Matcher] = cases_matcher_group.on_regex("(.*)连开箱(.*)?") @open_shilian.handle() -async def _(event: GroupMessageEvent, state: T_State): - num = state["_matched_groups"][0].strip() +async def _(event: GroupMessageEvent, state: T_State, reg_group: Tuple[Any, ...] = RegexGroup()): + num, case_name = reg_group if is_number(num) or num_dict.get(num): try: num = num_dict[num] @@ -162,7 +162,6 @@ async def _(event: GroupMessageEvent, state: T_State): await open_shilian.finish("再负开箱就扣你明天开箱数了!", at_sender=True) else: await open_shilian.finish("必须要是数字切不要超过30啊笨蛋!中文也可!", at_sender=True) - case_name = state["_matched_groups"][1].strip() case_name = case_name.replace("武器箱", "").strip() if not case_name: case_name = random.choice(cases_name) diff --git a/plugins/search_image/saucenao.py b/plugins/search_image/saucenao.py index add20a49..86fb2fb9 100644 --- a/plugins/search_image/saucenao.py +++ b/plugins/search_image/saucenao.py @@ -25,7 +25,7 @@ async def get_saucenao_image(url: str) -> Union[str, List[str]]: } data = (await AsyncHttpx.post(API_URL_SAUCENAO, params=params)).json() if data["header"]["status"] != 0: - return "Saucenao识图失败.." + return f"Saucenao识图失败..status:{data['header']['status']}" data = data["results"] data = ( data diff --git a/plugins/word_bank/_rule.py b/plugins/word_bank/_rule.py index 838bc719..043289c1 100644 --- a/plugins/word_bank/_rule.py +++ b/plugins/word_bank/_rule.py @@ -14,7 +14,6 @@ async def check(bot: Bot, event: Event, state: T_State) -> bool: for img_file in list_img: strinfo = re.compile(f"{img_file},subType=\d*]") msg = strinfo.sub(f'{img_file}]', msg) - print(msg) return bool( await WordBank.check(event.group_id, msg, event.is_tome()) )