summaryrefslogtreecommitdiff
path: root/ATRI/plugins/manage/modules/service.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/manage/modules/service.py')
-rw-r--r--ATRI/plugins/manage/modules/service.py205
1 files changed, 205 insertions, 0 deletions
diff --git a/ATRI/plugins/manage/modules/service.py b/ATRI/plugins/manage/modules/service.py
new file mode 100644
index 0000000..8bb7e9c
--- /dev/null
+++ b/ATRI/plugins/manage/modules/service.py
@@ -0,0 +1,205 @@
+from nonebot.typing import T_State
+from nonebot.permission import SUPERUSER
+from nonebot.adapters.cqhttp.permission import GROUP_ADMIN, GROUP_OWNER
+from nonebot.adapters.cqhttp import (
+ Bot,
+ MessageEvent,
+ GroupMessageEvent,
+ PrivateMessageEvent
+)
+
+from ATRI.service import Service as sv
+
+
+__doc__ = """
+启用功能,针对单群
+权限组:维护者,群管理
+用法:
+ 启用 目标命令
+示例:
+ 启用 以图搜图
+"""
+
+cur_service_ena = sv.on_command(
+ cmd="启用功能",
+ docs=__doc__,
+ permission=SUPERUSER|GROUP_ADMIN|GROUP_OWNER
+)
+
+@cur_service_ena.args_parser # type: ignore
+async def _cur_ena_load(bot: Bot,
+ event: GroupMessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ quit_list = ['算了', '罢了', '取消']
+ if msg in quit_list:
+ await cur_service_ena.finish('好吧...')
+ if not msg:
+ await cur_service_ena.reject('请告诉咱目标命令!')
+ else:
+ state['service_e'] = msg
+
+@cur_service_ena.handle()
+async def _cur_ena(bot: Bot,
+ event: GroupMessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ if msg:
+ state['service_e'] = msg
+
+@cur_service_ena.got('service_e', prompt='请告诉咱目标命令!')
+async def _deal_cur_ena(bot: Bot,
+ event: GroupMessageEvent,
+ state: T_State) -> None:
+ cmd = state['service_e']
+ group = str(event.group_id)
+ sv.control_service(cmd, False, True, group=group)
+ await cur_service_ena.finish(f'成功!本群已启用:{cmd}')
+
+@cur_service_ena.handle()
+async def _refuse_cur_ena(bot: Bot,
+ event: PrivateMessageEvent,
+ state: T_State) -> None:
+ await cur_service_ena.finish('只能在群聊中决定哦...')
+
+
+__doc__ = """
+禁用功能,针对单群
+权限组:维护者,群管理
+用法:
+ 禁用 目标命令
+示例:
+ 禁用 以图搜图
+"""
+
+cur_service_dis = sv.on_command(
+ cmd="禁用功能",
+ docs=__doc__,
+ permission=SUPERUSER|GROUP_ADMIN|GROUP_OWNER
+)
+
+@cur_service_dis.args_parser # type: ignore
+async def _cur_dis_load(bot: Bot,
+ event: GroupMessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ quit_list = ['算了', '罢了', '取消']
+ if msg in quit_list:
+ await cur_service_dis.finish('好吧...')
+ if not msg:
+ await cur_service_dis.reject('请告诉咱目标命令!')
+ else:
+ state['service_d'] = msg
+
+@cur_service_dis.handle()
+async def _cur_dis(bot: Bot,
+ event: GroupMessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ if msg:
+ state['service_d'] = msg
+
+@cur_service_dis.got('service_d', prompt='请告诉咱目标命令!')
+async def _deal_cur_dis(bot: Bot,
+ event: GroupMessageEvent,
+ state: T_State) -> None:
+ cmd = state['service_d']
+ group = str(event.group_id)
+ sv.control_service(cmd, False, False, group=group)
+ await cur_service_dis.finish(f'成功!本群已禁用:{cmd}')
+
+@cur_service_dis.handle()
+async def _refuse_cur_dis(bot: Bot,
+ event: PrivateMessageEvent,
+ state: T_State) -> None:
+ await cur_service_dis.finish('只能在群聊中决定哦...')
+
+
+__doc__ = """
+全局启用功能
+权限组:维护者
+用法:
+ 全局启用 目标命令
+示例:
+ 全局启用 以图搜图
+"""
+
+glo_service_ena = sv.on_command(
+ cmd="全局启用",
+ docs=__doc__,
+ permission=SUPERUSER
+)
+
+@glo_service_ena.args_parser # type: ignore
+async def _glo_ena_load(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ quit_list = ['算了', '罢了', '取消']
+ if msg in quit_list:
+ await glo_service_ena.finish('好吧...')
+ if not msg:
+ await glo_service_ena.reject('请告诉咱目标命令!')
+ else:
+ state['service_e_g'] = msg
+
+@glo_service_ena.handle()
+async def _glo_ena(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ if msg:
+ state['service_e_g'] = msg
+
+@glo_service_ena.got('service_e_g', prompt='请告诉咱目标命令!')
+async def _deal_glo_ena(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ cmd = state['service_e_g']
+ sv.control_service(cmd, True, True)
+ await glo_service_ena.finish(f'成功!已全局启用:{cmd}')
+
+
+__doc__ = """
+全局禁用功能
+权限组:维护者
+用法:
+ 禁用启用 目标命令
+示例:
+ 禁用启用 以图搜图
+"""
+
+glo_service_dis = sv.on_command(
+ cmd="全局禁用",
+ docs=__doc__,
+ permission=SUPERUSER
+)
+
+@glo_service_dis.args_parser # type: ignore
+async def _glo_dis_load(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ quit_list = ['算了', '罢了', '取消']
+ if msg in quit_list:
+ await glo_service_dis.finish('好吧...')
+ if not msg:
+ await glo_service_dis.reject('请告诉咱目标命令!')
+ else:
+ state['service_d_g'] = msg
+
+@glo_service_dis.handle()
+async def _glo_dis(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ if msg:
+ state['service_d_g'] = msg
+
+@glo_service_dis.got('service_d_g', prompt='请告诉咱目标命令!')
+async def _deal_glo_dis(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ cmd = state['service_d_g']
+ sv.control_service(cmd, True, False)
+ await glo_service_dis.finish(f'成功!已全局禁用:{cmd}')