🎨 修改图片发送方式

This commit is contained in:
Wuyi无疑 2023-03-05 14:32:37 +08:00
parent 24062bf528
commit 4de48a26dd
3 changed files with 33 additions and 10 deletions

View File

@ -1,17 +1,14 @@
import asyncio import asyncio
import subprocess import subprocess
from pathlib import Path
from git.repo import Repo from git.repo import Repo
from pip._internal import main as pip_install from pip._internal import main as pip_install
CORE_PATH = Path().cwd().parent / 'gsuid_core' from .path import RUN_CORE, CORE_PATH, GSUID_PATH
GSUID_PATH = CORE_PATH / 'gsuid_core' / 'plugins' / 'GenshinUID'
GS_GIT = 'https://ghproxy.com/https://github.com/KimigaiiWuyi/GenshinUID.git' GS_GIT = 'https://ghproxy.com/https://github.com/KimigaiiWuyi/GenshinUID.git'
CORE_GIT = 'https://ghproxy.com/https://github.com/Genshin-bots/gsuid-core.git' CORE_GIT = 'https://ghproxy.com/https://github.com/Genshin-bots/gsuid-core.git'
RUN_CORE = CORE_PATH / 'gsuid_core'
async def _install(): async def _install():
if not CORE_PATH.exists(): if not CORE_PATH.exists():

View File

@ -1,5 +1,6 @@
import asyncio import asyncio
from typing import Union from base64 import b64encode
from typing import Union, Optional
import websockets.client import websockets.client
from nonebot import get_bot from nonebot import get_bot
@ -33,14 +34,14 @@ class GsClient:
logger.info(f'【接收】[gsuid-core]: {msg}') logger.info(f'【接收】[gsuid-core]: {msg}')
# 解析消息 # 解析消息
content = '' content = ''
image = '' image: Optional[bytes] = None
if msg.content: if msg.content:
for _c in msg.content: for _c in msg.content:
if _c.data: if _c.data:
if _c.type == 'text': if _c.type == 'text':
content += _c.data content += _c.data
elif _c.type == 'image': elif _c.type == 'image':
image += _c.data image = _c.data
elif _c.type and _c.type.startswith('log'): elif _c.type and _c.type.startswith('log'):
_type = _c.type.split('_')[-1].lower() _type = _c.type.split('_')[-1].lower()
getattr(logger, _type)(_c.data) getattr(logger, _type)(_c.data)
@ -49,7 +50,11 @@ class GsClient:
# 根据bot_id字段发送消息 # 根据bot_id字段发送消息
if msg.bot_id == 'onebot': if msg.bot_id == 'onebot':
result_image = f'[CQ:image,file={image}]' if image else '' result_image = (
f'[CQ:image,file=base64://{b64encode(image).decode()}]'
if image
else ''
)
result_msg = content + result_image result_msg = content + result_image
if msg.target_type == 'group': if msg.target_type == 'group':
await bot.call_api( await bot.call_api(
@ -77,13 +82,18 @@ class GsClient:
content=content, content=content,
) )
elif msg.bot_id == 'qqguild': elif msg.bot_id == 'qqguild':
result = {}
if image:
result['file_image'] = image
if content:
result['content'] = content
if msg.target_type == 'group': if msg.target_type == 'group':
await bot.call_api( await bot.call_api(
'post_messages', 'post_messages',
channel_id=int(msg.target_id) channel_id=int(msg.target_id)
if msg.target_id if msg.target_id
else 0, else 0,
content=content, **result,
) )
except ConnectionClosedError: except ConnectionClosedError:
logger.warning(f'与[gsuid-core]断开连接! Bot_ID: {BOT_ID}') logger.warning(f'与[gsuid-core]断开连接! Bot_ID: {BOT_ID}')

16
GenshinUID/path.py Normal file
View File

@ -0,0 +1,16 @@
from pathlib import Path
from nonebot import get_driver
driver = get_driver()
_CORE_PATH = Path().cwd().parent / 'gsuid_core'
CORE_PATH = (
Path(driver.config.gsuid_core_path)
if hasattr(driver.config, 'gsuid_core_path')
else _CORE_PATH
)
GSUID_PATH = CORE_PATH / 'gsuid_core' / 'plugins' / 'GenshinUID'
RUN_CORE = CORE_PATH / 'gsuid_core'