🎨 统一发送格式

This commit is contained in:
HibiKier
2024-08-10 02:25:04 +08:00
parent 5e4de123b0
commit e0a3fe526e
61 changed files with 758 additions and 665 deletions
+10 -9
View File
@@ -1,15 +1,16 @@
from pathlib import Path
from nonebot.adapters import Bot
from nonebot.plugin import PluginMetadata
from nonebot_plugin_alconna import Alconna, Args, Arparma
from nonebot_plugin_alconna import Image as alcImg
from nonebot_plugin_alconna import Match, on_alconna
from nonebot_plugin_saa import Image, Text
from nonebot_plugin_session import EventSession
from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.services.log import logger
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
from zhenxun.utils.utils import template2forward
from .saucenao import get_saucenao_image
@@ -48,7 +49,7 @@ _matcher = on_alconna(
)
async def get_image_info(mod: str, url: str) -> str | list[Image | Text] | None:
async def get_image_info(mod: str, url: str) -> str | list[str | Path] | None:
if mod == "saucenao":
return await get_saucenao_image(url)
@@ -73,21 +74,21 @@ async def _(
):
gid = session.id3 or session.id2
if not image.url:
await Text("图片url为空...").finish()
await Text("开始处理图片...").send()
await MessageUtils.build_message("图片url为空...").finish()
await MessageUtils.build_message("开始处理图片...").send()
info_list = await get_image_info(mode, image.url)
if isinstance(info_list, str):
await Text(info_list).finish(at_sender=True)
await MessageUtils.build_message(info_list).finish(at_sender=True)
if not info_list:
await Text("未查询到...").finish()
await MessageUtils.build_message("未查询到...").finish()
platform = PlatformUtils.get_platform(bot)
if "qq" == platform and gid:
forward = template2forward(info_list, bot.self_id) # type: ignore
forward = MessageUtils.template2forward(info_list[1:], bot.self_id) # type: ignore
await bot.send_group_forward_msg(
group_id=int(gid),
messages=forward, # type: ignore
)
else:
for info in info_list[1:]:
await info.send()
await MessageUtils.build_message(info).send()
logger.info(f" 识图: {image.url}", arparma.header_result, session=session)
+4 -5
View File
@@ -1,6 +1,5 @@
import random
from nonebot_plugin_saa import Image, Text
from pathlib import Path
from zhenxun.configs.config import Config
from zhenxun.configs.path_config import TEMP_PATH
@@ -12,7 +11,7 @@ API_URL_ASCII2D = "https://ascii2d.net/search/url/"
API_URL_IQDB = "https://iqdb.org/"
async def get_saucenao_image(url: str) -> str | list[Image | Text]:
async def get_saucenao_image(url: str) -> str | list[str | Path]:
"""获取图片源
参数:
@@ -44,7 +43,7 @@ async def get_saucenao_image(url: str) -> str | list[Image | Text]:
msg_list = []
index = random.randint(0, 10000)
if await AsyncHttpx.download_file(url, TEMP_PATH / f"saucenao_search_{index}.jpg"):
msg_list.append(Image(TEMP_PATH / f"saucenao_search_{index}.jpg"))
msg_list.append(TEMP_PATH / f"saucenao_search_{index}.jpg")
for info in data:
try:
similarity = info["header"]["similarity"]
@@ -57,7 +56,7 @@ async def get_saucenao_image(url: str) -> str | list[Image | Text]:
tmp += f'source:{info["data"]["ext_urls"][0]}\n'
except KeyError:
tmp += f'source:{info["header"]["thumbnail"]}\n'
msg_list.append(Text(tmp[:-1]))
msg_list.append(tmp[:-1])
except Exception as e:
logger.warning(f"识图获取图片信息发生错误", e=e)
return msg_list