|
import os |
|
import time |
|
from pyrogram.types import * |
|
from pyrogram import * |
|
from pyrogram.errors import * |
|
from akn import log_detailed_error |
|
from akn.utils.handler import * |
|
from akn.utils.scripts import progress |
|
from akn.utils.prefixprem import command |
|
from config import * |
|
|
|
custom_loading = "<emoji id=5974235702701853774>๐ฟ</emoji>" |
|
|
|
@Akeno( |
|
~filters.scheduled |
|
& command(["hpyer", "hyper", "hek"]) |
|
& filters.me |
|
& ~filters.forwarded |
|
) |
|
async def hyperok(client: Client, message: Message): |
|
link = message.text.split(" ", 1)[1] if len(message.command) > 1 else None |
|
if not link: |
|
return |
|
then_do = link.split("/") |
|
developed_by_me = int(then_do[-1]) |
|
text = f">> [{developed_by_me}]({link})" |
|
await message.edit_text(text, disable_web_page_preview=True) |
|
|
|
@Akeno( |
|
~filters.scheduled |
|
& command(["copy"]) |
|
& filters.me |
|
& ~filters.forwarded |
|
) |
|
async def get_story_dl(client: Client, message: Message): |
|
command, *options = message.text.split(" ", 2) if message.command else [None, []] |
|
if client.me.is_premium: |
|
pro = await message.reply_text(f"{custom_loading}Processing...") |
|
else: |
|
pro = await message.reply_text("Processing...") |
|
if not command: |
|
await pro.edit_text("Invalid command") |
|
return |
|
copy_chat = False |
|
copy_story = False |
|
for option in options: |
|
if option == "-c": |
|
copy_chat = True |
|
elif option == "-s": |
|
copy_story = True |
|
text_link = options[-1] if options else None |
|
if not text_link or not text_link.startswith("https://t.me/"): |
|
await pro.edit_text("Invalid story or copy(chats) link") |
|
return |
|
try: |
|
target_link = text_link.split("/c/") if "/c/" in text_link else text_link.split("/") |
|
random_id = int(target_link[-1].split("/")[-1]) if len(target_link) > 1 else None |
|
desired_username = target_link[3] if len(target_link) > 3 else None |
|
username = "@" + desired_username if desired_username else "-100" + target_link[1].split("/")[0] if len(target_link) > 1 else None |
|
if copy_chat and copy_story: |
|
await pro.edit_text("Invalid options. Choose either -c or -s.") |
|
return |
|
elif copy_chat: |
|
await client.copy_message(message.chat.id, from_chat_id=username, message_id=random_id, protect_content=True) |
|
await pro.delete() |
|
elif copy_story: |
|
stories = await client.get_stories(username, story_ids=[random_id]) |
|
if stories: |
|
for story in stories: |
|
file_id = ( |
|
story.photo.file_id if story and story.photo else None |
|
or story.video.file_id if story and story.video else None |
|
) |
|
caption = story.caption or f"By {client.me.mention}" |
|
if file_id: |
|
documents = await client.download_media(file_id) |
|
if documents.endswith((".mp4", ".gif")): |
|
send_function = client.send_video |
|
else: |
|
send_function = client.send_photo |
|
seconds_time = time.time() |
|
await send_function( |
|
message.chat.id, |
|
documents, |
|
caption=caption, |
|
progress=progress, |
|
progress_args=(pro, seconds_time, "Processing...") |
|
|
|
) |
|
await pro.delete() |
|
os.remove(documents) |
|
else: |
|
await pro.edit_text(f"Error: No stories found for {username}") |
|
else: |
|
await pro.edit_text("Invalid options. Choose either -c or -s.") |
|
except ValueError as e: |
|
await pro.edit_text(f"Error parsing for {username}: {e}") |
|
except ChatWriteForbidden as e: |
|
await pro.edit_text(f"Error: Bot doesn't have permission to write in the channel {username}") |
|
except UserIsBlocked as e: |
|
await pro.edit_text(f"Error: Bot is blocked by the user {username}") |
|
except Exception as e: |
|
await log_detailed_error(e, where=client.me.id, who=message.chat.title) |
|
await pro.edit_text(f"Error retrieving or sending for {username}: {e}") |
|
|
|
module = modules_help.add_module("storydl", __file__) |
|
module.add_command("copy -c", "to copy chat group link") |
|
module.add_command("copy -s", "to copy story link") |
|
|