dragxd / plugins /ziptools.py
taslim19
Push entire Ultroid-main project to Hugging Face Space
1f26706
raw
history blame
5.07 kB
# 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/>.
"""
✘ Commands Available
• `{i}zip <reply to file>`
zip the replied file
To set password on zip: `{i}zip <password>` reply to file
• `{i}unzip <reply to zip file>`
unzip the replied file.
• `{i}azip <reply to file>`
add file to batch for batch upload zip
• `{i}dozip`
upload batch zip the files u added from `{i}azip`
To set Password: `{i}dozip <password>`
"""
import os
import time
from . import (
HNDLR,
ULTConfig,
asyncio,
bash,
downloader,
get_all_files,
get_string,
ultroid_cmd,
uploader,
)
@ultroid_cmd(pattern="zip( (.*)|$)")
async def zipp(event):
reply = await event.get_reply_message()
t = time.time()
if not reply:
await event.eor(get_string("zip_1"))
return
xx = await event.eor(get_string("com_1"))
if reply.media:
if hasattr(reply.media, "document"):
file = reply.media.document
image = await downloader(
reply.file.name, reply.media.document, xx, t, get_string("com_5")
)
file = image.name
else:
file = await event.download_media(reply)
inp = file.replace(file.split(".")[-1], "zip")
if event.pattern_match.group(1).strip():
await bash(
f"zip -r --password {event.pattern_match.group(1).strip()} {inp} {file}"
)
else:
await bash(f"zip -r {inp} {file}")
k = time.time()
n_file, _ = await event.client.fast_uploader(
inp, show_progress=True, event=event, message="Uploading...", to_delete=True
)
await event.client.send_file(
event.chat_id,
n_file,
force_document=True,
thumb=ULTConfig.thumb,
caption=f"`{n_file.name}`",
reply_to=reply,
)
os.remove(inp)
os.remove(file)
await xx.delete()
@ultroid_cmd(pattern="unzip( (.*)|$)")
async def unzipp(event):
reply = await event.get_reply_message()
file = event.pattern_match.group(1).strip()
t = time.time()
if not ((reply and reply.media) or file):
await event.eor(get_string("zip_1"))
return
xx = await event.eor(get_string("com_1"))
if reply.media:
if not hasattr(reply.media, "document"):
return await xx.edit(get_string("zip_3"))
file = reply.media.document
if not reply.file.name.endswith(("zip", "rar", "exe")):
return await xx.edit(get_string("zip_3"))
image = await downloader(
reply.file.name, reply.media.document, xx, t, get_string("com_5")
)
file = image.name
if os.path.isdir("unzip"):
await bash("rm -rf unzip")
os.mkdir("unzip")
await bash(f"7z x {file} -aoa -ounzip")
await asyncio.sleep(4)
ok = get_all_files("unzip")
for x in ok:
k = time.time()
n_file, _ = await event.client.fast_uploader(
x, show_progress=True, event=event, message="Uploading...", to_delete=True
)
await event.client.send_file(
event.chat_id,
n_file,
force_document=True,
thumb=ULTConfig.thumb,
caption=f"`{n_file.name}`",
)
await xx.delete()
@ultroid_cmd(pattern="addzip$")
async def azipp(event):
reply = await event.get_reply_message()
t = time.time()
if not (reply and reply.media):
await event.eor(get_string("zip_1"))
return
xx = await event.eor(get_string("com_1"))
if not os.path.isdir("zip"):
os.mkdir("zip")
if reply.media:
if hasattr(reply.media, "document"):
file = reply.media.document
image = await downloader(
f"zip/{reply.file.name}",
reply.media.document,
xx,
t,
get_string("com_5"),
)
file = image.name
else:
file = await event.download_media(reply.media, "zip/")
await xx.edit(
f"Downloaded `{file}` succesfully\nNow Reply To Other Files To Add And Zip all at once"
)
@ultroid_cmd(pattern="dozip( (.*)|$)")
async def do_zip(event):
if not os.path.isdir("zip"):
return await event.eor(get_string("zip_2").format(HNDLR))
xx = await event.eor(get_string("com_1"))
if event.pattern_match.group(1).strip():
await bash(
f"zip -r --password {event.pattern_match.group(1).strip()} ultroid.zip zip/*"
)
else:
await bash("zip -r ultroid.zip zip/*")
k = time.time()
xxx = await uploader("ultroid.zip", "ultroid.zip", k, xx, get_string("com_6"))
await event.client.send_file(
event.chat_id,
xxx,
force_document=True,
thumb=ULTConfig.thumb,
)
await bash("rm -rf zip")
os.remove("ultroid.zip")
await xx.delete()