30 lines
1.2 KiB
Python
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)
|