diff options
Diffstat (limited to 'ATRI/plugins/call_owner.py')
-rw-r--r-- | ATRI/plugins/call_owner.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/ATRI/plugins/call_owner.py b/ATRI/plugins/call_owner.py new file mode 100644 index 0000000..93cbcf8 --- /dev/null +++ b/ATRI/plugins/call_owner.py @@ -0,0 +1,88 @@ +from nonebot.permission import SUPERUSER +from nonebot.typing import T_State +from nonebot.adapters.cqhttp import ( + Bot, + MessageEvent +) + +from ATRI.service import Service as sv +from ATRI.config import Config +from ATRI.utils.apscheduler import scheduler +from ATRI.utils.list import count_list + + +repo_list = [] +__doc__ = """ +给维护者留言 +权限组:所有人 +用法: + /来杯红茶 (msg) +""" + +repo = sv.on_command(cmd="来杯红茶", docs=__doc__) + [email protected]_parser # type: ignore +async def _repo_load(bot: Bot, event: MessageEvent, state: T_State) -> None: + msg = str(event.message) + if msg == "算了": + await repo.finish('好吧') + + if not msg: + await repo.reject('话呢?') + else: + state['msg_repo'] = msg + +async def _repo(bot: Bot, event: MessageEvent, state: T_State) -> None: + msg = str(event.message).strip() + if msg: + state['msg_repo'] = msg + [email protected]('msg_repo', prompt="请告诉咱需要反馈的内容~!") +async def _repo_deal(bot: Bot, event: MessageEvent, state: T_State) -> None: + global repo_list + msg = state['msg_repo'] + user = event.user_id + + if count_list(repo_list, user) == 5: + await repo.finish("吾辈已经喝了五杯红茶啦!明天再来吧。") + + repo_list.append(user) + + for sup in Config.BotSelfConfig.superusers: + await bot.send_private_msg( + user_id=sup, + message=f"来自用户[{user}]反馈:\n{msg}" + ) + + await repo.finish("吾辈的心愿已由咱转告给咱的维护者了~!") + + [email protected]_job( + "cron", + hour=0, + misfire_grace_time=60 +) +async def _() -> None: + global repo_list + repo_list.clear() + + +__doc__ = """ +重置给维护者的留言次数 +权限组:维护者 +用法: + /重置红茶 +""" + +reset_repo = sv.on_command( + cmd="重置红茶", + docs=__doc__, + permission=SUPERUSER +) + +@reset_repo.handle() +async def _reset_repo(bot: Bot, event: MessageEvent) -> None: + global repo_list + repo_list.clear() + await reset_repo.finish("红茶重置完成~!") |