2022-02-19 18:20:19 +08:00
|
|
|
from nonebot.adapters.onebot.v11 import Event
|
2021-10-03 14:24:07 +08:00
|
|
|
from utils.manager import group_manager, plugins2settings_manager
|
|
|
|
|
from utils.utils import get_message_text
|
|
|
|
|
from services.log import logger
|
2022-11-21 20:43:41 +08:00
|
|
|
import time
|
2021-10-03 14:24:07 +08:00
|
|
|
|
|
|
|
|
cmd = []
|
|
|
|
|
|
2022-11-21 20:43:41 +08:00
|
|
|
v = time.time()
|
|
|
|
|
|
2021-10-03 14:24:07 +08:00
|
|
|
|
2022-02-19 18:20:19 +08:00
|
|
|
def switch_rule(event: Event) -> bool:
|
2021-10-03 14:24:07 +08:00
|
|
|
"""
|
2022-11-21 20:43:41 +08:00
|
|
|
说明:
|
|
|
|
|
检测文本是否是关闭功能命令
|
|
|
|
|
参数:
|
|
|
|
|
:param event: pass
|
2021-10-03 14:24:07 +08:00
|
|
|
"""
|
2021-12-16 11:16:28 +08:00
|
|
|
global cmd
|
2021-10-03 14:24:07 +08:00
|
|
|
try:
|
2022-11-21 20:43:41 +08:00
|
|
|
if not cmd or time.time() - v > 60 * 60:
|
2021-12-16 11:16:28 +08:00
|
|
|
cmd = ["关闭全部被动", "开启全部被动", "开启全部功能", "关闭全部功能"]
|
2021-10-03 14:24:07 +08:00
|
|
|
_data = group_manager.get_task_data()
|
|
|
|
|
for key in _data:
|
|
|
|
|
cmd.append(f"开启{_data[key]}")
|
|
|
|
|
cmd.append(f"关闭{_data[key]}")
|
|
|
|
|
cmd.append(f"开启 {_data[key]}")
|
|
|
|
|
cmd.append(f"关闭 {_data[key]}")
|
|
|
|
|
_data = plugins2settings_manager.get_data()
|
2022-11-21 20:43:41 +08:00
|
|
|
for key in _data.keys():
|
2021-10-03 14:24:07 +08:00
|
|
|
try:
|
2022-11-21 20:43:41 +08:00
|
|
|
if isinstance(_data[key].cmd, list):
|
|
|
|
|
for x in _data[key].cmd:
|
2022-04-04 20:33:37 +08:00
|
|
|
cmd.append(f"开启{x}")
|
|
|
|
|
cmd.append(f"关闭{x}")
|
|
|
|
|
cmd.append(f"开启 {x}")
|
|
|
|
|
cmd.append(f"关闭 {x}")
|
|
|
|
|
else:
|
|
|
|
|
cmd.append(f"开启{key}")
|
|
|
|
|
cmd.append(f"关闭{key}")
|
|
|
|
|
cmd.append(f"开启 {key}")
|
|
|
|
|
cmd.append(f"关闭 {key}")
|
2021-10-03 14:24:07 +08:00
|
|
|
except KeyError:
|
|
|
|
|
pass
|
2022-02-21 15:59:17 +08:00
|
|
|
msg = get_message_text(event.json()).split()
|
2021-10-03 14:24:07 +08:00
|
|
|
msg = msg[0] if msg else ""
|
|
|
|
|
return msg in cmd
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logger.error(f"检测是否为功能开关命令发生错误 {type(e)}: {e}")
|
|
|
|
|
return False
|