Update __init__.py

This commit is contained in:
HibiKier 2022-04-12 00:50:19 +08:00 committed by GitHub
parent 6cb4099a2e
commit 69ca02834d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,15 +1,17 @@
from nonebot.adapters.onebot.v11 import GroupMessageEvent, PrivateMessageEvent, MessageEvent, Message, Bot from typing import Tuple
from nonebot.params import CommandArg, Command
from nonebot import on_command from configs.config import NICKNAME, Config
from models.ban_user import BanUser from models.ban_user import BanUser
from models.level_user import LevelUser from models.level_user import LevelUser
from typing import Tuple from nonebot import on_command
from utils.utils import get_message_at, is_number from nonebot.adapters.onebot.v11 import (Bot, GroupMessageEvent, Message,
from configs.config import NICKNAME, Config MessageEvent, PrivateMessageEvent)
from nonebot.params import Command, CommandArg
from nonebot.permission import SUPERUSER from nonebot.permission import SUPERUSER
from .data_source import parse_ban_time, a_ban
from services.log import logger from services.log import logger
from utils.utils import get_message_at, is_number
from .data_source import a_ban, parse_ban_time
__zx_plugin_name__ = "封禁Ban用户 [Admin]" __zx_plugin_name__ = "封禁Ban用户 [Admin]"
__plugin_usage__ = """ __plugin_usage__ = """
@ -34,19 +36,19 @@ usage
示例b了 1234567 示例b了 1234567
示例.ban 12345567 示例.ban 12345567
""".strip() """.strip()
__plugin_des__ = '你被逮捕了!丢进小黑屋!' __plugin_des__ = "你被逮捕了!丢进小黑屋!"
__plugin_cmd__ = ['.ban [at] ?[小时] ?[分钟]', '.unban [at]', 'b了 [at] [_superuser]'] __plugin_cmd__ = [".ban [at] ?[小时] ?[分钟]", ".unban [at]", "b了 [at] [_superuser]"]
__plugin_version__ = 0.1 __plugin_version__ = 0.1
__plugin_author__ = 'HibiKier' __plugin_author__ = "HibiKier"
__plugin_settings__ = { __plugin_settings__ = {
"admin_level": Config.get_config("ban", "BAN_LEVEL"), "admin_level": Config.get_config("ban", "BAN_LEVEL"),
"cmd": ['.ban', '.unban', 'ban', 'unban'] "cmd": [".ban", ".unban", "ban", "unban"],
} }
__plugin_configs__ = { __plugin_configs__ = {
"BAN_LEVEL [LEVEL]": { "BAN_LEVEL [LEVEL]": {
"value": 5, "value": 5,
"help": "ban/unban所需要的管理员权限等级", "help": "ban/unban所需要的管理员权限等级",
"default_value": 5 "default_value": 5,
} }
} }
@ -58,18 +60,23 @@ ban = on_command(
block=True, block=True,
) )
super_ban = on_command('b了', permission=SUPERUSER, priority=5, block=True) super_ban = on_command("b了", permission=SUPERUSER, priority=5, block=True)
@ban.handle() @ban.handle()
async def _(bot: Bot, event: GroupMessageEvent, cmd: Tuple[str, ...] = Command(), arg: Message = CommandArg()): async def _(
bot: Bot,
event: GroupMessageEvent,
cmd: Tuple[str, ...] = Command(),
arg: Message = CommandArg(),
):
cmd = cmd[0] cmd = cmd[0]
result = "" result = ""
qq = get_message_at(event.json()) qq = get_message_at(event.json())
if qq: if qq:
qq = qq[0] qq = qq[0]
user_name = await bot.get_group_member_info(group_id=event.group_id, user_id=qq) user_name = await bot.get_group_member_info(group_id=event.group_id, user_id=qq)
user_name = user_name['card'] or user_name['nickname'] user_name = user_name["card"] or user_name["nickname"]
msg = arg.extract_plain_text().strip() msg = arg.extract_plain_text().strip()
time = parse_ban_time(msg) time = parse_ban_time(msg)
if isinstance(time, str): if isinstance(time, str):
@ -108,7 +115,12 @@ async def _(bot: Bot, event: GroupMessageEvent, cmd: Tuple[str, ...] = Command()
@ban.handle() @ban.handle()
async def _(bot: Bot, event: PrivateMessageEvent, cmd: Tuple[str, ...] = Command(), arg: Message = CommandArg()): async def _(
bot: Bot,
event: PrivateMessageEvent,
cmd: Tuple[str, ...] = Command(),
arg: Message = CommandArg(),
):
cmd = cmd[0] cmd = cmd[0]
msg = arg.extract_plain_text().strip() msg = arg.extract_plain_text().strip()
if msg: if msg:
@ -123,34 +135,36 @@ async def _(bot: Bot, event: PrivateMessageEvent, cmd: Tuple[str, ...] = Command
result = await a_ban(qq, time, str(qq), event, 9) result = await a_ban(qq, time, str(qq), event, 9)
else: else:
if await BanUser.unban(qq): if await BanUser.unban(qq):
logger.info( logger.info(f"USER {event.user_id} 将 USER {qq} 解禁")
f"USER {event.user_id} 将 USER {qq} 解禁"
)
result = f"已经把 {qq} 从黑名单中删除了!" result = f"已经把 {qq} 从黑名单中删除了!"
else: else:
result = f"{qq} 不在黑名单!" result = f"{qq} 不在黑名单!"
await ban.send(result) await ban.send(result)
else: else:
await ban.finish('qq号必须是数字\n格式:.ban [qq] [hour]? [minute]?', at_sender=True) await ban.finish(
"qq号必须是数字\n格式:.ban [qq] [hour]? [minute]?", at_sender=True
)
@super_ban.handle() @super_ban.handle()
async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()): async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()):
user_name = ""
if isinstance(event, GroupMessageEvent): if isinstance(event, GroupMessageEvent):
qq = get_message_at(event.json()) qq = get_message_at(event.json())
if qq:
qq = qq[0]
user = await bot.get_group_member_info(group_id=event.group_id, user_id=qq)
user_name = user["card"] or user["nickname"]
else: else:
qq = arg.extract_plain_text().strip() qq = arg.extract_plain_text().strip()
if not is_number(qq): if not is_number(qq):
await super_ban.finish("对象qq必须为纯数字...") await super_ban.finish("对象qq必须为纯数字...")
qq = [qq] qq = int(qq)
user_name = qq
if qq: if qq:
qq = qq[0]
user = await bot.get_group_member_info(group_id=event.group_id, user_id=qq)
user_name = user['card'] or user['nickname']
if not await BanUser.ban(qq, 10, 99999999): if not await BanUser.ban(qq, 10, 99999999):
await BanUser.unban(qq) await BanUser.unban(qq)
await BanUser.ban(qq, 10, 99999999) await BanUser.ban(qq, 10, 99999999)
await ban.send(f"已将 {user_name} 拉入黑名单!") await ban.send(f"已将 {user_name} 拉入黑名单!")
else: else:
await super_ban.send('需要添加被super ban的对象可以使用at或者指定qq..') await super_ban.send("需要添加被super ban的对象可以使用at或者指定qq..")