zhenxun_bot/plugins/coser/__init__.py

50 lines
1.9 KiB
Python
Raw Normal View History

2021-05-20 19:21:05 +08:00
from nonebot import on_command
from nonebot.typing import T_State
2021-07-30 21:21:51 +08:00
from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent
2021-05-20 19:21:05 +08:00
from services.log import logger
2021-09-05 02:21:38 +08:00
from asyncio.exceptions import TimeoutError
2021-07-30 21:21:51 +08:00
from utils.message_builder import image
2021-09-05 02:21:38 +08:00
from configs.path_config import IMAGE_PATH
import aiohttp
import aiofiles
import re
2021-05-20 19:21:05 +08:00
2021-07-30 21:21:51 +08:00
__plugin_name__ = "coser"
2021-06-15 10:57:08 +08:00
2021-07-30 21:21:51 +08:00
__plugin_usage__ = "用法发送coser"
2021-05-20 19:21:05 +08:00
2021-07-30 21:21:51 +08:00
coser = on_command(
"cos", aliases={"coser", "括丝", "COS", "Cos", "cOS", "coS"}, priority=5, block=True
)
2021-05-20 19:21:05 +08:00
2021-09-05 02:21:38 +08:00
url = "http://81.70.100.130/api/cosplay.php"
2021-05-20 19:21:05 +08:00
@coser.handle()
2021-07-30 21:21:51 +08:00
async def _(bot: Bot, event: MessageEvent, state: T_State):
2021-09-05 02:21:38 +08:00
async with aiohttp.ClientSession() as session:
try:
for _ in range(3):
try:
async with session.get(url, timeout=2) as response:
r = re.search(r'±img=(.*)±', await response.text())
if r:
async with session.get(r.group(1), timeout=5, verify_ssl=False) as res:
async with aiofiles.open(f'{IMAGE_PATH}/temp/{event.user_id}_coser.jpg', 'wb') as f:
await f.write(await res.read())
logger.info(
f"(USER {event.user_id}, "
f"GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'})"
f" 发送COSER"
)
await coser.send(image(f'{event.user_id}_coser.jpg', 'temp'))
break
except TimeoutError:
pass
except Exception as e:
await coser.send('发生了预料之外的错误..请稍后再试或联系管理员修复...')
logger.error(f'coser 发送了未知错误 {type(e)}{e}')