summaryrefslogtreecommitdiff
path: root/ATRI/plugins/manage/modules/block.py
blob: b439ba141ca2b4aca34588d4b6c99981715bb9d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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:
    msg = str(event.message).strip()
    if msg:
        state["noob"] = msg


@block_user.got("noob", prompt="是谁呢?!GKD!")
async def _deal_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:
    msg = str(event.message).strip()
    if msg:
        state["forgive"] = msg


@unblock_user.got("forgive", prompt="要原谅谁呢...")
async def _deal_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:
    msg = str(event.message).strip()
    if msg:
        state["noob_g"] = msg


@block_group.got("noob_g", prompt="是哪个群?!GKD!")
async def _deal_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:
    msg = str(event.message).strip()
    if msg:
        state["forgive_g"] = msg


@unblock_group.got("forgive_g", prompt="要原谅哪个群呢...")
async def _deal_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)