zhenxun_bot/plugins/one_friend/__init__.py

66 lines
2.4 KiB
Python
Raw Normal View History

2021-05-20 19:23:32 +08:00
import aiohttp
2021-06-30 19:50:55 +08:00
from utils.user_agent import get_user_agent
2021-05-20 19:23:32 +08:00
from io import BytesIO
from random import choice
from nonebot import on_regex
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
2021-06-30 19:50:55 +08:00
from utils.utils import get_message_text, get_local_proxy, get_message_at
2021-07-30 21:21:51 +08:00
from utils.message_builder import image
2021-05-20 19:23:32 +08:00
import re
2021-07-30 21:21:51 +08:00
from utils.image_utils import CreateImg
2021-05-20 19:23:32 +08:00
2021-07-30 21:21:51 +08:00
__plugin_name__ = "我有一个朋友"
2021-06-15 10:57:08 +08:00
2021-07-30 21:21:51 +08:00
__plugin_usage__ = "用法:我有一个朋友说/问 [消息] [at](不艾特则群员随机)"
2021-06-15 10:57:08 +08:00
2021-07-30 21:21:51 +08:00
one_friend = on_regex(
2021-08-17 23:17:08 +08:00
"^我.*?朋友.*?(想问问|说|让我问问|想问|让我问|想知道|让我帮他问问|让我帮他问|让我帮忙问|让我帮忙问问|问).*",
2021-07-30 21:21:51 +08:00
priority=5,
block=True,
)
2021-05-20 19:23:32 +08:00
async def get_pic(qq):
2021-07-30 21:21:51 +08:00
url = f"http://q1.qlogo.cn/g?b=qq&nk={qq}&s=100"
2021-05-20 19:23:32 +08:00
async with aiohttp.ClientSession(headers=get_user_agent()) as session:
async with session.get(url, proxy=get_local_proxy(), timeout=5) as response:
return await response.read()
@one_friend.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
msg = get_message_text(event.json())
2021-06-04 18:01:33 +08:00
qq = get_message_at(event.json())
if not qq:
2021-07-30 21:21:51 +08:00
qq = choice(
[
x["user_id"]
for x in await bot.get_group_member_list(
self_id=event.self_id, group_id=event.group_id
)
]
)
2021-08-17 23:17:08 +08:00
user_name = '朋友'
2021-06-04 18:01:33 +08:00
else:
qq = qq[0]
2021-08-17 23:17:08 +08:00
at_user = await bot.get_group_member_info(group_id=event.group_id, user_id=qq)
user_name = at_user['card'] if at_user['card'] else at_user['nickname']
2021-07-30 21:21:51 +08:00
msg = re.search(
2021-08-17 23:17:08 +08:00
r"^我.*?朋友.*?(想问问|说|让我问问|想问|让我问|想知道|让我帮他问问|让我帮他问|让我帮忙问|让我帮忙问问|问)(.*)", msg
2021-07-30 21:21:51 +08:00
)
2021-05-20 19:23:32 +08:00
msg = msg.group(2)
if not msg:
2021-07-30 21:21:51 +08:00
msg = "都不知道问什么"
msg = msg.replace("", "").replace("", "").replace("", "")
2021-06-15 16:45:48 +08:00
ava = CreateImg(100, 100, background=BytesIO(await get_pic(qq)))
ava.circle()
2021-08-17 23:17:08 +08:00
text = CreateImg(300, 30, font_size=30)
text.text((0, 0), user_name)
2021-07-30 21:21:51 +08:00
A = CreateImg(700, 150, font_size=25, color="white")
2021-06-15 16:45:48 +08:00
A.paste(ava, (30, 25), True)
A.paste(text, (150, 40))
A.text((150, 85), msg, (125, 125, 125))
await one_friend.send(image(b64=A.pic2bs4()))