Enka_Panel_Bot/plugins/callback.py
2022-09-03 22:50:36 +08:00

30 lines
1.2 KiB
Python

from os import sep
from pyrogram import Client
from pyrogram.types import CallbackQuery, InputMediaPhoto
from ci import app
from defs.player import Player
@app.on_callback_query()
async def answer_callback(_: Client, callback_query: CallbackQuery):
data = callback_query.data.split("|")
uid = data[0]
char = callback_query.data.split("|")[1] if len(data) > 1 else None
data = Player(uid)
data.restore()
if not data.all_char:
return await callback_query.answer("没有可展示的角色,可能是数据未刷新", show_alert=True)
if not char:
return await callback_query.message.edit_media(
InputMediaPhoto(media=f"resources{sep}Kitsune.png",
caption=f"请选择 {data.name} 的一个角色:"),
reply_markup=data.gen_keyboard())
if char_data := next((i for i in data.all_char if i.get("name", "") == char), None):
await callback_query.message.edit_media(
InputMediaPhoto(media=char_data["file_id"]),
reply_markup=data.gen_back())
else:
return await callback_query.answer("没有可展示的角色,可能是数据未刷新", show_alert=True)