mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-06-04 22:49:47 +08:00
格式化提交
This commit is contained in:
parent
5ca303c2f9
commit
47a9595785
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/.idea/
|
@ -49,8 +49,9 @@ else
|
|||||||
|
|
||||||
- [PaimonBot](https://github.com/XiaoMiku01/PaimonBot) - 插件原始代码来自于它
|
- [PaimonBot](https://github.com/XiaoMiku01/PaimonBot) - 插件原始代码来自于它
|
||||||
- [YuanShen_User_Info](https://github.com/Womsxd/YuanShen_User_Info) - 米游社API来自于它
|
- [YuanShen_User_Info](https://github.com/Womsxd/YuanShen_User_Info) - 米游社API来自于它
|
||||||
- [MiniGG](https://www.minigg.cn/)* - Wiki API来自于它
|
- *[MiniGG](https://www.minigg.cn/)* - Wiki API来自于它
|
||||||
- [@MingxuanGame](https://github.com/MingxuanGame) - 移植Nonebot2至[nonebot2-beta1](https://github.com/KimigaiiWuyi/GenshinUID/tree/nonebot2-beta1)
|
- [@MingxuanGame](https://github.com/MingxuanGame) -
|
||||||
|
移植Nonebot2至[nonebot2-beta1](https://github.com/KimigaiiWuyi/GenshinUID/tree/nonebot2-beta1)
|
||||||
- [@AMEKENN](https://github.com/AMEKENN) - 米游社签到部分的代码指导
|
- [@AMEKENN](https://github.com/AMEKENN) - 米游社签到部分的代码指导
|
||||||
- [@lgc233](https://github.com/lgc2333) - 众多优秀PR贡献
|
- [@lgc233](https://github.com/lgc2333) - 众多优秀PR贡献
|
||||||
- [@RemKeeper](https://github.com/RemKeeper) - 简易Cookies获取文档
|
- [@RemKeeper](https://github.com/RemKeeper) - 简易Cookies获取文档
|
||||||
|
584
__init__.py
584
__init__.py
@ -1,109 +1,136 @@
|
|||||||
from .getDB import (CheckDB, OpenPush, connectDB, deletecache, selectDB, get_alots, config_check)
|
|
||||||
from .getImg import (draw_abyss0_pic, draw_abyss_pic, draw_event_pic, draw_pic, draw_wordcloud)
|
|
||||||
from .getMes import (foods_wiki, artifacts_wiki, enemies_wiki, sign, daily, weapon_wiki, char_wiki, audio_wiki, award, deal_ck)
|
|
||||||
|
|
||||||
from nonebot import *
|
|
||||||
from hoshino import Service,R,priv,util
|
|
||||||
from hoshino.typing import MessageSegment,CQEvent, HoshinoBot
|
|
||||||
|
|
||||||
import hoshino
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import sqlite3,random,traceback,os,re
|
|
||||||
import base64
|
import base64
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
from aiocqhttp.exceptions import ActionFailed
|
||||||
|
from hoshino import Service
|
||||||
|
from hoshino.typing import CQEvent, HoshinoBot
|
||||||
|
from nonebot import get_bot, logger
|
||||||
|
|
||||||
|
from .get_data import *
|
||||||
|
from .get_image import *
|
||||||
|
from .get_mihoyo_bbs_data import *
|
||||||
|
|
||||||
sv = Service('genshinuid')
|
sv = Service('genshinuid')
|
||||||
bot = get_bot()
|
hoshino_bot = get_bot()
|
||||||
|
|
||||||
|
FILE_PATH = os.path.join(os.path.dirname(__file__), 'mys')
|
||||||
|
INDEX_PATH = os.path.join(FILE_PATH, 'index')
|
||||||
|
Texture_PATH = os.path.join(FILE_PATH, 'texture2d')
|
||||||
|
|
||||||
FILE_PATH = os.path.dirname(__file__)
|
|
||||||
FILE2_PATH = os.path.join(FILE_PATH,'mys')
|
|
||||||
INDEX_PATH = os.path.join(FILE2_PATH, 'index')
|
|
||||||
Texture_PATH = os.path.join(FILE2_PATH,'texture2d')
|
|
||||||
|
|
||||||
@sv.on_prefix('语音')
|
@sv.on_prefix('语音')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_audio(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
message = message.replace(' ', "")
|
message = message.replace(' ', "")
|
||||||
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
im = await audio_wiki(name, message)
|
im = await audio_wiki(name, message)
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
logger.exception("获取语音失败")
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
|
||||||
|
|
||||||
@sv.on_fullmatch('活动列表')
|
@sv.on_fullmatch('活动列表')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_polar(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
img_path = os.path.join(FILE2_PATH,"event.jpg")
|
img_path = os.path.join(FILE_PATH, "event.jpg")
|
||||||
while(1):
|
while 1:
|
||||||
if os.path.exists(img_path):
|
if os.path.exists(img_path):
|
||||||
f = open(img_path, 'rb')
|
f = open(img_path, 'rb')
|
||||||
ls_f = base64.b64encode(f.read()).decode()
|
ls_f = base64.b64encode(f.read()).decode()
|
||||||
imgmes = 'base64://' + ls_f
|
img_mihoyo_bbs = 'base64://' + ls_f
|
||||||
f.close()
|
f.close()
|
||||||
im = f"[CQ:image,file={imgmes}]"
|
im = f"[CQ:image,file={img_mihoyo_bbs}]"
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
await draw_event_pic()
|
await draw_event_pic()
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送活动列表失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取活动列表错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_fullmatch('御神签')
|
@sv.on_fullmatch('御神签')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_lots(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
qid = ev.sender["user_id"]
|
qid = ev.sender["user_id"]
|
||||||
raw_data = await get_alots(qid)
|
raw_data = await get_a_lots(qid)
|
||||||
im = base64.b64decode(raw_data).decode("utf-8")
|
im = base64.b64decode(raw_data).decode("utf-8")
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送御神签失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取御神签错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('材料')
|
@sv.on_prefix('材料')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_cost(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
message = message.replace(' ', "")
|
message = message.replace(' ', "")
|
||||||
im = await char_wiki(message, "costs")
|
im = await char_wiki(message, "costs")
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送材料信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取材料信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('原魔')
|
@sv.on_prefix('原魔')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_enemies(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
im = await enemies_wiki(message)
|
im = await enemies_wiki(message)
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送怪物信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取怪物信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('食物')
|
@sv.on_prefix('食物')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_food(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
im = await foods_wiki(message)
|
im = await foods_wiki(message)
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送食物信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取食物信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('圣遗物')
|
@sv.on_prefix('圣遗物')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_artifacts(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
im = await artifacts_wiki(message)
|
im = await artifacts_wiki(message)
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送圣遗物信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取圣遗物信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('天赋')
|
@sv.on_prefix('天赋')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_talents(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
@ -113,12 +140,16 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = "参数不正确。"
|
im = "参数不正确。"
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送天赋信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取天赋信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('武器')
|
@sv.on_prefix('武器')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_weapon(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
name = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
@ -128,12 +159,16 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await weapon_wiki(name)
|
im = await weapon_wiki(name)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送武器信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取武器信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('角色')
|
@sv.on_prefix('角色')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_char(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
message = message.replace(' ', "")
|
message = message.replace(' ', "")
|
||||||
@ -144,12 +179,16 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await char_wiki(name)
|
im = await char_wiki(name)
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送角色信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取角色信息错误")
|
||||||
|
|
||||||
|
|
||||||
@sv.on_prefix('命座')
|
@sv.on_prefix('命座')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_polar(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
num = int(re.findall(r"\d+", message)[0]) # str
|
num = int(re.findall(r"\d+", message)[0]) # str
|
||||||
@ -159,36 +198,61 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await char_wiki(m, "constellations", num)
|
im = await char_wiki(m, "constellations", num)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送命座信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("获取命座信息错误")
|
||||||
|
|
||||||
|
|
||||||
# 每日零点清空cookies使用缓存
|
# 每日零点清空cookies使用缓存
|
||||||
@sv.scheduled_job('cron', hour='0')
|
@sv.scheduled_job('cron', hour='0')
|
||||||
async def delete():
|
async def clean_cache():
|
||||||
await deletecache()
|
await delete_cache()
|
||||||
|
|
||||||
|
|
||||||
@sv.scheduled_job('cron', hour='2')
|
@sv.scheduled_job('cron', hour='2')
|
||||||
async def delete():
|
async def draw_event():
|
||||||
await draw_event_pic()
|
await draw_event_pic()
|
||||||
|
|
||||||
|
|
||||||
@sv.on_fullmatch('全部重签')
|
@sv.on_fullmatch('全部重签')
|
||||||
async def _(bot: HoshinoBot, ev: CQEvent):
|
async def _(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
if ev.user_id not in bot.config.SUPERUSERS:
|
if ev.user_id not in bot.config.SUPERUSERS:
|
||||||
return
|
return
|
||||||
await bot.send(ev, "已开始执行")
|
await bot.send(ev, "已开始执行")
|
||||||
await dailysign()
|
await daily_sign()
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
|
||||||
|
|
||||||
|
# 每隔半小时检测树脂是否超过设定值
|
||||||
|
@sv.scheduled_job('cron', minute="*/30")
|
||||||
|
async def push():
|
||||||
|
daily_data = await daily()
|
||||||
|
if daily_data is not None:
|
||||||
|
for i in daily_data:
|
||||||
|
if i['gid'] == "on":
|
||||||
|
await hoshino_bot.send_private_msg(user_id=i['qid'], message=i['message'])
|
||||||
|
else:
|
||||||
|
await hoshino_bot.send_group_msg(group_id=i['gid'], message=f"[CQ:at,qq={i['qid']}]"
|
||||||
|
+ "\n" + i['message'])
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
# 每日零点半进行米游社签到
|
# 每日零点半进行米游社签到
|
||||||
@sv.scheduled_job('cron', hour='0', minute="30")
|
@sv.scheduled_job('cron', hour='0', minute="30")
|
||||||
async def dailysign():
|
async def daily_sign_schedule():
|
||||||
await dailysign()
|
await daily_sign()
|
||||||
|
|
||||||
async def dailysign():
|
|
||||||
|
async def daily_sign():
|
||||||
conn = sqlite3.connect('ID_DATA.db')
|
conn = sqlite3.connect('ID_DATA.db')
|
||||||
c = conn.cursor()
|
c = conn.cursor()
|
||||||
cursor = c.execute(
|
cursor = c.execute(
|
||||||
@ -199,10 +263,9 @@ async def dailysign():
|
|||||||
im = await sign(str(row[0]))
|
im = await sign(str(row[0]))
|
||||||
if row[4] == "on":
|
if row[4] == "on":
|
||||||
try:
|
try:
|
||||||
await bot.send_private_msg(user_id = row[2],message = im)
|
await hoshino_bot.send_private_msg(user_id=row[2], message=im)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
logger.exception(f"{im} Error")
|
||||||
print(im + "\nerror")
|
|
||||||
else:
|
else:
|
||||||
message = f"[CQ:at,qq={row[2]}]\n{im}"
|
message = f"[CQ:at,qq={row[2]}]\n{im}"
|
||||||
if await config_check("SignReportSimple"):
|
if await config_check("SignReportSimple"):
|
||||||
@ -232,37 +295,25 @@ async def dailysign():
|
|||||||
for i in temp_list:
|
for i in temp_list:
|
||||||
try:
|
try:
|
||||||
report = "以下为签到失败报告:{}".format(i["push_message"]) if i["push_message"] != "" else ""
|
report = "以下为签到失败报告:{}".format(i["push_message"]) if i["push_message"] != "" else ""
|
||||||
await bot.send_group_msg(group_id = i["push_group"],message = "今日自动签到已完成!\n本群共签到成功{}人,共签到失败{}人。{}".format(i["success"],i["failed"],report))
|
await hoshino_bot.send_group_msg(group_id=i["push_group"],
|
||||||
|
message="今日自动签到已完成!\n本群共签到成功{}人,"
|
||||||
|
"共签到失败{}人。{}".format(i["success"], i["failed"], report))
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
logger.exception("签到报告发送失败:{}".format(i["push_message"]))
|
||||||
print(i["push_message"])
|
|
||||||
await asyncio.sleep(4 + random.randint(1, 3))
|
await asyncio.sleep(4 + random.randint(1, 3))
|
||||||
else:
|
else:
|
||||||
for i in temp_list:
|
for i in temp_list:
|
||||||
try:
|
try:
|
||||||
await bot.send_group_msg(group_id = i["push_group"],message = i["push_message"])
|
await hoshino_bot.send_group_msg(group_id=i["push_group"], message=i["push_message"])
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
logger.exception("签到报告发送失败:{}".format(i["push_message"]))
|
||||||
print(i["push_message"])
|
|
||||||
await asyncio.sleep(4 + random.randint(1, 3))
|
await asyncio.sleep(4 + random.randint(1, 3))
|
||||||
conn.close()
|
conn.close()
|
||||||
return
|
return
|
||||||
|
|
||||||
#每隔半小时检测树脂是否超过设定值
|
|
||||||
@sv.scheduled_job('interval', hours = 1)
|
|
||||||
async def push():
|
|
||||||
daily_data = await daily()
|
|
||||||
if daily_data != None:
|
|
||||||
for i in daily_data:
|
|
||||||
if i['gid'] == "on":
|
|
||||||
await bot.send_private_msg(user_id = i['qid'],message = i['message'])
|
|
||||||
else:
|
|
||||||
await bot.send_group_msg(group_id = i['gid'],message = f"[CQ:at,qq={i['qid']}]" + "\n" + i['message'])
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# 私聊事件
|
# 私聊事件
|
||||||
@bot.on_message('private')
|
@hoshino_bot.on_message('private')
|
||||||
async def setting(ctx):
|
async def setting(ctx):
|
||||||
message = ctx['raw_message']
|
message = ctx['raw_message']
|
||||||
sid = int(ctx["self_id"])
|
sid = int(ctx["self_id"])
|
||||||
@ -272,85 +323,113 @@ async def setting(ctx):
|
|||||||
try:
|
try:
|
||||||
mes = message.replace('添加 ', '')
|
mes = message.replace('添加 ', '')
|
||||||
await deal_ck(mes, userid)
|
await deal_ck(mes, userid)
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=f'添加Cookies成功!\nCookies属于个人重要信息,如果你是在不知情的情况下添加,请马上修改米游社账户密码,保护个人隐私!\n————\n如果需要【开启自动签到】和【开启推送】还需要使用命令“绑定uid”绑定你的uid。\n例如:绑定uid123456789。')
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
|
message=f'添加Cookies成功!\nCookies属于个人重要信息,如果你是在不知情的情况下添加,'
|
||||||
|
f'请马上修改米游社账户密码,保护个人隐私!\n————\n'
|
||||||
|
f'如果需要【开启自动签到】和【开启推送】还需要使用命令“绑定uid”绑定你的uid。\n'
|
||||||
|
f'例如:绑定uid123456789。')
|
||||||
|
except ActionFailed as e:
|
||||||
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
|
message="机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送Cookie校验信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message='校验失败!请输入正确的Cookies!\n错误信息为{}'.format(e))
|
message='校验失败!请输入正确的Cookies!\n错误信息为{}'.format(e))
|
||||||
|
logger.exception("Cookie校验失败")
|
||||||
elif '开启推送' in message:
|
elif '开启推送' in message:
|
||||||
try:
|
try:
|
||||||
uid = await selectDB(userid,mode = "uid")
|
uid = await select_db(userid, mode="uid")
|
||||||
im = await OpenPush(int(uid[0]),userid,"on","StatusA")
|
im = await open_push(int(uid[0]), userid, "on", "StatusA")
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
message="机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("私聊)发送开启推送信息失败")
|
||||||
|
except Exception:
|
||||||
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
||||||
|
logger.exception("开启推送失败")
|
||||||
elif '关闭推送' in message:
|
elif '关闭推送' in message:
|
||||||
try:
|
try:
|
||||||
uid = await selectDB(userid,mode = "uid")
|
uid = await select_db(userid, mode="uid")
|
||||||
im = await OpenPush(int(uid[0]),userid,"off","StatusA")
|
im = await open_push(int(uid[0]), userid, "off", "StatusA")
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
message="机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("私聊)发送关闭推送信息失败")
|
||||||
|
except Exception:
|
||||||
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
||||||
|
logger.exception("关闭推送失败")
|
||||||
elif '开启自动签到' in message:
|
elif '开启自动签到' in message:
|
||||||
try:
|
try:
|
||||||
uid = await selectDB(userid,mode = "uid")
|
uid = await select_db(userid, mode="uid")
|
||||||
im = await OpenPush(int(uid[0]),userid,"on","StatusB")
|
im = await open_push(int(uid[0]), userid, "on", "StatusB")
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
|
message="机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("私聊)发送开启自动签到信息失败")
|
||||||
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
||||||
|
logger.exception("开启自动签到失败")
|
||||||
elif '关闭自动签到' in message:
|
elif '关闭自动签到' in message:
|
||||||
try:
|
try:
|
||||||
uid = await selectDB(userid,mode = "uid")
|
uid = await select_db(userid, mode="uid")
|
||||||
im = await OpenPush(int(uid[0]),userid,"off","StatusA")
|
im = await open_push(int(uid[0]), userid, "off", "StatusA")
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message=im)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid,
|
||||||
|
message="机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("私聊)发送关闭自动签到信息失败")
|
||||||
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
await bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
await hoshino_bot.send_msg(self_id=sid, user_id=userid, group_id=gid, message="未找到uid绑定记录。")
|
||||||
|
logger.exception("关闭自动签到失败")
|
||||||
|
|
||||||
|
|
||||||
# 群聊开启 自动签到 和 推送树脂提醒 功能
|
# 群聊开启 自动签到 和 推送树脂提醒 功能
|
||||||
@sv.on_prefix('开启')
|
@sv.on_prefix('开启')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def open_switch_func(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
|
|
||||||
qid = ev.sender["user_id"]
|
qid = ev.sender["user_id"]
|
||||||
at = re.search(r"\[CQ:at,qq=(\d*)\]", message)
|
at = re.search(r"\[CQ:at,qq=(\d*)]", message)
|
||||||
|
|
||||||
if m == "自动签到":
|
if m == "自动签到":
|
||||||
try:
|
try:
|
||||||
if at and qid in bot.config.SUPERUSERS:
|
if at:
|
||||||
qid = at.group(1)
|
if at and at.group(1) != qid:
|
||||||
elif at and at.group(1) != qid:
|
|
||||||
await bot.send(ev, "你没有权限。", at_sender=True)
|
await bot.send(ev, "你没有权限。", at_sender=True)
|
||||||
return
|
return
|
||||||
else:
|
|
||||||
pass
|
|
||||||
gid = ev.group_id
|
gid = ev.group_id
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
im = await OpenPush(int(uid[0]),ev.sender['user_id'],str(gid),"StatusB")
|
im = await open_push(int(uid[0]), ev.sender['user_id'], str(gid), "StatusB")
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送开启自动签到信息失败")
|
||||||
|
except Exception:
|
||||||
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
||||||
|
logger.exception("开启自动签到失败")
|
||||||
elif m == "推送":
|
elif m == "推送":
|
||||||
try:
|
try:
|
||||||
if at and qid in bot.config.SUPERUSERS:
|
if at:
|
||||||
qid = at.group(1)
|
if at and at.group(1) != qid:
|
||||||
elif at and at.group(1) != qid:
|
|
||||||
await bot.send(ev, "你没有权限。", at_sender=True)
|
await bot.send(ev, "你没有权限。", at_sender=True)
|
||||||
return
|
return
|
||||||
else:
|
|
||||||
pass
|
|
||||||
gid = ev.group_id
|
gid = ev.group_id
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
im = await OpenPush(int(uid[0]),ev.sender['user_id'],str(gid),"StatusA")
|
im = await open_push(int(uid[0]), ev.sender['user_id'], str(gid), "StatusA")
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送开启推送信息失败")
|
||||||
|
except Exception:
|
||||||
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
||||||
|
logger.exception("开启推送失败")
|
||||||
elif m == "简洁签到报告":
|
elif m == "简洁签到报告":
|
||||||
try:
|
try:
|
||||||
if qid in bot.config.SUPERUSERS:
|
if qid in bot.config.SUPERUSERS:
|
||||||
@ -358,55 +437,57 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
await bot.send(ev, "成功!", at_sender=True)
|
await bot.send(ev, "成功!", at_sender=True)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送设置成功信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("设置简洁签到报告失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("开启功能失败")
|
||||||
|
|
||||||
|
|
||||||
# 群聊关闭 自动签到 和 推送树脂提醒 功能
|
# 群聊关闭 自动签到 和 推送树脂提醒 功能
|
||||||
@sv.on_prefix('关闭')
|
@sv.on_prefix('关闭')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def close_switch_func(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
|
|
||||||
qid = ev.sender["user_id"]
|
qid = ev.sender["user_id"]
|
||||||
at = re.search(r"\[CQ:at,qq=(\d*)\]", message)
|
at = re.search(r"\[CQ:at,qq=(\d*)]", message)
|
||||||
|
|
||||||
if m == "自动签到":
|
if m == "自动签到":
|
||||||
try:
|
try:
|
||||||
if at and qid in bot.config.SUPERUSERS:
|
if at:
|
||||||
qid = at.group(1)
|
if at and at.group(1) != qid:
|
||||||
elif at and at.group(1) != qid:
|
|
||||||
await bot.send(ev, "你没有权限。", at_sender=True)
|
await bot.send(ev, "你没有权限。", at_sender=True)
|
||||||
return
|
return
|
||||||
else:
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
pass
|
im = await open_push(int(uid[0]), ev.sender['user_id'], "off", "StatusB")
|
||||||
gid = ev.group_id
|
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
|
||||||
im = await OpenPush(int(uid[0]),ev.sender['user_id'],"off","StatusB")
|
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送关闭自动签到信息失败")
|
||||||
|
except Exception:
|
||||||
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
||||||
|
logger.exception("关闭自动签到失败")
|
||||||
elif m == "推送":
|
elif m == "推送":
|
||||||
try:
|
try:
|
||||||
if at and qid in bot.config.SUPERUSERS:
|
if at:
|
||||||
qid = at.group(1)
|
if at and at.group(1) != qid:
|
||||||
elif at and at.group(1) != qid:
|
|
||||||
await bot.send(ev, "你没有权限。", at_sender=True)
|
await bot.send(ev, "你没有权限。", at_sender=True)
|
||||||
return
|
return
|
||||||
else:
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
pass
|
im = await open_push(int(uid[0]), ev.sender['user_id'], "off", "StatusA")
|
||||||
gid = ev.group_id
|
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
|
||||||
im = await OpenPush(int(uid[0]),ev.sender['user_id'],"off","StatusA")
|
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送关闭推送信息失败")
|
||||||
|
except Exception:
|
||||||
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
await bot.send(ev, "未绑定uid信息!", at_sender=True)
|
||||||
|
logger.exception("关闭推送失败")
|
||||||
elif m == "简洁签到报告":
|
elif m == "简洁签到报告":
|
||||||
try:
|
try:
|
||||||
if qid in bot.config.SUPERUSERS:
|
if qid in bot.config.SUPERUSERS:
|
||||||
@ -414,73 +495,94 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
await bot.send(ev, "成功!", at_sender=True)
|
await bot.send(ev, "成功!", at_sender=True)
|
||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send("机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送设置成功信息失败")
|
||||||
|
except Exception as e:
|
||||||
|
await bot.send("发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("设置简洁签到报告失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("关闭功能失败")
|
||||||
except Exception as e:
|
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev,"发生错误 {},请检查后台输出。".format(e))
|
|
||||||
|
|
||||||
# 群聊内 每月统计 功能
|
# 群聊内 每月统计 功能
|
||||||
@sv.on_fullmatch('每月统计')
|
@sv.on_fullmatch('每月统计')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_monthly_data(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
qid = ev.sender["user_id"]
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
|
||||||
uid = uid[0]
|
uid = uid[0]
|
||||||
im = await award(uid)
|
im = await award(uid)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送每月统计信息失败")
|
||||||
|
except Exception:
|
||||||
await bot.send(ev, '未找到绑定信息', at_sender=True)
|
await bot.send(ev, '未找到绑定信息', at_sender=True)
|
||||||
|
logger.exception("获取每月统计失败")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 签到 功能
|
# 群聊内 签到 功能
|
||||||
@sv.on_fullmatch('签到')
|
@sv.on_fullmatch('签到')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def get_sing_func(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
qid = ev.sender["user_id"]
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
|
||||||
uid = uid[0]
|
uid = uid[0]
|
||||||
im = await sign(uid)
|
im = await sign(uid)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
except Exception as e:
|
except ActionFailed as e:
|
||||||
traceback.print_exc()
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送签到信息失败")
|
||||||
|
except Exception:
|
||||||
await bot.send(ev, '未找到绑定信息', at_sender=True)
|
await bot.send(ev, '未找到绑定信息', at_sender=True)
|
||||||
|
logger.exception("签到失败")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 校验Cookies 是否正常的功能,不正常自动删掉
|
# 群聊内 校验Cookies 是否正常的功能,不正常自动删掉
|
||||||
@sv.on_fullmatch('校验全部Cookies')
|
@sv.on_fullmatch('校验全部Cookies')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def check_cookies(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
raw_mes = await CheckDB()
|
raw_mes = await check_db()
|
||||||
im = raw_mes[0]
|
im = raw_mes[0]
|
||||||
await bot.send(ev, im)
|
await bot.send(ev, im)
|
||||||
for i in raw_mes[1]:
|
for i in raw_mes[1]:
|
||||||
await bot.send_private_msg(user_id=i[0],
|
await bot.send_private_msg(user_id=i[0],
|
||||||
message = "您绑定的Cookies(uid{})已失效,以下功能将会受到影响:\n查看完整信息列表\n查看深渊配队\n自动签到/当前状态/每月统计\n请及时重新绑定Cookies并重新开关相应功能。".format(i[1]))
|
message="您绑定的Cookies(uid{})已失效,以下功能将会受到影响:\n查看完整信息列表\n"
|
||||||
|
"查看深渊配队\n自动签到/当前状态/每月统计\n"
|
||||||
|
"请及时重新绑定Cookies并重新开关相应功能。".format(i[1]))
|
||||||
await asyncio.sleep(3 + random.randint(1, 3))
|
await asyncio.sleep(3 + random.randint(1, 3))
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送Cookie校验信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("Cookie校验错误")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 查询当前树脂状态以及派遣状态 的命令
|
# 群聊内 查询当前树脂状态以及派遣状态 的命令
|
||||||
@sv.on_fullmatch('当前状态')
|
@sv.on_fullmatch('当前状态')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_daily_data(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
uid = await selectDB(ev.sender['user_id'],mode = "uid")
|
uid = await select_db(ev.sender['user_id'], mode="uid")
|
||||||
uid = uid[0]
|
uid = uid[0]
|
||||||
mes = await daily("ask", uid)
|
mes = await daily("ask", uid)
|
||||||
im = mes[0]['message']
|
im = mes[0]['message']
|
||||||
except Exception as e:
|
except Exception:
|
||||||
traceback.print_exc()
|
|
||||||
im = "没有找到绑定信息。"
|
im = "没有找到绑定信息。"
|
||||||
|
logger.exception("获取当前状态失败")
|
||||||
|
|
||||||
|
try:
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送当前状态信息失败")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 查询uid 的命令
|
# 群聊内 查询uid 的命令
|
||||||
@sv.on_prefix('uid')
|
@sv.on_prefix('uid')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_uid_info(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
image = re.search(r"\[CQ:image,file=(.*),url=(.*)\]", str(ev.message))
|
image = re.search(r"\[CQ:image,file=(.*),url=(.*)]", str(ev.message))
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
uid = re.findall(r"\d+", message)[0] # str
|
uid = re.findall(r"\d+", message)[0] # str
|
||||||
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
@ -493,12 +595,15 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image)
|
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid深渊信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("深渊数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("深渊数据获取失败(数据状态问题)")
|
||||||
elif m == "上期深渊":
|
elif m == "上期深渊":
|
||||||
try:
|
try:
|
||||||
if len(re.findall(r"\d+", message)) == 2:
|
if len(re.findall(r"\d+", message)) == 2:
|
||||||
@ -508,65 +613,80 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image, 2, "2")
|
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image, 2, "2")
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid上期深渊信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("上期深渊数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("上期深渊数据获取失败(数据状态问题)")
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
im = await draw_pic(uid, ev.sender['nickname'], image, 2)
|
im = await draw_pic(uid, ev.sender['nickname'], image, 2)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("数据获取失败(数据状态问题)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("uid查询异常")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 绑定uid 的命令,会绑定至当前qq号上
|
# 群聊内 绑定uid 的命令,会绑定至当前qq号上
|
||||||
@sv.on_prefix('绑定uid')
|
@sv.on_prefix('绑定uid')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def link_uid_to_qq(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
uid = re.findall(r"\d+", message)[0] # str
|
uid = re.findall(r"\d+", message)[0] # str
|
||||||
await connectDB(ev.sender['user_id'],uid)
|
await connect_db(ev.sender['user_id'], uid)
|
||||||
await bot.send(ev, '绑定uid成功!', at_sender=True)
|
await bot.send(ev, '绑定uid成功!', at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送绑定信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("绑定uid异常")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 绑定米游社通行证 的命令,会绑定至当前qq号上,和绑定uid不冲突,两者可以同时绑定
|
# 群聊内 绑定米游社通行证 的命令,会绑定至当前qq号上,和绑定uid不冲突,两者可以同时绑定
|
||||||
@sv.on_prefix('绑定mys')
|
@sv.on_prefix('绑定mys')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def link_mihoyo_bbs_to_qq(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
mys = re.findall(r"\d+", message)[0] # str
|
mys = re.findall(r"\d+", message)[0] # str
|
||||||
await connectDB(ev.sender['user_id'],None,mys)
|
await connect_db(ev.sender['user_id'], None, mys)
|
||||||
await bot.send(ev, '绑定米游社id成功!', at_sender=True)
|
await bot.send(ev, '绑定米游社id成功!', at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送绑定信息失败")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("绑定米游社通行证异常")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 绑定过uid/mysid的情况下,可以查询,默认优先调用米游社通行证,多出世界等级一个参数
|
# 群聊内 绑定过uid/mysid的情况下,可以查询,默认优先调用米游社通行证,多出世界等级一个参数
|
||||||
@sv.on_prefix('查询')
|
@sv.on_prefix('查询')
|
||||||
async def _(bot, ev):
|
async def get_info(bot, ev):
|
||||||
try:
|
try:
|
||||||
image = re.search(r"\[CQ:image,file=(.*),url=(.*)\]", str(ev.message))
|
image = re.search(r"\[CQ:image,file=(.*),url=(.*)]", str(ev.message))
|
||||||
at = re.search(r"\[CQ:at,qq=(\d*)\]", str(ev.raw_message.strip()))
|
at = re.search(r"\[CQ:at,qq=(\d*)]", str(ev.raw_message.strip()))
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
if at:
|
if at:
|
||||||
qid = at.group(1)
|
qid = at.group(1)
|
||||||
mi = await bot.get_group_member_info(group_id=ev.group_id, user_id=qid)
|
mi = await bot.get_group_member_info(group_id=ev.group_id, user_id=qid)
|
||||||
nickname = mi["nickname"]
|
nickname = mi["nickname"]
|
||||||
uid = await selectDB(qid)
|
uid = await select_db(qid)
|
||||||
else:
|
else:
|
||||||
nickname = ev.sender['nickname']
|
nickname = ev.sender['nickname']
|
||||||
uid = await selectDB(ev.sender['user_id'])
|
uid = await select_db(ev.sender['user_id'])
|
||||||
|
|
||||||
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
if uid:
|
if uid:
|
||||||
@ -579,12 +699,15 @@ async def _(bot, ev):
|
|||||||
else:
|
else:
|
||||||
im = await draw_abyss0_pic(uid[0], nickname, image, uid[1])
|
im = await draw_abyss0_pic(uid[0], nickname, image, uid[1])
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid深渊信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("深渊数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("深渊数据获取失败(数据状态问题)")
|
||||||
elif m == "上期深渊":
|
elif m == "上期深渊":
|
||||||
try:
|
try:
|
||||||
if len(re.findall(r"\d+", message)) == 1:
|
if len(re.findall(r"\d+", message)) == 1:
|
||||||
@ -594,45 +717,55 @@ async def _(bot, ev):
|
|||||||
else:
|
else:
|
||||||
im = await draw_abyss0_pic(uid[0], nickname, image, uid[1], "2")
|
im = await draw_abyss0_pic(uid[0], nickname, image, uid[1], "2")
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid上期深渊信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("上期深渊数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("上期深渊数据获取失败(数据状态问题)")
|
||||||
elif m == "词云":
|
elif m == "词云":
|
||||||
try:
|
try:
|
||||||
im = await draw_wordcloud(uid[0],image,uid[1])
|
im = await draw_word_cloud(uid[0], image, uid[1])
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid词云信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("词云数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("词云数据获取失败(数据状态问题)")
|
||||||
elif m == "":
|
elif m == "":
|
||||||
try:
|
try:
|
||||||
bg = await draw_pic(uid[0], nickname, image, uid[1])
|
bg = await draw_pic(uid[0], nickname, image, uid[1])
|
||||||
await bot.send(ev, bg, at_sender=True)
|
await bot.send(ev, bg, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送uid信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("数据获取失败(数据状态问题)")
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
await bot.send(ev, '未找到绑定记录!')
|
await bot.send(ev, '未找到绑定记录!')
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("查询异常")
|
||||||
|
|
||||||
|
|
||||||
# 群聊内 查询米游社通行证 的命令
|
# 群聊内 查询米游社通行证 的命令
|
||||||
@sv.on_prefix('mys')
|
@sv.on_prefix('mys')
|
||||||
async def _(bot:HoshinoBot, ev: CQEvent):
|
async def send_mihoyo_bbs_info(bot: HoshinoBot, ev: CQEvent):
|
||||||
try:
|
try:
|
||||||
image = re.search(r"\[CQ:image,file=(.*),url=(.*)\]", str(ev.message))
|
image = re.search(r"\[CQ:image,file=(.*),url=(.*)]", str(ev.message))
|
||||||
message = ev.message.extract_plain_text()
|
message = ev.message.extract_plain_text()
|
||||||
uid = re.findall(r"\d+", message)[0] # str
|
uid = re.findall(r"\d+", message)[0] # str
|
||||||
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
m = ''.join(re.findall('[\u4e00-\u9fa5]', message))
|
||||||
@ -645,12 +778,15 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image, 3)
|
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image, 3)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送米游社深渊信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("深渊数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("深渊数据获取失败(数据状态问题)")
|
||||||
elif m == "上期深渊":
|
elif m == "上期深渊":
|
||||||
try:
|
try:
|
||||||
if len(re.findall(r"\d+", message)) == 1:
|
if len(re.findall(r"\d+", message)) == 1:
|
||||||
@ -660,22 +796,28 @@ async def _(bot:HoshinoBot, ev: CQEvent):
|
|||||||
else:
|
else:
|
||||||
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image, 3, "2")
|
im = await draw_abyss0_pic(uid, ev.sender['nickname'], image, 3, "2")
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送米游社上期深渊信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("上期深渊数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("上期深渊数据获取失败(数据状态问题)")
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
im = await draw_pic(uid, ev.sender['nickname'], image, 3)
|
im = await draw_pic(uid, ev.sender['nickname'], image, 3)
|
||||||
await bot.send(ev, im, at_sender=True)
|
await bot.send(ev, im, at_sender=True)
|
||||||
|
except ActionFailed as e:
|
||||||
|
await bot.send(ev, "机器人发送消息失败:{}".format(e))
|
||||||
|
logger.exception("发送米游社信息失败")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
await bot.send("获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
await bot.send(ev, "获取失败,可能是Cookies失效或者未打开米游社角色详情开关。")
|
||||||
traceback.print_exc()
|
logger.exception("米游社数据获取失败(Cookie失效/不公开信息)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
await bot.send("获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
await bot.send(ev, "获取失败,有可能是数据状态有问题,\n{}\n请检查后台输出。".format(e))
|
||||||
traceback.print_exc()
|
logger.exception("米游社数据获取失败(数据状态问题)")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
traceback.print_exc()
|
|
||||||
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
await bot.send(ev, "发生错误 {},请检查后台输出。".format(e))
|
||||||
|
logger.exception("米游社查询异常")
|
||||||
|
@ -10,7 +10,6 @@ from re import findall
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from PIL import Image, ImageDraw, ImageFont, ImageFilter
|
from PIL import Image, ImageDraw, ImageFont, ImageFilter
|
||||||
from httpx import get
|
from httpx import get
|
||||||
from nonebot.adapters.onebot.v11 import Message
|
|
||||||
from wordcloud import WordCloud
|
from wordcloud import WordCloud
|
||||||
|
|
||||||
from .get_data import get_info, get_character, get_spiral_abyss_info, get_mihoyo_bbs_info, \
|
from .get_data import get_info, get_character, get_spiral_abyss_info, get_mihoyo_bbs_info, \
|
||||||
@ -652,7 +651,7 @@ async def draw_abyss0_pic(uid, nickname, image=None, mode=2, date="1"):
|
|||||||
bg_img.save(result_buffer, format='JPEG', subsampling=0, quality=90)
|
bg_img.save(result_buffer, format='JPEG', subsampling=0, quality=90)
|
||||||
# bg_img.save(result_buffer, format='PNG')
|
# bg_img.save(result_buffer, format='PNG')
|
||||||
imgmes = 'base64://' + b64encode(result_buffer.getvalue()).decode()
|
imgmes = 'base64://' + b64encode(result_buffer.getvalue()).decode()
|
||||||
resultmes = Message(f"[CQ:image,file={imgmes}]")
|
resultmes = f"[CQ:image,file={imgmes}]"
|
||||||
return resultmes
|
return resultmes
|
||||||
|
|
||||||
|
|
||||||
@ -848,7 +847,7 @@ async def draw_abyss_pic(uid, nickname, floor_num, image=None, mode=2, date="1")
|
|||||||
bg_img.save(result_buffer, format='JPEG', subsampling=0, quality=90)
|
bg_img.save(result_buffer, format='JPEG', subsampling=0, quality=90)
|
||||||
# bg_img.save(result_buffer, format='PNG')
|
# bg_img.save(result_buffer, format='PNG')
|
||||||
imgmes = 'base64://' + b64encode(result_buffer.getvalue()).decode()
|
imgmes = 'base64://' + b64encode(result_buffer.getvalue()).decode()
|
||||||
resultmes = Message(f"[CQ:image,file={imgmes}]")
|
resultmes = f"[CQ:image,file={imgmes}]"
|
||||||
return resultmes
|
return resultmes
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
nonebot==1.8.2
|
nonebot~=1.6.0
|
||||||
requests==2.25.1
|
requests==2.25.1
|
||||||
httpx==0.18.1
|
httpx==0.18.1
|
||||||
Pillow>=8.3.1
|
Pillow>=8.3.1
|
||||||
wordcloud>=1.8.1
|
wordcloud>=1.8.1
|
||||||
|
numpy~=1.22.2
|
Loading…
x
Reference in New Issue
Block a user