summaryrefslogtreecommitdiff
path: root/ATRI/plugins/manage/modules/block.py
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-04-24 16:20:19 +0800
committerKyomotoi <[email protected]>2021-04-24 16:20:19 +0800
commite01b1ed882a01d03b763e9b06b8b5d0608fc5f21 (patch)
treea2226a4c1c505f66d5226a1ddae02038ad92a046 /ATRI/plugins/manage/modules/block.py
parent0678347859176671d5ff11852f339336a595e2f5 (diff)
downloadATRI-e01b1ed882a01d03b763e9b06b8b5d0608fc5f21.tar.gz
ATRI-e01b1ed882a01d03b763e9b06b8b5d0608fc5f21.tar.bz2
ATRI-e01b1ed882a01d03b763e9b06b8b5d0608fc5f21.zip
✨🔥🎨🐛♻️📝 更新
新增:开发工具中ub paste,再也不怕长消息了。 新增:错误处理两项`ReadFileError`、`FormatError` 修复:bot退群显示被自己踢出群 删除:Service部分内容 删除:hitokoto本地库,改用请求 优化:b站小程序抓取 重构:bot管理部分,对命令进行简化
Diffstat (limited to 'ATRI/plugins/manage/modules/block.py')
-rw-r--r--ATRI/plugins/manage/modules/block.py143
1 files changed, 143 insertions, 0 deletions
diff --git a/ATRI/plugins/manage/modules/block.py b/ATRI/plugins/manage/modules/block.py
new file mode 100644
index 0000000..65a6a86
--- /dev/null
+++ b/ATRI/plugins/manage/modules/block.py
@@ -0,0 +1,143 @@
+from nonebot.typing import T_State
+from nonebot.permission import SUPERUSER
+from nonebot.adapters.cqhttp import Bot, MessageEvent
+
+from ATRI.service import Service as sv
+
+
+__doc__ = """
+封禁用户
+权限组:维护者
+用法:
+ 封禁用户 QQ号
+"""
+
+block_user = sv.on_command(
+ cmd="封禁用户",
+ docs=__doc__,
+ permission=SUPERUSER
+)
+
+@block_user.args_parser # type: ignore
+async def _block_user_load(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ cancel = ['算了', '罢了']
+ if msg in cancel:
+ await block_user.finish('好吧...')
+ if not msg:
+ await block_user.reject('是谁呢?!GKD!')
+ else:
+ state['noob'] = msg
+
+@block_user.handle()
+async def _block_user(bot: Bot, event: MessageEvent, state: T_State) -> None:
+ noob = state['noob']
+ sv.BlockSystem.control_list(True, user=noob)
+ msg = f"用户[{noob}]已被封禁(;′⌒`)"
+ await block_user.finish(msg)
+
+
+__doc__ = """
+解封用户
+权限组:维护者
+用法:
+ 解封用户 QQ号
+"""
+
+unblock_user = sv.on_command(
+ cmd="解封用户",
+ docs=__doc__,
+ permission=SUPERUSER
+)
+
+@unblock_user.args_parser # type: ignore
+async def _unblock_user_load(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ cancel = ['算了', '罢了']
+ if msg in cancel:
+ await unblock_user.finish('好吧...')
+ if not msg:
+ await unblock_user.reject('要原谅谁呢...')
+ else:
+ state['forgive'] = msg
+
+@unblock_user.handle()
+async def _unblock_user(bot: Bot, event: MessageEvent, state: T_State) -> None:
+ forgive = state['forgive']
+ sv.BlockSystem.control_list(False, user=forgive)
+ msg = f"用户[{forgive}]已被解封ヾ(´・ω・`)ノ"
+ await unblock_user.finish(msg)
+
+
+__doc__ = """
+封禁群
+权限组:维护者
+用法:
+ 封禁群 群号
+"""
+
+block_group = sv.on_command(
+ cmd="封禁群",
+ docs=__doc__,
+ permission=SUPERUSER
+)
+
+@block_group.args_parser # type: ignore
+async def _block_group_load(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ cancel = ['算了', '罢了']
+ if msg in cancel:
+ await block_user.finish('好吧...')
+ if not msg:
+ await block_user.reject('是哪个群?!GKD!')
+ else:
+ state['noob_g'] = msg
+
+@block_group.handle()
+async def _block_group(bot: Bot, event: MessageEvent, state: T_State) -> None:
+ noob_g = state['noob_g']
+ sv.BlockSystem.control_list(True, group=noob_g)
+ msg = f"群[{noob_g}]已被封禁(;′⌒`)"
+ await block_user.finish(msg)
+
+
+__doc__ = """
+解封群
+权限组:维护者
+用法:
+ 解封 群号
+"""
+
+unblock_group = sv.on_command(
+ cmd="解封群",
+ docs=__doc__,
+ permission=SUPERUSER
+)
+
+@unblock_group.args_parser # type: ignore
+async def _unblock_group_load(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ msg = str(event.message).strip()
+ cancel = ['算了', '罢了']
+ if msg in cancel:
+ await block_user.finish('好吧...')
+ if not msg:
+ await block_user.reject('要原谅哪个群呢...')
+ else:
+ state['forgive_g'] = msg
+
+@unblock_group.handle()
+async def _unblock_group(bot: Bot,
+ event: MessageEvent,
+ state: T_State) -> None:
+ forgive_g = state['forgive_g']
+ sv.BlockSystem.control_list(False, group=forgive_g)
+ msg = f"群[{forgive_g}]已被解封ヾ(´・ω・`)ノ"
+ await unblock_user.finish(msg)