2021-05-20 19:21:05 +08:00
|
|
|
|
from nonebot import on_command
|
|
|
|
|
|
from nonebot.typing import T_State
|
2021-06-18 15:31:02 +08:00
|
|
|
|
from nonebot.adapters.cqhttp import Bot, MessageEvent, Message
|
2021-05-20 19:21:05 +08:00
|
|
|
|
from nonebot.permission import SUPERUSER
|
2021-06-18 15:31:02 +08:00
|
|
|
|
from util.utils import get_message_text, is_number, get_message_imgs
|
|
|
|
|
|
from util.init_result import image
|
2021-05-20 19:21:05 +08:00
|
|
|
|
from services.log import logger
|
|
|
|
|
|
from util.init_result import at
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__plugin_name__ = '联系管理员'
|
2021-06-15 10:57:08 +08:00
|
|
|
|
__plugin_usage__ = '用法:滴滴滴- [消息]'
|
2021-05-20 19:21:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
2021-06-18 15:31:02 +08:00
|
|
|
|
dialogue_data = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-05-20 19:21:05 +08:00
|
|
|
|
dialogue = on_command("[滴滴滴]", aliases={"滴滴滴-"}, priority=1, block=True)
|
|
|
|
|
|
reply = on_command("/t", priority=1, permission=SUPERUSER, block=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dialogue.handle()
|
2021-06-18 15:31:02 +08:00
|
|
|
|
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
2021-05-20 19:21:05 +08:00
|
|
|
|
uid = event.user_id
|
|
|
|
|
|
coffee = int(list(bot.config.superusers)[0])
|
|
|
|
|
|
text = get_message_text(event.json())
|
2021-06-18 15:31:02 +08:00
|
|
|
|
img_msg = ''
|
|
|
|
|
|
for img in get_message_imgs(event.json()):
|
|
|
|
|
|
img_msg += image(img)
|
2021-05-20 19:21:05 +08:00
|
|
|
|
if not text or text in ['帮助']:
|
|
|
|
|
|
await dialogue.send("请发送[滴滴滴]+您要说的内容~", at_sender=True)
|
|
|
|
|
|
else:
|
|
|
|
|
|
if event.get_event_name() == "message.private.friend":
|
2021-06-18 15:31:02 +08:00
|
|
|
|
group_id = 0
|
2021-05-20 19:21:05 +08:00
|
|
|
|
else:
|
|
|
|
|
|
group_id = event.group_id
|
2021-06-18 15:31:02 +08:00
|
|
|
|
await bot.send_private_msg(user_id=coffee, message=Message(f'Q{uid}@群{group_id}\n{text} {img_msg}'))
|
|
|
|
|
|
await dialogue.send(Message(f'您的话已发送至管理员!\n======\n{text}{img_msg}'), at_sender=True)
|
|
|
|
|
|
nickname = event.sender.nickname if event.sender.nickname else event.sender.card
|
|
|
|
|
|
dialogue_data[len(dialogue_data)] = {'nickname': nickname, 'user_id': event.user_id,
|
|
|
|
|
|
'group_id': group_id, 'msg': text}
|
|
|
|
|
|
# print(dialogue_data)
|
2021-05-20 19:21:05 +08:00
|
|
|
|
logger.info(f"Q{uid}@群{group_id} 联系管理员:{coffee} text:{text}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@reply.handle()
|
2021-06-18 15:31:02 +08:00
|
|
|
|
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
|
|
|
|
|
msg = get_message_text(event.json())
|
|
|
|
|
|
if msg in ['帮助']:
|
2021-06-18 21:44:52 +08:00
|
|
|
|
await reply.finish(f'/t [qq] [group] [text] -> 回复指定用户\n'
|
|
|
|
|
|
f'/t [qq] [text] -> 私聊用户\n'
|
|
|
|
|
|
f'/t -1 [group] -> 在某群发送消息\n'
|
|
|
|
|
|
f'/t [id] [text] -> 回复指定id的对话')
|
2021-06-18 15:31:02 +08:00
|
|
|
|
if not msg:
|
|
|
|
|
|
result = ''
|
|
|
|
|
|
for key in dialogue_data.keys():
|
|
|
|
|
|
result += f'{key}:{dialogue_data[key]["nickname"]}({dialogue_data[key]["user_id"]})' \
|
|
|
|
|
|
f' @群 {dialogue_data[key]["group_id"]}\n-------\n{dialogue_data[key]["msg"]}\n-------\n'
|
|
|
|
|
|
await reply.finish(result[:-1])
|
|
|
|
|
|
msg = msg.split(" ")
|
|
|
|
|
|
text = ''
|
|
|
|
|
|
group_id = 0
|
|
|
|
|
|
user_id = -1
|
|
|
|
|
|
if is_number(msg[0]):
|
|
|
|
|
|
if len(msg[0]) < 3:
|
|
|
|
|
|
msg[0] = int(msg[0])
|
|
|
|
|
|
if msg[0] >= 0:
|
|
|
|
|
|
id_ = msg[0]
|
|
|
|
|
|
user_id = dialogue_data[id_]["user_id"]
|
|
|
|
|
|
group_id = dialogue_data[id_]["group_id"]
|
|
|
|
|
|
text = msg[1]
|
2021-06-18 21:44:52 +08:00
|
|
|
|
dialogue_data.pop(id_)
|
2021-06-18 15:31:02 +08:00
|
|
|
|
else:
|
|
|
|
|
|
user_id = 0
|
|
|
|
|
|
if is_number(msg[1]):
|
|
|
|
|
|
group_id = int(msg[1])
|
|
|
|
|
|
text = msg[2]
|
|
|
|
|
|
else:
|
|
|
|
|
|
await reply.finish('群号错误...', at_sender=True)
|
|
|
|
|
|
else:
|
|
|
|
|
|
user_id = int(msg[0])
|
|
|
|
|
|
if is_number(msg[1]) and len(msg[1]) > 5:
|
|
|
|
|
|
group_id = int(msg[1])
|
|
|
|
|
|
text = msg[2]
|
|
|
|
|
|
else:
|
|
|
|
|
|
group_id = 0
|
|
|
|
|
|
text = msg[1]
|
2021-05-20 19:21:05 +08:00
|
|
|
|
else:
|
2021-06-18 15:31:02 +08:00
|
|
|
|
await reply.finish('请输入数字..', at_sender=True)
|
|
|
|
|
|
for img in get_message_imgs(event.json()):
|
|
|
|
|
|
text += image(img)
|
2021-05-20 19:21:05 +08:00
|
|
|
|
if group_id:
|
2021-06-18 15:31:02 +08:00
|
|
|
|
if user_id:
|
|
|
|
|
|
await bot.send_group_msg(group_id=group_id, message=at(user_id) + "\n管理员回复\n=======\n" + text)
|
2021-06-23 15:57:03 +08:00
|
|
|
|
await reply.finish("发送成功", at_sender=True)
|
2021-06-18 15:31:02 +08:00
|
|
|
|
else:
|
|
|
|
|
|
await bot.send_group_msg(group_id=group_id, message=text)
|
|
|
|
|
|
await reply.finish("发送成功", at_sender=True)
|
2021-05-20 19:21:05 +08:00
|
|
|
|
else:
|
|
|
|
|
|
if user_id in [qq['user_id'] for qq in await bot.get_friend_list()]:
|
|
|
|
|
|
await bot.send_private_msg(user_id=user_id, message="管理员回复\n=======\n" + text)
|
|
|
|
|
|
await reply.finish("发送成功", at_sender=True)
|
|
|
|
|
|
else:
|
|
|
|
|
|
await reply.send(f"对象不是{list(bot.config.nickname)[0]}的好友...", at_sender=True)
|