| |
| |
| |
| |
| |
| |
|
|
| 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 = {} |
|
|
|
|
| @ultroid_cmd( |
| pattern="wspr( (.*)|$)", |
| ) |
| 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")) |
|
|
|
|
| @in_pattern("wspr", owner=True) |
| 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]) |
|
|
|
|
| @in_pattern("msg", owner=True) |
| 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]) |
|
|
|
|
| @callback( |
| re.compile( |
| "dd_(.*)", |
| ), |
| ) |
| 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) |
|
|
|
|
| @callback(re.compile("del_(.*)")) |
| 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) |
|
|