Spaces:
Paused
Paused
| # Ultroid - UserBot | |
| # Copyright (C) 2021-2025 TeamUltroid | |
| # | |
| # This file is a part of < https://github.com/TeamUltroid/Ultroid/ > | |
| # PLease read the GNU Affero General Public License in | |
| # <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>. | |
| import re | |
| from telethon import Button | |
| from telethon.errors.rpcerrorlist import ( | |
| BotInlineDisabledError, | |
| BotResponseTimeoutError, | |
| MessageNotModifiedError, | |
| ) | |
| from telethon.tl import types | |
| from telethon.tl.functions.users import GetFullUserRequest as gu | |
| from . import ( | |
| HNDLR, | |
| LOGS, | |
| asst, | |
| callback, | |
| get_string, | |
| in_pattern, | |
| inline_mention, | |
| ultroid_bot, | |
| ultroid_cmd, | |
| ) | |
| buddhhu = {} | |
| async def _(e): | |
| if e.reply_to_msg_id: | |
| okk = await e.get_reply_message() | |
| put = f"@{okk.sender.username}" if okk.sender.username else okk.sender_id | |
| else: | |
| put = e.pattern_match.group(1).strip() | |
| if put: | |
| try: | |
| results = await e.client.inline_query(asst.me.username, f"msg {put}") | |
| except BotResponseTimeoutError: | |
| return await e.eor( | |
| get_string("help_2").format(HNDLR), | |
| ) | |
| except BotInlineDisabledError: | |
| return await e.eor(get_string("help_3")) | |
| await results[0].click(e.chat_id, reply_to=e.reply_to_msg_id, hide_via=True) | |
| return await e.delete() | |
| await e.eor(get_string("wspr_3")) | |
| async def _(e): | |
| iuser = e.query.user_id | |
| zzz = e.text.split(maxsplit=2) | |
| try: | |
| query = zzz[1] | |
| if query.isdigit(): | |
| query = int(query) | |
| logi = await ultroid_bot.get_entity(query) | |
| if not isinstance(logi, types.User): | |
| raise ValueError("Invalid Username.") | |
| except IndexError: | |
| sur = await e.builder.article( | |
| title="Give Username", | |
| description="You Didn't Type Username or id.", | |
| text="You Didn't Type Username or id.", | |
| ) | |
| return await e.answer([sur]) | |
| except ValueError as er: | |
| LOGS.exception(er) | |
| sur = await e.builder.article( | |
| title="User Not Found", | |
| description="Make sure username or id is correct.", | |
| text="Make sure username or id is correct.", | |
| ) | |
| return await e.answer([sur]) | |
| try: | |
| desc = zzz[2] | |
| except IndexError: | |
| sur = await e.builder.article( | |
| title="Type ur msg", text="You Didn't Type Your Msg" | |
| ) | |
| return await e.answer([sur]) | |
| button = [ | |
| [ | |
| Button.inline("Secret Msg", data=f"dd_{e.id}"), | |
| Button.inline("Delete Msg", data=f"del_{e.id}"), | |
| ], | |
| [ | |
| Button.switch_inline( | |
| "New", query=f"wspr {logi.username or logi.id}", same_peer=True | |
| ) | |
| ], | |
| ] | |
| us = logi.username or logi.first_name | |
| sur = await e.builder.article( | |
| title=logi.first_name, | |
| description=desc, | |
| text=get_string("wspr_1").format(us), | |
| buttons=button, | |
| ) | |
| buddhhu.update({e.id: [logi.id, iuser, desc]}) | |
| await e.answer([sur]) | |
| async def _(e): | |
| zzz = e.text.split(maxsplit=1) | |
| desc = "Touch me" | |
| try: | |
| query = zzz[1] | |
| if query.isdigit(): | |
| query = int(query) | |
| logi = await ultroid_bot(gu(id=query)) | |
| user = logi.users[0] | |
| mention = inline_mention(user) | |
| x = user.status | |
| if isinstance(x, types.UserStatusOnline): | |
| status = "Online" | |
| elif isinstance(x, types.UserStatusOffline): | |
| status = "Offline" | |
| elif isinstance(x, types.UserStatusRecently): | |
| status = "Last Seen Recently" | |
| elif isinstance(x, types.UserStatusLastMonth): | |
| status = "Last seen months ago" | |
| elif isinstance(x, types.UserStatusLastWeek): | |
| status = "Last seen weeks ago" | |
| else: | |
| status = "Can't Tell" | |
| text = f"**Name:** `{user.first_name}`\n" | |
| text += f"**Id:** `{user.id}`\n" | |
| if user.username: | |
| text += f"**Username:** `{user.username}`\n" | |
| url = f"https://t.me/{user.username}" | |
| else: | |
| text += f"**Mention:** `{mention}`\n" | |
| url = f"tg://user?id={user.id}" | |
| text += f"**Status:** `{status}`\n" | |
| text += f"**About:** `{logi.full_user.about}`" | |
| button = [ | |
| Button.url("Private", url=url), | |
| Button.switch_inline( | |
| "Secret msg", | |
| query=f"wspr {query} Hello ๐", | |
| same_peer=True, | |
| ), | |
| ] | |
| sur = e.builder.article( | |
| title=user.first_name, | |
| description=desc, | |
| text=text, | |
| buttons=button, | |
| ) | |
| except IndexError: | |
| sur = e.builder.article( | |
| title="Give Username", | |
| description="You Didn't Type Username or id.", | |
| text="You Didn't Type Username or id.", | |
| ) | |
| except BaseException as er: | |
| LOGS.exception(er) | |
| name = get_string("wspr_4").format(query) | |
| sur = e.builder.article( | |
| title=name, | |
| text=name, | |
| ) | |
| await e.answer([sur]) | |
| async def _(e): | |
| ids = int(e.pattern_match.group(1).strip().decode("UTF-8")) | |
| if buddhhu.get(ids): | |
| if e.sender_id in buddhhu[ids]: | |
| await e.answer(buddhhu[ids][-1], alert=True) | |
| else: | |
| await e.answer("Not For You", alert=True) | |
| else: | |
| await e.answer(get_string("wspr_2"), alert=True) | |
| async def _(e): | |
| ids = int(e.pattern_match.group(1).strip().decode("UTF-8")) | |
| if buddhhu.get(ids): | |
| if e.sender_id in buddhhu[ids]: | |
| buddhhu.pop(ids) | |
| try: | |
| await e.edit(get_string("wspr_2")) | |
| except MessageNotModifiedError: | |
| pass | |
| else: | |
| await e.answer(get_string("wspr_5"), alert=True) | |