mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
from nonebot import on_command
|
||
from nonebot.typing import T_State
|
||
from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent
|
||
from services.log import logger
|
||
from asyncio.exceptions import TimeoutError
|
||
from utils.message_builder import image
|
||
from configs.path_config import IMAGE_PATH
|
||
import aiohttp
|
||
import aiofiles
|
||
import re
|
||
|
||
__plugin_name__ = "coser"
|
||
|
||
__plugin_usage__ = "用法:发送‘coser’"
|
||
|
||
|
||
coser = on_command(
|
||
"cos", aliases={"coser", "括丝", "COS", "Cos", "cOS", "coS"}, priority=5, block=True
|
||
)
|
||
|
||
|
||
url = "http://api520.ltd/api/cosplay.php"
|
||
|
||
|
||
@coser.handle()
|
||
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||
async with aiohttp.ClientSession() as session:
|
||
try:
|
||
for _ in range(3):
|
||
try:
|
||
async with session.get(url, timeout=2) as response:
|
||
_url = await response.text()
|
||
async with session.get(_url, timeout=5, verify_ssl=False) as res:
|
||
if res.status == 200:
|
||
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
|
||
else:
|
||
await coser.send('你cos给我看!')
|
||
except Exception as e:
|
||
await coser.send('发生了预料之外的错误..请稍后再试或联系管理员修复...')
|
||
logger.error(f'coser 发送了未知错误 {type(e)}:{e}')
|
||
|