diff options
Diffstat (limited to 'ATRI')
-rw-r--r-- | ATRI/plugins/admin.py | 84 | ||||
-rw-r--r-- | ATRI/plugins/anime_search.py | 6 | ||||
-rw-r--r-- | ATRI/plugins/call_owner.py | 2 | ||||
-rw-r--r-- | ATRI/plugins/code_runner.py (renamed from ATRI/plugins/code-runner.py) | 2 | ||||
-rw-r--r-- | ATRI/plugins/essential.py | 6 | ||||
-rw-r--r-- | ATRI/plugins/funny.py | 37 | ||||
-rw-r--r-- | ATRI/plugins/help.py | 18 | ||||
-rw-r--r-- | ATRI/plugins/hitokoto.py | 7 | ||||
-rw-r--r-- | ATRI/plugins/nsfw.py | 2 | ||||
-rw-r--r-- | ATRI/plugins/status.py | 7 | ||||
-rw-r--r-- | ATRI/plugins/utils/__init__.py | 4 | ||||
-rw-r--r-- | ATRI/utils/translate.py | 2 |
12 files changed, 100 insertions, 77 deletions
diff --git a/ATRI/plugins/admin.py b/ATRI/plugins/admin.py index 3022723..85ed805 100644 --- a/ATRI/plugins/admin.py +++ b/ATRI/plugins/admin.py @@ -4,6 +4,7 @@ from random import randint from pathlib import Path from nonebot.permission import SUPERUSER +from nonebot.adapters.cqhttp.permission import GROUP_ADMIN, GROUP_OWNER from nonebot.adapters.cqhttp import ( Bot, MessageEvent, @@ -25,15 +26,14 @@ __doc__ = """ 好友申请处理 权限组:维护者 用法: - /fr list - /fr (y/n) reqid + /friendreq list + /friendreq (y/n) reqid 补充: reqid: 申请码 """ request_friend = sv.on_command( - cmd="friendreq", - aliases={'fr'}, + cmd="/friendreq", docs=__doc__, permission=SUPERUSER ) @@ -76,15 +76,14 @@ __doc__ = """ 群聊申请处理 权限组:维护者 用法: - /gr list - /gr (y/n) reqid + /groupreq list + /groupreq (y/n) reqid 补充: reqid: 申请码 """ request_group = sv.on_command( - cmd="groupreq", - aliases={'gr'}, + cmd="/groupreq", docs=__doc__, permission=SUPERUSER ) @@ -141,8 +140,7 @@ __doc__ = """ """ broadcast = sv.on_command( - cmd="boradcast", - aliases={'bc'}, + cmd="/bc", docs=__doc__, permission=SUPERUSER ) @@ -191,7 +189,7 @@ __doc__ = """ """ track_error = sv.on_command( - cmd="track", + cmd="/track", docs=__doc__, permission=SUPERUSER ) @@ -226,15 +224,14 @@ __doc__ = """ 获取控制台信息 权限组:维护者 用法: - /gl level line + /getlog level line 补充: level: 等级(info, warning, error, debug) line: 行数(最近20行:-20) """ get_log = sv.on_command( - cmd="getlog", - aliases={'gl'}, + cmd="/getlog", docs=__doc__, permission=SUPERUSER ) @@ -281,12 +278,11 @@ __doc__ = """ 紧急停机 权限组:维护者 用法: - /st + /down """ shutdown = sv.on_command( - cmd="shutdown", - aliases={'st'}, + cmd="/down", docs=__doc__, permission=SUPERUSER ) @@ -310,21 +306,21 @@ __doc__ = """ 懒得和你废话,block了 权限组:维护者 用法: - /b u+uid,g+gid 0,1 + /block (u,g) (int) (0,1) 补充: - uid:QQ号 - gid:QQ群号 + u:QQ + g:QQ群 + int: 对应号码 0,1:对应布尔值False, True 范围为全局 示例: - /b u114514 1 + /block u 114514 1 执行对QQ号为114514的封禁 """ block = sv.on_command( - cmd="block", - aliases={'b'}, - docs="懒得和你废话,block了\n用法:/b u,g 0,1", + cmd="/block", + docs=__doc__, permission=SUPERUSER ) @@ -355,9 +351,9 @@ __doc__ = """ 权限组:维护者,群管理 用法: 对于维护者: - /s 目标指令 u+uid,g+gid,global 0,1 + /service 目标指令 u+uid,g+gid,global 0,1 对于群管理: - /s 目标指令 0,1 + /service 目标指令 0,1 补充: user:QQ号 group:QQ群号 @@ -365,16 +361,15 @@ __doc__ = """ 0,1:对应布尔值False, True 示例: 对于维护者: - /s /status u123456789 1 + /service /status u123456789 1 对于群管理: - /s /status 1 + /service /status 1 """ service_control = sv.on_command( - cmd='service', - aliases={'s'}, + cmd='/service', docs=__doc__, - permission=SUPERUSER + permission=SUPERUSER|GROUP_OWNER|GROUP_ADMIN ) @service_control.handle() @@ -415,3 +410,30 @@ async def _service_control(bot: Bot, event: GroupMessageEvent) -> None: @service_control.handle() async def _serv(bot: Bot, event: PrivateMessageEvent) -> None: await service_control.finish("此功能仅在群聊中触发") + + +__doc__ = """ +休眠bot,不处理任何信息 +权限组:维护者 +用法: + /dormant (0,1) +补充: + 0,1: 对应布尔值(False,True) +""" + +dormant = sv.on_command( + cmd='/dormant', + docs=__doc__, + permission=SUPERUSER +) + +async def _dormant(bot: Bot, event: MessageEvent) -> None: + msg = str(event.message).strip() + if msg == "1": + sv.Dormant.control_dormant(True) + stat = "已进入休眠状态...期间咱不会回应任何人的消息哦..." + else: + sv.Dormant.control_dormant(False) + stat = "唔...回复精神力!" + await dormant.finish(stat) diff --git a/ATRI/plugins/anime_search.py b/ATRI/plugins/anime_search.py index b6686c5..e0c7c85 100644 --- a/ATRI/plugins/anime_search.py +++ b/ATRI/plugins/anime_search.py @@ -20,13 +20,13 @@ __doc__ = """ 以图搜番 权限组:所有人 用法: - /anime + 以图搜番 (pic) """ anime_search = sv.on_command( - cmd="anime", + cmd="以图搜番", docs=__doc__, - rule=is_in_service('anime') + rule=is_in_service('以图搜番') ) @anime_search.args_parser # type: ignore diff --git a/ATRI/plugins/call_owner.py b/ATRI/plugins/call_owner.py index 93cbcf8..cd79d1c 100644 --- a/ATRI/plugins/call_owner.py +++ b/ATRI/plugins/call_owner.py @@ -16,7 +16,7 @@ __doc__ = """ 给维护者留言 权限组:所有人 用法: - /来杯红茶 (msg) + 来杯红茶 (msg) """ repo = sv.on_command(cmd="来杯红茶", docs=__doc__) diff --git a/ATRI/plugins/code-runner.py b/ATRI/plugins/code_runner.py index 367a144..b8f1106 100644 --- a/ATRI/plugins/code-runner.py +++ b/ATRI/plugins/code_runner.py @@ -51,7 +51,7 @@ __doc__ = """ """ code_runner = sv.on_command( - cmd="code", + cmd="/code", docs=__doc__, rule=is_in_service('code') ) diff --git a/ATRI/plugins/essential.py b/ATRI/plugins/essential.py index 833ce01..686d87b 100644 --- a/ATRI/plugins/essential.py +++ b/ATRI/plugins/essential.py @@ -93,11 +93,13 @@ async def _check_block(matcher: Matcher, event: MessageEvent, state: T_State) -> None: user = str(event.user_id) + msg = str(event.message) if not sv.BlockSystem.auth_user(user): raise IgnoredException(f'Block user: {user}') if not sv.Dormant.is_dormant(): - raise IgnoredException('Bot has been dormant.') + if "/dormant" not in msg: + raise IgnoredException('Bot has been dormant.') if isinstance(event, GroupMessageEvent): group = str(event.group_id) @@ -266,7 +268,7 @@ async def _gro(bot: Bot, event: GroupDecreaseNoticeEvent) -> None: message=msg ) else: - await group_member_event.finish(f"{event.user_id} 离开了我们...") + await group_member_event.finish(f"阿!有人离开了我们...") # 处理群管理事件 diff --git a/ATRI/plugins/funny.py b/ATRI/plugins/funny.py index d630092..8aea8d1 100644 --- a/ATRI/plugins/funny.py +++ b/ATRI/plugins/funny.py @@ -22,18 +22,17 @@ __doc__ = """ 来句笑话 """ -get_laugh = sv.on_message(rule=is_in_service('来句笑话')) -sv.manual_reg_service('来句笑话', __doc__) +get_laugh = sv.on_command( + cmd='来句笑话', + docs=__doc__, + rule=is_in_service('来句笑话') +) @get_laugh.handle() async def _get_laugh(bot: Bot, event: MessageEvent) -> None: user_name = event.sender.nickname - msg = str(event.message) laugh_list = [] - if msg != "来句笑话": - return - FILE = Path('.') / 'ATRI' / 'data' / 'database' / 'funny' / 'laugh.txt' with open(FILE, 'r', encoding='utf-8') as r: for line in r: @@ -43,15 +42,7 @@ async def _get_laugh(bot: Bot, event: MessageEvent) -> None: await get_laugh.finish(result.replace("%name", user_name)) -__doc__ = """ -你又行了 -权限组:所有人 -用法: - (被动触发) -""" - -me_to_you = sv.on_message(rule=is_in_service('你又行了')) -sv.manual_reg_service('你又行了', __doc__) +me_to_you = sv.on_message() @me_to_you.handle() async def _me_to_you(bot: Bot, event: MessageEvent) -> None: @@ -68,8 +59,11 @@ __doc__ = """ 抽老婆 """ -roll_wife = sv.on_message(rule=is_in_service('抽老婆')) -sv.manual_reg_service('抽老婆', __doc__) +roll_wife = sv.on_command( + cmd='抽老婆', + docs=__doc__, + rule=is_in_service('抽老婆') +) @roll_wife.handle() async def _roll_wife(bot: Bot, event: GroupMessageEvent) -> None: @@ -108,18 +102,17 @@ __doc__ = """ 伪造转发 权限组:所有人 用法: - /fm qq-name-msg... + /fakemsg qq*name*msg... 补充: qq: QQ号 name: 消息中的ID msg: 对应信息 示例: - /fm 123456789*生草人*草 114514*仙贝*臭死了 + /fakemsg 123456789*生草人*草 114514*仙贝*臭死了 """ fake_msg = sv.on_command( - cmd="fakemsg", - aliases={'fm'}, + cmd="/fakemsg", docs=__doc__, rule=is_in_service('fakemsg') ) @@ -206,4 +199,4 @@ async def _eat(bot: Bot, event: MessageEvent) -> None: get_a = re.match(r"(.*?)的智商", text)[0] result = f"> {MessageSegment.at(user)}\n" + text.replace(get_a, f'{user_n}的智商') - await eat_wat.finish(Message(result))
\ No newline at end of file + await eat_wat.finish(Message(result)) diff --git a/ATRI/plugins/help.py b/ATRI/plugins/help.py index fd51024..7d01d53 100644 --- a/ATRI/plugins/help.py +++ b/ATRI/plugins/help.py @@ -14,14 +14,13 @@ __doc__ = """ 查询命令用法 权限组:所有人 用法: - /h - /h list - /h info (cmd) + /help + /help list + /help info (cmd) """ help = sv.on_command( - cmd="help", - aliases={'h', '?', '?'}, + cmd="/help", docs=__doc__, ) @@ -31,8 +30,8 @@ async def _help(bot: Bot, event: MessageEvent) -> None: if msg[0] == "": msg = ( "呀?找不到路了?\n" - "/h list 查看可用命令列表\n" - "/h info (cmd) 查看命令具体帮助\n" + "/help list 查看可用命令列表\n" + "/help info (cmd) 查看命令具体帮助\n" "项目地址:github.com/Kyomotoi/ATRI\n" "咱只能帮你这么多了qwq" ) @@ -41,10 +40,11 @@ async def _help(bot: Bot, event: MessageEvent) -> None: files = [] for _, _, i in os.walk(SERVICE_DIR): for a in i: - files.append(a.replace('.json', '')) + f = SERVICE_DIR / a + files.append(json.loads(f.read_bytes())['command']) cmds = " | ".join(map(str, files)) msg = "咱能做很多事!比如:\n" + cmds - msg0 = msg + "\n具体用法呢,/(cmd) 就好!\n没反应可能是没权限..." + msg0 = msg + "\n没反应可能是没权限...或者为探测类型...不属于可直接触发命令..." await help.finish(msg0) elif msg[0] == "info": cmd = msg[1] diff --git a/ATRI/plugins/hitokoto.py b/ATRI/plugins/hitokoto.py index eeddf2f..83469be 100644 --- a/ATRI/plugins/hitokoto.py +++ b/ATRI/plugins/hitokoto.py @@ -25,8 +25,11 @@ __doc__ = """ @:at Bot """ -hitokoto = sv.on_message(rule=is_in_service('一言') & to_bot()) -sv.manual_reg_service('一言', __doc__) +hitokoto = sv.on_command( + cmd='一言', + docs=__doc__, + rule=is_in_service('一言') +) @hitokoto.handle() async def _hitokoto(bot: Bot, event: MessageEvent) -> None: diff --git a/ATRI/plugins/nsfw.py b/ATRI/plugins/nsfw.py index ea9e3bd..fe5bf78 100644 --- a/ATRI/plugins/nsfw.py +++ b/ATRI/plugins/nsfw.py @@ -61,7 +61,7 @@ __doc__ = """ """ nsfw_reading = sv.on_command( - cmd="nsfw", + cmd="/nsfw", docs=__doc__, rule=is_in_service('nsfw') ) diff --git a/ATRI/plugins/status.py b/ATRI/plugins/status.py index 61e96fe..86ec3df 100644 --- a/ATRI/plugins/status.py +++ b/ATRI/plugins/status.py @@ -11,10 +11,13 @@ from ATRI.config import Config __doc__ = """ 测试机器人状态 +权限组:所有人 +用法: + /ping """ ping = sv.on_command( - cmd="ping", + cmd="/ping", docs="测试机器人", rule=is_in_service('ping')) @@ -31,7 +34,7 @@ __doc__ = """ """ status = sv.on_command( - cmd="status", + cmd="/status", docs=__doc__, rule=is_in_service('status') ) diff --git a/ATRI/plugins/utils/__init__.py b/ATRI/plugins/utils/__init__.py index af6d4e0..5d1860a 100644 --- a/ATRI/plugins/utils/__init__.py +++ b/ATRI/plugins/utils/__init__.py @@ -18,7 +18,7 @@ roll一下 """ roll = sv.on_command( - cmd="roll", + cmd="/roll", docs=__doc__, rule=is_in_service('roll') ) @@ -53,7 +53,7 @@ __doc__ = """ """ encrypt = sv.on_command( - cmd="enc", + cmd="/enc", docs=__doc__, rule=is_in_service('enc') ) diff --git a/ATRI/utils/translate.py b/ATRI/utils/translate.py index d1fb83c..b183a9d 100644 --- a/ATRI/utils/translate.py +++ b/ATRI/utils/translate.py @@ -29,4 +29,4 @@ def to_simple_string(s: str): else: output_str_list.append(s[i]) - return "".join(output_str_list)
\ No newline at end of file + return "".join(output_str_list) |