mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-08 05:10:01 +08:00
update code
This commit is contained in:
@@ -2,8 +2,12 @@ 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
|
||||
import requests
|
||||
from configs.path_config import IMAGE_PATH
|
||||
import aiohttp
|
||||
import aiofiles
|
||||
import re
|
||||
|
||||
__plugin_name__ = "coser"
|
||||
|
||||
@@ -15,13 +19,31 @@ coser = on_command(
|
||||
)
|
||||
|
||||
|
||||
url_2 = "http://api.rosysun.cn/cos"
|
||||
url = "http://81.70.100.130/api/cosplay.php"
|
||||
|
||||
|
||||
@coser.handle()
|
||||
async def _(bot: Bot, event: MessageEvent, state: T_State):
|
||||
img_url = requests.get(url_2).text
|
||||
await coser.send(image(img_url))
|
||||
logger.info(
|
||||
f"(USER {event.user_id}, GROUP {event.group_id if isinstance(event, GroupMessageEvent) else 'private'}) 发送COSER"
|
||||
)
|
||||
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}')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user