修复没有挑战深渊引发的错误并检查账号绑定状态

This commit is contained in:
洛水居室 2022-07-01 02:16:05 +08:00
parent ff57c122c7
commit 181b767aac
No known key found for this signature in database
GPG Key ID: C9DE87DA724B88FC

View File

@ -5,12 +5,13 @@ from telegram.ext import CommandHandler, MessageHandler, filters
from logger import Log
from manager import listener_plugins_class
from model.helpers import get_genshin_client, url_to_file
from plugins.base import BasePlugins
from service.base import UserInfoData
from utils.base import PaimonContext
@listener_plugins_class()
class Abyss:
class Abyss(BasePlugins):
def __init__(self, *args):
"""Abyss插件入口"""
@ -40,6 +41,8 @@ class Abyss:
if not spiral_abyss_info.unlocked:
raise ValueError("unlocked is false")
ranks = spiral_abyss_info.ranks
if len(spiral_abyss_info.ranks.most_kills) == 0:
raise ValueError("本次深渊旅行者还没挑战呢")
abyss_data = {
"uid": uid,
"max_floor": spiral_abyss_info.max_floor,
@ -85,13 +88,23 @@ class Abyss:
Log.info(f"用户 {user.full_name}[{user.id}] 查深渊挑战命令请求")
await message.reply_chat_action(ChatAction.TYPING)
user_info = await service.user_service_db.get_user_info(user.id)
if user_info.user_id == 0:
reply_message = await message.reply_text("未查询到账号信息,请先私聊派蒙绑定账号")
if filters.ChatType.GROUPS.filter(message):
self._add_delete_message_job(context, reply_message.chat_id, reply_message.message_id, 300)
self._add_delete_message_job(context, message.chat_id, message.message_id, 300)
return
try:
abyss_data = await self._get_abyss_data(user_info)
except ValueError as exc:
if "unlocked is false" in str(exc):
await message.reply_text("本次深渊旅行者还没挑战呢,咕咕咕~~~")
return
if "本次深渊旅行者还没挑战呢" in str(exc):
await message.reply_text("本次深渊旅行者还没挑战呢,咕咕咕~~~")
return
raise exc
await message.reply_chat_action(ChatAction.UPLOAD_PHOTO)
png_data = await service.template.render('genshin/abyss', "abyss.html", abyss_data,
{"width": 690, "height": 504}, full_page=False)
await message.reply_photo(png_data, filename=f"abyss_{user.id}.png",