Spaces:
Runtime error
Runtime error
| from pyrogram import filters | |
| from pyrogram.types import InlineKeyboardMarkup, Message | |
| import config | |
| from Devine import YouTube, app | |
| from Devine.core.call import Anony | |
| from Devine.misc import db | |
| from Devine.utils.database import get_loop | |
| from Devine.utils.decorators import AdminRightsCheck | |
| from Devine.utils.inline import close_markup, stream_markup | |
| from Devine.utils.stream.autoclear import auto_clean | |
| from Devine.utils.thumbnails import get_thumb | |
| from config import BANNED_USERS | |
| async def skip(cli, message: Message, _, chat_id): | |
| if not len(message.command) < 2: | |
| loop = await get_loop(chat_id) | |
| if loop != 0: | |
| return await message.reply_text(_["admin_8"]) | |
| state = message.text.split(None, 1)[1].strip() | |
| if state.isnumeric(): | |
| state = int(state) | |
| check = db.get(chat_id) | |
| if check: | |
| count = len(check) | |
| if count > 2: | |
| count = int(count - 1) | |
| if 1 <= state <= count: | |
| for x in range(state): | |
| popped = None | |
| try: | |
| popped = check.pop(0) | |
| except: | |
| return await message.reply_text(_["admin_12"]) | |
| if popped: | |
| await auto_clean(popped) | |
| if not check: | |
| try: | |
| await message.reply_text( | |
| text=_["admin_6"].format( | |
| message.from_user.mention, | |
| message.chat.title, | |
| ), | |
| reply_markup=close_markup(_), | |
| ) | |
| await Anony.stop_stream(chat_id) | |
| except: | |
| return | |
| break | |
| else: | |
| return await message.reply_text(_["admin_11"].format(count)) | |
| else: | |
| return await message.reply_text(_["admin_10"]) | |
| else: | |
| return await message.reply_text(_["queue_2"]) | |
| else: | |
| return await message.reply_text(_["admin_9"]) | |
| else: | |
| check = db.get(chat_id) | |
| popped = None | |
| try: | |
| popped = check.pop(0) | |
| if popped: | |
| await auto_clean(popped) | |
| if not check: | |
| await message.reply_text( | |
| text=_["admin_6"].format( | |
| message.from_user.mention, message.chat.title | |
| ), | |
| reply_markup=close_markup(_), | |
| ) | |
| try: | |
| return await Anony.stop_stream(chat_id) | |
| except: | |
| return | |
| except: | |
| try: | |
| await message.reply_text( | |
| text=_["admin_6"].format( | |
| message.from_user.mention, message.chat.title | |
| ), | |
| reply_markup=close_markup(_), | |
| ) | |
| return await Anony.stop_stream(chat_id) | |
| except: | |
| return | |
| queued = check[0]["file"] | |
| title = (check[0]["title"]).title() | |
| user = check[0]["by"] | |
| streamtype = check[0]["streamtype"] | |
| videoid = check[0]["vidid"] | |
| status = True if str(streamtype) == "video" else None | |
| db[chat_id][0]["played"] = 0 | |
| exis = (check[0]).get("old_dur") | |
| if exis: | |
| db[chat_id][0]["dur"] = exis | |
| db[chat_id][0]["seconds"] = check[0]["old_second"] | |
| db[chat_id][0]["speed_path"] = None | |
| db[chat_id][0]["speed"] = 1.0 | |
| if "live_" in queued: | |
| n, link = await YouTube.video(videoid, True) | |
| if n == 0: | |
| return await message.reply_text(_["admin_7"].format(title)) | |
| try: | |
| image = await YouTube.thumbnail(videoid, True) | |
| except: | |
| image = None | |
| try: | |
| await Anony.skip_stream(chat_id, link, video=status, image=image) | |
| except: | |
| return await message.reply_text(_["call_6"]) | |
| button = stream_markup(_, chat_id) | |
| img = await get_thumb(videoid) | |
| run = await message.reply_photo( | |
| photo=img, | |
| caption=_["stream_1"].format( | |
| f"https://t.me/{app.username}?start=info_{videoid}", | |
| title[:23], | |
| check[0]["dur"], | |
| user, | |
| ), | |
| reply_markup=InlineKeyboardMarkup(button), | |
| ) | |
| db[chat_id][0]["mystic"] = run | |
| db[chat_id][0]["markup"] = "tg" | |
| elif "vid_" in queued: | |
| mystic = await message.reply_text(_["call_7"], disable_web_page_preview=True) | |
| try: | |
| file_path, direct = await YouTube.download( | |
| videoid, | |
| mystic, | |
| videoid=True, | |
| video=status, | |
| ) | |
| except: | |
| return await mystic.edit_text(_["call_6"]) | |
| try: | |
| image = await YouTube.thumbnail(videoid, True) | |
| except: | |
| image = None | |
| try: | |
| await Anony.skip_stream(chat_id, file_path, video=status, image=image) | |
| except: | |
| return await mystic.edit_text(_["call_6"]) | |
| button = stream_markup(_, chat_id) | |
| img = await get_thumb(videoid) | |
| run = await message.reply_photo( | |
| photo=img, | |
| caption=_["stream_1"].format( | |
| f"https://t.me/{app.username}?start=info_{videoid}", | |
| title[:23], | |
| check[0]["dur"], | |
| user, | |
| ), | |
| reply_markup=InlineKeyboardMarkup(button), | |
| ) | |
| db[chat_id][0]["mystic"] = run | |
| db[chat_id][0]["markup"] = "stream" | |
| await mystic.delete() | |
| elif "index_" in queued: | |
| try: | |
| await Anony.skip_stream(chat_id, videoid, video=status) | |
| except: | |
| return await message.reply_text(_["call_6"]) | |
| button = stream_markup(_, chat_id) | |
| run = await message.reply_photo( | |
| photo=config.STREAM_IMG_URL, | |
| caption=_["stream_2"].format(user), | |
| reply_markup=InlineKeyboardMarkup(button), | |
| ) | |
| db[chat_id][0]["mystic"] = run | |
| db[chat_id][0]["markup"] = "tg" | |
| else: | |
| if videoid == "telegram": | |
| image = None | |
| elif videoid == "soundcloud": | |
| image = None | |
| else: | |
| try: | |
| image = await YouTube.thumbnail(videoid, True) | |
| except: | |
| image = None | |
| try: | |
| await Anony.skip_stream(chat_id, queued, video=status, image=image) | |
| except: | |
| return await message.reply_text(_["call_6"]) | |
| if videoid == "telegram": | |
| button = stream_markup(_, chat_id) | |
| run = await message.reply_photo( | |
| photo=config.TELEGRAM_AUDIO_URL | |
| if str(streamtype) == "audio" | |
| else config.TELEGRAM_VIDEO_URL, | |
| caption=_["stream_1"].format( | |
| config.SUPPORT_CHAT, title[:23], check[0]["dur"], user | |
| ), | |
| reply_markup=InlineKeyboardMarkup(button), | |
| ) | |
| db[chat_id][0]["mystic"] = run | |
| db[chat_id][0]["markup"] = "tg" | |
| elif videoid == "soundcloud": | |
| button = stream_markup(_, chat_id) | |
| run = await message.reply_photo( | |
| photo=config.SOUNCLOUD_IMG_URL | |
| if str(streamtype) == "audio" | |
| else config.TELEGRAM_VIDEO_URL, | |
| caption=_["stream_1"].format( | |
| config.SUPPORT_CHAT, title[:23], check[0]["dur"], user | |
| ), | |
| reply_markup=InlineKeyboardMarkup(button), | |
| ) | |
| db[chat_id][0]["mystic"] = run | |
| db[chat_id][0]["markup"] = "tg" | |
| else: | |
| button = stream_markup(_, chat_id) | |
| img = await get_thumb(videoid) | |
| run = await message.reply_photo( | |
| photo=img, | |
| caption=_["stream_1"].format( | |
| f"https://t.me/{app.username}?start=info_{videoid}", | |
| title[:23], | |
| check[0]["dur"], | |
| user, | |
| ), | |
| reply_markup=InlineKeyboardMarkup(button), | |
| ) | |
| db[chat_id][0]["mystic"] = run | |
| db[chat_id][0]["markup"] = "stream" | |