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

64 lines
No EOL
2.9 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, exception
import urllib.parse
import requests
import time
import httpx
from src.clover_image.add_text_to_image import add_text_to_image
from src.clover_image.delete_file import delete_file
from src.configs.path_config import font_path,good_bad,temp_path
# good_news = on_command("喜报", rule=to_me(), priority=10, block=True, aliases={"悲报"})
# @good_news.handle()
# async def good_news_img(message: MessageEvent):
# if message.get_plaintext().startswith("/喜报"):
# content = message.get_plaintext().replace("/喜报", "").strip()
# url = "https://cdn.uuuix.com/api/v1/xbs/xb.php?"
# else:
# content = message.get_plaintext().replace("/悲报", "").strip()
# url = "https://cdn.uuuix.com/api/v1/xbs/biob.php?"
#
# params = {
# 'msg': content
# }
#
# await good_news.send("图片绘制中,请稍后~\n技术支持: JianDan大佬\nwww·uuuix·com")
#
# query = urllib.parse.urlencode(params)
# response = requests.get(url + query).json()
#
# if response['code'] != 1:
# await good_news.finish("请输入 /喜(悲)报+内容 哦。")
#
# img_url = response['url']
# try:
# await good_news.finish(MessageSegment.clover_image(img_url))
# except BaseException:
# await good_news.finish("出错啦,请重试。")
good_news = on_command("喜报", rule=to_me(), priority=10, aliases={"悲报"})
@good_news.handle()
async def function(message: MessageEvent):
value = message.get_plaintext().split(" ")
filename = ""
if len(value) < 2 or len(value) > 2:
await good_news.finish("请输入 正确的格式哦~ /喜报+内容 或者 /悲报+内容")
keyword, content = value[0], value[1]
if value[1] == "":
await good_news.finish("请输入 正确的格式哦~ /喜报+内容 或者 /悲报+内容")
if keyword == "/喜报":
filename = "good_news.png"
await add_text_to_image(image_path=good_bad + filename, output_path=temp_path + filename, content=content,
font_path=font_path + "微软雅黑.ttc", font_size=72, text_color=(255, 0, 0),text_position="center",
position="center")
await good_news.finish(MessageSegment.file_image(Path(temp_path + filename)))
elif keyword == "/悲报":
filename = "bad_news.png"
await add_text_to_image(image_path=good_bad + filename, output_path=temp_path + filename, content=content,
font_path=font_path + "微软雅黑.ttc", font_size=72, text_color=(128, 128, 128),text_position="center",
position="center")
await good_news.finish(MessageSegment.file_image(Path(temp_path+filename)))
await delete_file(temp_path + filename)