|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
✘ Commands Available - |
|
|
|
• `{i}setname <first name // last name>` |
|
Change your profile name. |
|
|
|
• `{i}setbio <bio>` |
|
Change your profile bio. |
|
|
|
• `{i}setpic <reply to pic>` |
|
Change your profile pic. |
|
|
|
• `{i}delpfp <n>(optional)` |
|
Delete one profile pic, if no value given, else delete n number of pics. |
|
|
|
• `{i}poto <username>/reply` |
|
`{i}poto <reply/upload-limit>/all` |
|
|
|
Ex: `{i}poto 10` - uploads starting 10 pfps of user. |
|
Upload the photo of Chat/User if Available. |
|
""" |
|
import os |
|
|
|
from telethon.tl.functions.account import UpdateProfileRequest |
|
from telethon.tl.functions.photos import DeletePhotosRequest, UploadProfilePhotoRequest |
|
|
|
from . import eod, eor, get_string, mediainfo, ultroid_cmd |
|
|
|
TMP_DOWNLOAD_DIRECTORY = "resources/downloads/" |
|
|
|
|
|
|
|
|
|
@ultroid_cmd(pattern="setbio( (.*)|$)", fullsudo=True) |
|
async def _(ult): |
|
ok = await ult.eor("...") |
|
set = ult.pattern_match.group(1).strip() |
|
try: |
|
await ult.client(UpdateProfileRequest(about=set)) |
|
await eod(ok, f"Profile bio changed to\n`{set}`") |
|
except Exception as ex: |
|
await eod(ok, f"Error occured.\n`{str(ex)}`") |
|
|
|
|
|
|
|
|
|
|
|
@ultroid_cmd(pattern="setname ?((.|//)*)", fullsudo=True) |
|
async def _(ult): |
|
ok = await ult.eor("...") |
|
names = first_name = ult.pattern_match.group(1).strip() |
|
last_name = "" |
|
if "//" in names: |
|
first_name, last_name = names.split("//", 1) |
|
try: |
|
await ult.client( |
|
UpdateProfileRequest( |
|
first_name=first_name, |
|
last_name=last_name, |
|
), |
|
) |
|
await eod(ok, f"Name changed to `{names}`") |
|
except Exception as ex: |
|
await eod(ok, f"Error occured.\n`{str(ex)}`") |
|
|
|
|
|
|
|
|
|
|
|
@ultroid_cmd(pattern="setpic$", fullsudo=True) |
|
async def _(ult): |
|
if not ult.is_reply: |
|
return await ult.eor("`Reply to a Media..`", time=5) |
|
reply_message = await ult.get_reply_message() |
|
ok = await ult.eor(get_string("com_1")) |
|
replfile = await reply_message.download_media() |
|
file = await ult.client.upload_file(replfile) |
|
try: |
|
if "pic" in mediainfo(reply_message.media): |
|
await ult.client(UploadProfilePhotoRequest(file=file)) |
|
else: |
|
await ult.client(UploadProfilePhotoRequest(video=file)) |
|
await eod(ok, "`My Profile Photo has Successfully Changed !`") |
|
except Exception as ex: |
|
await eod(ok, f"Error occured.\n`{str(ex)}`") |
|
os.remove(replfile) |
|
|
|
|
|
|
|
|
|
|
|
@ultroid_cmd(pattern="delpfp( (.*)|$)", fullsudo=True) |
|
async def remove_profilepic(delpfp): |
|
ok = await eor(delpfp, "`...`") |
|
group = delpfp.text[8:] |
|
if group == "all": |
|
lim = 0 |
|
elif group.isdigit(): |
|
lim = int(group) |
|
else: |
|
lim = 1 |
|
pfplist = await delpfp.client.get_profile_photos("me", limit=lim) |
|
await delpfp.client(DeletePhotosRequest(pfplist)) |
|
await eod(ok, f"`Successfully deleted {len(pfplist)} profile picture(s).`") |
|
|
|
|
|
@ultroid_cmd(pattern="poto( (.*)|$)") |
|
async def gpoto(e): |
|
ult = e.pattern_match.group(1).strip() |
|
|
|
if e.is_reply: |
|
gs = await e.get_reply_message() |
|
user_id = gs.sender_id |
|
elif ult: |
|
split = ult.split() |
|
user_id = split[0] |
|
if len(ult) > 1: |
|
ult = ult[-1] |
|
else: |
|
ult = None |
|
else: |
|
user_id = e.chat_id |
|
|
|
a = await e.eor(get_string("com_1")) |
|
limit = None |
|
|
|
just_dl = ult in ["-dl", "--dl"] |
|
if just_dl: |
|
ult = None |
|
|
|
if ult and ult != "all": |
|
try: |
|
limit = int(ult) |
|
except ValueError: |
|
pass |
|
|
|
if not limit or e.client._bot: |
|
okla = await e.client.download_profile_photo(user_id) |
|
else: |
|
okla = [] |
|
if limit == "all": |
|
limit = None |
|
async for photo in e.client.iter_profile_photos(user_id, limit=limit): |
|
photo_path = await e.client.download_media(photo) |
|
if photo.video_sizes: |
|
await e.respond(file=photo_path) |
|
os.remove(photo_path) |
|
else: |
|
okla.append(photo_path) |
|
if not okla: |
|
return await eor(a, "`Pfp Not Found...`") |
|
if not just_dl: |
|
await a.delete() |
|
await e.reply(file=okla) |
|
if not isinstance(okla, list): |
|
okla = [okla] |
|
for file in okla: |
|
os.remove(file) |
|
return |
|
if isinstance(okla, list): |
|
okla = "\n".join(okla) |
|
await a.edit(f"Downloaded pfp to [ `{okla}` ].") |
|
|