|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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) |
|
|