"""GIF 倒放 —— 触发器(Trigger)层。""" from __future__ import annotations from nonebot import require from nonebot.adapters.onebot.v11 import MessageEvent, Bot from nonebot.log import logger from nonebot.plugin.on import on_keyword from nonebot_plugin_alconna import UniMessage from hexi.core.message_utils import get_reply_message from ..services.gif import reverse_gif_bytes require("nonebot_plugin_alconna") re_gif = on_keyword({"倒放"}) @re_gif.handle() async def rev_gif(event: MessageEvent, bot: Bot): # 情况1,用户对需要倒放的gif进行回复 messages = get_reply_message(event) await match_revgif(messages) async def match_revgif(messages): img_urls = [] for message in messages: logger.info(f"遍历消息: {message}") if message.type != "image": continue url = message.data.get("url") if url: img_urls.append(url) if not img_urls: logger.info("消息中没有图片") return for url in img_urls: logger.info(f"获取到的图片链接:{url}") await UniMessage.text("ℹ正在翻转图片序列,请稍候").send() data, err = await reverse_gif_bytes(img_urls) if err: await UniMessage.text(err).send() return await UniMessage.image(raw=data).send()