azils3/bash
0
1# Ultroid - UserBot2# Copyright (C) 2021-2025 TeamUltroid3#4# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >5# PLease read the GNU Affero General Public License in6# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.7 8import re9 10from telethon import Button11from telethon.errors.rpcerrorlist import (12 BotInlineDisabledError,13 BotResponseTimeoutError,14 MessageNotModifiedError,15)16from telethon.tl import types17from telethon.tl.functions.users import GetFullUserRequest as gu18 19from . import (20 HNDLR,21 LOGS,22 asst,23 callback,24 get_string,25 in_pattern,26 inline_mention,27 ultroid_bot,28 ultroid_cmd,29)30 31buddhhu = {}32 33 34@ultroid_cmd(35 pattern="wspr( (.*)|$)",36)37async def _(e):38 if e.reply_to_msg_id:39 okk = await e.get_reply_message()40 put = f"@{okk.sender.username}" if okk.sender.username else okk.sender_id41 else:42 put = e.pattern_match.group(1).strip()43 if put:44 try:45 results = await e.client.inline_query(asst.me.username, f"msg {put}")46 except BotResponseTimeoutError:47 return await e.eor(48 get_string("help_2").format(HNDLR),49 )50 except BotInlineDisabledError:51 return await e.eor(get_string("help_3"))52 await results[0].click(e.chat_id, reply_to=e.reply_to_msg_id, hide_via=True)53 return await e.delete()54 await e.eor(get_string("wspr_3"))55 56 57@in_pattern("wspr", owner=True)58async def _(e):59 iuser = e.query.user_id60 zzz = e.text.split(maxsplit=2)61 try:62 query = zzz[1]63 if query.isdigit():64 query = int(query)65 logi = await ultroid_bot.get_entity(query)66 if not isinstance(logi, types.User):67 raise ValueError("Invalid Username.")68 except IndexError:69 sur = await e.builder.article(70 title="Give Username",71 description="You Didn't Type Username or id.",72 text="You Didn't Type Username or id.",73 )74 return await e.answer([sur])75 except ValueError as er:76 LOGS.exception(er)77 sur = await e.builder.article(78 title="User Not Found",79 description="Make sure username or id is correct.",80 text="Make sure username or id is correct.",81 )82 return await e.answer([sur])83 try:84 desc = zzz[2]85 except IndexError:86 sur = await e.builder.article(87 title="Type ur msg", text="You Didn't Type Your Msg"88 )89 return await e.answer([sur])90 button = [91 [92 Button.inline("Secret Msg", data=f"dd_{e.id}"),93 Button.inline("Delete Msg", data=f"del_{e.id}"),94 ],95 [96 Button.switch_inline(97 "New", query=f"wspr {logi.username or logi.id}", same_peer=True98 )99 ],100 ]101 us = logi.username or logi.first_name102 sur = await e.builder.article(103 title=logi.first_name,104 description=desc,105 text=get_string("wspr_1").format(us),106 buttons=button,107 )108 buddhhu.update({e.id: [logi.id, iuser, desc]})109 await e.answer([sur])110 111 112@in_pattern("msg", owner=True)113async def _(e):114 zzz = e.text.split(maxsplit=1)115 desc = "Touch me"116 try:117 query = zzz[1]118 if query.isdigit():119 query = int(query)120 logi = await ultroid_bot(gu(id=query))121 user = logi.users[0]122 mention = inline_mention(user)123 x = user.status124 if isinstance(x, types.UserStatusOnline):125 status = "Online"126 elif isinstance(x, types.UserStatusOffline):127 status = "Offline"128 elif isinstance(x, types.UserStatusRecently):129 status = "Last Seen Recently"130 elif isinstance(x, types.UserStatusLastMonth):131 status = "Last seen months ago"132 elif isinstance(x, types.UserStatusLastWeek):133 status = "Last seen weeks ago"134 else:135 status = "Can't Tell"136 text = f"**Name:** `{user.first_name}`\n"137 text += f"**Id:** `{user.id}`\n"138 if user.username:139 text += f"**Username:** `{user.username}`\n"140 url = f"https://t.me/{user.username}"141 else:142 text += f"**Mention:** `{mention}`\n"143 url = f"tg://user?id={user.id}"144 text += f"**Status:** `{status}`\n"145 text += f"**About:** `{logi.full_user.about}`"146 button = [147 Button.url("Private", url=url),148 Button.switch_inline(149 "Secret msg",150 query=f"wspr {query} Hello ๐",151 same_peer=True,152 ),153 ]154 sur = e.builder.article(155 title=user.first_name,156 description=desc,157 text=text,158 buttons=button,159 )160 except IndexError:161 sur = e.builder.article(162 title="Give Username",163 description="You Didn't Type Username or id.",164 text="You Didn't Type Username or id.",165 )166 except BaseException as er:167 LOGS.exception(er)168 name = get_string("wspr_4").format(query)169 sur = e.builder.article(170 title=name,171 text=name,172 )173 174 await e.answer([sur])175 176 177@callback(178 re.compile(179 "dd_(.*)",180 ),181)182async def _(e):183 ids = int(e.pattern_match.group(1).strip().decode("UTF-8"))184 if buddhhu.get(ids):185 if e.sender_id in buddhhu[ids]:186 await e.answer(buddhhu[ids][-1], alert=True)187 else:188 await e.answer("Not For You", alert=True)189 else:190 await e.answer(get_string("wspr_2"), alert=True)191 192 193@callback(re.compile("del_(.*)"))194async def _(e):195 ids = int(e.pattern_match.group(1).strip().decode("UTF-8"))196 if buddhhu.get(ids):197 if e.sender_id in buddhhu[ids]:198 buddhhu.pop(ids)199 try:200 await e.edit(get_string("wspr_2"))201 except MessageNotModifiedError:202 pass203 else:204 await e.answer(get_string("wspr_5"), alert=True)205 