|
@@ -0,0 +1,117 @@
|
|
|
|
|
+from wbb import app, SUDOERS, spamwatch
|
|
|
|
|
+from pyrogram import filters
|
|
|
|
|
+from pyrogram.types import Message
|
|
|
|
|
+from wbb.core.decorators.errors import capture_err
|
|
|
|
|
+from wbb.utils.dbfunctions import is_gbanned_user, user_global_karma
|
|
|
|
|
+import os
|
|
|
|
|
+
|
|
|
|
|
+__MODULE__ = "Info"
|
|
|
|
|
+__HELP__ = """
|
|
|
|
|
+/info [USERNAME|ID] - Get info about a user.
|
|
|
|
|
+/chat_info [USERNAME|ID] - Get info about a chat.
|
|
|
|
|
+"""
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+async def get_user_info(user):
|
|
|
|
|
+ user = await app.get_users(user)
|
|
|
|
|
+ user_id = user.id
|
|
|
|
|
+ username = user.username
|
|
|
|
|
+ first_name = user.first_name
|
|
|
|
|
+ mention = user.mention("Link")
|
|
|
|
|
+ status = user.status
|
|
|
|
|
+ dc_id = user.dc_id
|
|
|
|
|
+ photo_id = user.photo.big_file_id if user.photo else None
|
|
|
|
|
+ is_gbanned = await is_gbanned_user(user_id)
|
|
|
|
|
+ is_sudo = user_id in SUDOERS
|
|
|
|
|
+ karma = await user_global_karma(user_id)
|
|
|
|
|
+ banned_in_spamwatch = False if not spamwatch.get_ban(user_id) else True
|
|
|
|
|
+ caption = f"""
|
|
|
|
|
+**ID:** `{user_id}`
|
|
|
|
|
+**DC:** {dc_id}
|
|
|
|
|
+**Name:** {first_name}
|
|
|
|
|
+**Username:** {("@" + username) if username else None}
|
|
|
|
|
+**Permalink:** {mention}
|
|
|
|
|
+**Status:** {status}
|
|
|
|
|
+**Sudo:** {is_sudo}
|
|
|
|
|
+**Karma:** {karma}
|
|
|
|
|
+**Gbanned:** {is_gbanned}
|
|
|
|
|
+**Spamwatch Restricted:** {banned_in_spamwatch}
|
|
|
|
|
+"""
|
|
|
|
|
+ return [caption, photo_id]
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+async def get_chat_info(chat):
|
|
|
|
|
+ chat = await app.get_chat(chat)
|
|
|
|
|
+ chat_id = chat.id
|
|
|
|
|
+ username = chat.username
|
|
|
|
|
+ title = chat.title
|
|
|
|
|
+ type = chat.type
|
|
|
|
|
+ is_scam = chat.is_scam
|
|
|
|
|
+ description = chat.description
|
|
|
|
|
+ members = chat.members_count
|
|
|
|
|
+ is_restricted = chat.is_restricted
|
|
|
|
|
+ link = f"[Link](t.me/{username})" if username else None
|
|
|
|
|
+ dc_id = chat.dc_id
|
|
|
|
|
+ photo_id = chat.photo.big_file_id if chat.photo else None
|
|
|
|
|
+ caption = f"""
|
|
|
|
|
+**ID:** `{chat_id}`
|
|
|
|
|
+**DC:** {dc_id}
|
|
|
|
|
+**Type:** {type}
|
|
|
|
|
+**Name:** {title}
|
|
|
|
|
+**Username:** {("@" + username) if username else None}
|
|
|
|
|
+**Permalink:** {link}
|
|
|
|
|
+**Members:** {members}
|
|
|
|
|
+**Scam:** {is_scam}
|
|
|
|
|
+**Restricted:** {is_restricted}
|
|
|
|
|
+**Description:** {description}
|
|
|
|
|
+"""
|
|
|
|
|
+ return [caption, photo_id]
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.on_message(filters.command("info"))
|
|
|
|
|
+@capture_err
|
|
|
|
|
+async def info_func(_, message: Message):
|
|
|
|
|
+ try:
|
|
|
|
|
+ if message.reply_to_message:
|
|
|
|
|
+ user = message.reply_to_message.from_user.id
|
|
|
|
|
+ elif not message.reply_to_message and len(message.command) == 1:
|
|
|
|
|
+ user = message.from_user.id
|
|
|
|
|
+ elif not message.reply_to_message and len(message.command) != 1:
|
|
|
|
|
+ user = message.text.split(None, 1)[1]
|
|
|
|
|
+ m = await message.reply_text("Processing")
|
|
|
|
|
+ info_caption, photo_id = await get_user_info(user)
|
|
|
|
|
+ if not photo_id:
|
|
|
|
|
+ await m.edit(info_caption, disable_web_page_preview=True)
|
|
|
|
|
+ return
|
|
|
|
|
+ photo = await app.download_media(photo_id)
|
|
|
|
|
+ await message.reply_photo(photo, caption=info_caption, quote=False)
|
|
|
|
|
+ await m.delete()
|
|
|
|
|
+ os.remove(photo)
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ await message.reply_text(str(e))
|
|
|
|
|
+ print(e)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+@app.on_message(filters.command("chat_info"))
|
|
|
|
|
+@capture_err
|
|
|
|
|
+async def chat_info_func(_, message: Message):
|
|
|
|
|
+ try:
|
|
|
|
|
+ if len(message.command) > 2:
|
|
|
|
|
+ await message.reply_text("**Usage:**/chat_info [USERNAME|ID]")
|
|
|
|
|
+ return
|
|
|
|
|
+ elif len(message.command) == 1:
|
|
|
|
|
+ chat = message.chat.id
|
|
|
|
|
+ elif len(message.command) == 2:
|
|
|
|
|
+ chat = message.text.split(None, 1)[1]
|
|
|
|
|
+ m = await message.reply_text("Processing")
|
|
|
|
|
+ info_caption, photo_id = await get_chat_info(chat)
|
|
|
|
|
+ if not photo_id:
|
|
|
|
|
+ await m.edit(info_caption, disable_web_page_preview=True)
|
|
|
|
|
+ return
|
|
|
|
|
+ photo = await app.download_media(photo_id)
|
|
|
|
|
+ await message.reply_photo(photo, caption=info_caption, quote=False)
|
|
|
|
|
+ await m.delete()
|
|
|
|
|
+ os.remove(photo)
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ await message.reply_text(e)
|
|
|
|
|
+ print(e)
|