SanYeCao-Nonebot/src/plugins/touch.py
SlyAimer 183d632747 feat(plugins): 添加绝对色感游戏并优化图片处理
- 新增绝对色感游戏插件,包含颜色生成和猜测逻辑
- 重构部分插件,使用异步函数处理网络请求和图片生成
- 优化图片下载和删除操作,提高代码复用性- 更新命令列表和菜单显示,增加新功能入口

(cherry picked from commit 7eb40ad582)
2025-02-28 14:26:01 +08:00

29 lines
1.2 KiB
Python

from pathlib import Path
from nonebot.rule import to_me
from nonebot.plugin import on_command
from nonebot.adapters.qq import Message, MessageEvent, MessageSegment
from src.clover_sqlite.models.touch import QrTouch, QrTouchLog
from src.clover_image.qq_image import download_qq_image_by_account
from src.clover_image.delete_file import delete_file
from src.clover_image.rua import rua
to = on_command("摸摸头", rule=to_me(), priority=10)
@to.handle()
async def handle_touch(message: MessageEvent):
member_openid = message.get_user_id()
num = await QrTouchLog.touch_count(member_openid)
if num > 10:
await to.finish("你今天已经摸了太多次了,请明天再吧!")
q = QrTouch()
q.touch_status = 1
if num > 5:
result = await QrTouch.touch(1)
else:
result = await QrTouch.touch(0)
q.reply_touch_content = result.reply_touch_content
await QrTouchLog.insert_touch_log(q, member_openid)
local_gif = rua(download_qq_image_by_account(None)).add_gif()
msg = Message([MessageSegment.file_image(Path(local_gif)),
MessageSegment.text(result.reply_touch_content),])
await delete_file(local_gif)
await to.finish(msg)