Spaces:
Runtime error
Runtime error
| import os | |
| import time | |
| from pyrogram.types import Message | |
| from Hellbot.functions.convert import convert_to_gif | |
| from Hellbot.functions.tools import runcmd | |
| from . import HelpMenu, hellbot, on_message, Config | |
| async def sticker_to_gif(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.sticker: | |
| return await hellbot.delete( | |
| message, "Reply to an animated/video sticker to convert it to gif." | |
| ) | |
| hell = await hellbot.edit(message, "Converting ...") | |
| replied_sticker = message.reply_to_message.sticker | |
| if replied_sticker.is_animated: | |
| is_video = False | |
| elif replied_sticker.is_video: | |
| is_video = True | |
| else: | |
| return await hellbot.delete(hell, "Reply to an animated/video sticker.") | |
| dwl_path = await message.reply_to_message.download(Config.TEMP_DIR) | |
| gif_path = await convert_to_gif(dwl_path, is_video) | |
| await message.reply_animation(gif_path) | |
| await hellbot.delete(hell, "Converted to gif successfully!") | |
| os.remove(dwl_path) | |
| os.remove(gif_path) | |
| async def sticker_to_image(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.sticker: | |
| return await hellbot.delete( | |
| message, "Reply to an sticker to convert it to image." | |
| ) | |
| hell = await hellbot.edit(message, "Converting ...") | |
| fileName = f"image_{round(time.time())}.png" | |
| dwl_path = await message.reply_to_message.download(f"{Config.TEMP_DIR}{fileName}") | |
| await message.reply_photo(dwl_path) | |
| await hellbot.delete(hell, "Converted to image successfully!") | |
| os.remove(dwl_path) | |
| async def image_to_sticker(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.photo: | |
| return await hellbot.delete( | |
| message, "Reply to an image to convert it to sticker." | |
| ) | |
| hell = await hellbot.edit(message, "Converting ...") | |
| fileName = f"sticker_{round(time.time())}.webp" | |
| dwl_path = await message.reply_to_message.download(f"{Config.TEMP_DIR}{fileName}") | |
| await message.reply_sticker(dwl_path) | |
| await hellbot.delete(hell, "Converted to sticker successfully!") | |
| os.remove(dwl_path) | |
| async def file_to_image(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.document: | |
| return await hellbot.delete(message, "Reply to a file to convert it to image.") | |
| if message.reply_to_message.document.mime_type.split("/")[0] != "image": | |
| return await hellbot.delete(message, "Reply to an image file.") | |
| hell = await hellbot.edit(message, "Converting ...") | |
| fileName = f"image_{round(time.time())}.png" | |
| dwl_path = await message.reply_to_message.download(f"{Config.TEMP_DIR}{fileName}") | |
| await message.reply_photo(dwl_path) | |
| await hellbot.delete(hell, "Converted to image successfully!") | |
| os.remove(dwl_path) | |
| async def image_to_file(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.photo: | |
| return await hellbot.delete(message, "Reply to an image to convert it to file.") | |
| hell = await hellbot.edit(message, "Converting ...") | |
| fileName = f"file_{round(time.time())}.png" | |
| dwl_path = await message.reply_to_message.download(f"{Config.TEMP_DIR}{fileName}") | |
| await message.reply_document(dwl_path) | |
| await hellbot.delete(hell, "Converted to file successfully!") | |
| os.remove(dwl_path) | |
| async def media_to_voice(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.media: | |
| return await hellbot.delete(message, "Reply to a media to convert it to voice.") | |
| hell = await hellbot.edit(message, "Converting ...") | |
| dwl_path = await message.reply_to_message.download(f"{Config.TEMP_DIR}") | |
| voice_path = f"{round(time.time())}.ogg" | |
| cmd_list = [ | |
| "ffmpeg", | |
| "-i", | |
| dwl_path, | |
| "-map", | |
| "0:a", | |
| "-codec:a", | |
| "libopus", | |
| "-b:a", | |
| "100k", | |
| "-vbr", | |
| "on", | |
| voice_path, | |
| ] | |
| _, err, _, _ = await runcmd(" ".join(cmd_list)) | |
| if os.path.exists(voice_path): | |
| await message.reply_voice(voice_path) | |
| await hellbot.delete(hell, "Converted to voice successfully!") | |
| os.remove(voice_path) | |
| else: | |
| await hellbot.error(hell, f"`{err}`") | |
| os.remove(dwl_path) | |
| async def media_to_mp3(_, message: Message): | |
| if not message.reply_to_message or not message.reply_to_message.media: | |
| return await hellbot.delete(message, "Reply to a media to convert it to mp3.") | |
| hell = await hellbot.edit(message, "Converting ...") | |
| dwl_path = await message.reply_to_message.download(f"{Config.TEMP_DIR}") | |
| mp3_path = f"{round(time.time())}.mp3" | |
| cmd_list = [ | |
| "ffmpeg", | |
| "-i", | |
| dwl_path, | |
| "-vn", | |
| mp3_path, | |
| ] | |
| _, stderr, _, _ = await runcmd(" ".join(cmd_list)) | |
| if os.path.exists(mp3_path): | |
| await message.reply_audio(mp3_path) | |
| await hellbot.delete(hell, "Converted to mp3 successfully!") | |
| os.remove(mp3_path) | |
| else: | |
| await hellbot.error(hell, f"`{stderr}`") | |
| os.remove(dwl_path) | |
| HelpMenu("convert").add( | |
| "stog", #Bugged: to-be-fixed | |
| "<reply>", | |
| "Converts animated sticker to gif.", | |
| None, | |
| "Only animated sticker and video sticker can be converted to gif.", | |
| ).add( | |
| "stoi", | |
| "<reply>", | |
| "Converts sticker to image.", | |
| None, | |
| "Only static stickers can be converted to image.", | |
| ).add( | |
| "itos", | |
| "<reply>", | |
| "Converts image to sticker.", | |
| None, | |
| "Only images can be converted to sticker.", | |
| ).add( | |
| "ftoi", | |
| "<reply>", | |
| "Converts file to image.", | |
| None, | |
| "Only image files can be converted to image.", | |
| ).add( | |
| "itof", | |
| "<reply>", | |
| "Converts image to file.", | |
| None, | |
| "Only images can be converted to file.", | |
| ).add( | |
| "tovoice", | |
| "<reply>", | |
| "Converts media to voice.", | |
| None, | |
| "Only video/audio can be converted to voice.", | |
| ).add( | |
| "tomp3", | |
| "<reply>", | |
| "Converts media to mp3.", | |
| None, | |
| "Only video/audio can be converted to mp3.", | |
| ).info( | |
| "Converts media to other formats." | |
| ).done() | |