from pyrogram import Client, filters from pyrogram.types import Message, Chat from init import user_me def mention_chat(chat: Chat) -> str: return f'{chat.title}' if chat.username else chat.title def get_dc(message: Message): dc = 0 mention = "他" if message.reply_to_message: if message.reply_to_message.sender_chat: mention = mention_chat(message.reply_to_message.sender_chat) dc = message.reply_to_message.sender_chat.dc_id elif message.reply_to_message.from_user: mention = message.reply_to_message.from_user.mention dc = message.reply_to_message.from_user.dc_id elif message.from_user: mention = message.from_user.mention dc = message.from_user.dc_id elif message.sender_chat: mention = mention_chat(message.sender_chat) dc = message.sender_chat.dc_id return dc, mention @Client.on_message(filters.incoming & filters.command(["dc", f"dc@{user_me.username}"])) async def dc_command(_: Client, message: Message): geo_dic = {'1': '美国-佛罗里达州-迈阿密', '2': '荷兰-阿姆斯特丹', '3': '美国-佛罗里达州-迈阿密', '4': '荷兰-阿姆斯特丹', '5': '新加坡'} dc, mention = get_dc(message) if dc: text = f"{mention}所在数据中心为: DC{dc}\n" \ f"该数据中心位于 {geo_dic[str(dc)]}" else: text = f"{mention}需要先设置头像并且对我可见。" await message.reply(text)