from asyncio import gather from os import remove from pyrogram import Client from pyrogram import Client as ren from pyrogram import * from pyrogram import filters from pyrogram.types import * from pyrogram.types import Message from akn.utils.prefixprem import command from akn.Akeno.admin import extract_user from akn.utils.handler import * from akn.utils.logger import LOGS from config import * @Akeno( ~filters.scheduled & command(["info"]) & filters.me & ~filters.forwarded ) async def who_is(client: Client, message: Message): user_id = await extract_user(message) ex = await message.edit_text("`Processing . . .`") if not user_id: return await ex.edit( "**Provide userid/username/reply to get that user's info.**" ) try: user = await client.get_users(user_id) username = f"@{user.username}" if user.username else "-" first_name = user.first_name or "-" last_name = user.last_name or "-" fullname = f"{user.first_name} {user.last_name}" if user.last_name else user.first_name user_details = (await client.get_chat(user.id)).bio or "-" # Checking user status using isinstance status = f"{user.status}" if status.startswith("UserStatus"): status = status.replace("UserStatus.", "").capitalize() else: status = "-" dc_id = user.dc_id or "-" common = await client.get_common_chats(user.id) out_str = f"""USER INFORMATION: 🆔 User ID: {user.id} 👤 First Name: {first_name} 🗣️ Last Name: {last_name} 🌐 Username: {username} 🏛️ DC ID: {dc_id} 🤖 Is Bot: {user.is_bot} 🚷 Is Scam: {user.is_scam} 🚫 Restricted: {user.is_restricted}Verified: {user.is_verified}Premium: {user.is_premium} 📝 User Bio: {user_details} 👀 Same groups seen: {len(common)} 👁️ Last Seen: {status} 🔗 User permanent link: {fullname} """ photo_id = user.photo.big_file_id if user.photo else None if photo_id: photo = await client.download_media(photo_id) await gather( ex.delete(), client.send_photo( message.chat.id, photo, caption=out_str, reply_to_message_id=message.id, ), ) remove(photo) else: await ex.edit(out_str, disable_web_page_preview=True) except Exception as e: LOGS.error(str(e)) return await ex.edit(f"**INFO:** `{e}`") module = modules_help.add_module("info", __file__) module.add_command("info", "to view user information.")