from ci import admin_id from pyrogram import Client from pyrogram.types import Message, CallbackQuery, InlineKeyboardMarkup, InlineKeyboardButton, ReplyKeyboardMarkup, \ ReplyKeyboardRemove HELP_MSG_PRE = 'PaimonBot ' \ '0.4.5beta By Xtao-Labs\n\n' \ '🔅 以下是小派蒙我学会了的功能(部分):\n' HELP_MSG = """① [武器/今日武器] 查看今日武器材料和武器 ② [天赋/今日天赋] 查看今日天赋材料和角色 ③ [周本] 查看周本材料和人物 ④ [运势 (名字)] 查看今日运势 💠 运势 (重云) 💠 设置运势 (重云) ⑤ [角色查询 名字] 查看人物简介 💠 角色查询 重云 ⑥ [命座 名字] 查看人物命座 💠 命座 重云一命 ⑦ [武器查询 武器名] 查看武器资料 💠 武器查询 沐浴龙血的剑 ⑧ [原魔查询 原魔名] 查看原魔资料 💠 原魔查询 丘丘人 ⑨ [食物查询 食物/食材名] 查看食物资料 💠 食物查询 甜甜花/甜甜花酿鸡 ⑩ [圣遗物查询 圣遗物套装名] 查看圣遗物套装资料 💠 圣遗物查询 逆飞的流星 (11) [图鉴 (角色/武器名)] 查看图鉴 💠 图鉴 万叶 ====== (12) [抽卡] 抽卡 💠 抽卡 💠 抽卡 2 💠 抽卡 武器 💠 抽卡 常驻 (13) [原神黄历] 查看随机生成的原神黄历 (14) [活动列表] 查看今日活动列表和祈愿列表 (15) [圣遗物评分] 我也想拥有这种分数的圣遗物(切实) (16) [哪里有 (资源名)] 查看资源的位置 (17) [资源列表] 查看原神所有资源(私聊) (18) [猜语音] 和群友一起玩猜语音小游戏吧!(群聊) 💠 猜语音 💠 猜语音 无尽模式 (19) [怎么养 (角色名)] 输出角色适用武器&圣遗物 (20) [给谁用 (武器名)] 输出武器适用角色 (21) [攻略 (角色名)] 查看攻略 (22) [米游社/hoyolab] 米游社/hoyolab相关功能 💠 点击查看""" async def welcome_command(_: Client, message: Message): # 发送欢迎消息 await message.reply("你好!我是原神小助手 - 派蒙 。\n\n" "以下是我认识的部分关键词哦,您也可以发送 /help 命令查看完整列表 ~", quote=True, reply_markup=ReplyKeyboardMarkup( [["今日武器", "今日天赋", "活动列表"], ["周本", "运势", "黄历"], ["米游社签到", "米游社当前信息", "米游社每月统计"], ["hoyolab签到", "hoyolab当前状态", "hoyolab每月统计"]] )) async def cancel_command(_: Client, message: Message): # 发送清空状态信息 await message.reply("已清空所有玄学状态 ~", quote=True, reply_markup=ReplyKeyboardRemove()) async def ping_command(client: Client, message: Message): # 提醒在线状态 await message.reply("poi~", quote=True) async def leave_command(client: Client, message: Message): # 退出群组 chat_id = message.text.split()[-1] # 权限检查 if message.from_user.id == admin_id: return try: await client.leave_chat(chat_id) await message.reply('成功执行退出群组命令。') except Exception as e: await message.reply(f'错误:\n{e}') async def help_command(client: Client, message: Message): text = HELP_MSG_PRE + HELP_MSG.split("\n======\n")[0] await message.reply(text, quote=True, disable_web_page_preview=True, reply_markup=InlineKeyboardMarkup( [ [InlineKeyboardButton("下一页", callback_data="help_1")], ])) async def help_callback(client: Client, query: CallbackQuery): data = query.data.replace("help_", "") try: data = int(data) except ValueError: data = 1 text = HELP_MSG_PRE + HELP_MSG.split("\n======\n")[data] await query.message.edit(text, disable_web_page_preview=True, reply_markup=InlineKeyboardMarkup( [ [InlineKeyboardButton("上一页" if data else "下一页", callback_data="help_0" if data else "help_1")], ]))