from pyrogram import filters from pyrogram.types import Message from DragMusic import YouTube, app from DragMusic.core.call import Drag from DragMusic.misc import db from DragMusic.utils import AdminRightsCheck, seconds_to_min from DragMusic.utils.inline import close_markup from config import BANNED_USERS @app.on_message( filters.command(["seek", "cseek", "seekback", "cseekback"]) & filters.group & ~BANNED_USERS ) @AdminRightsCheck async def seek_comm(cli, message: Message, _, chat_id): if len(message.command) == 1: return await message.reply_text(_["admin_20"]) query = message.text.split(None, 1)[1].strip() if not query.isnumeric(): return await message.reply_text(_["admin_21"]) playing = db.get(chat_id) if not playing: return await message.reply_text(_["queue_2"]) duration_seconds = int(playing[0]["seconds"]) if duration_seconds == 0: return await message.reply_text(_["admin_22"]) file_path = playing[0]["file"] duration_played = int(playing[0]["played"]) duration_to_skip = int(query) duration = playing[0]["dur"] if message.command[0][-2] == "c": if (duration_played - duration_to_skip) <= 10: return await message.reply_text( text=_["admin_23"].format(seconds_to_min(duration_played), duration), reply_markup=close_markup(_), ) to_seek = duration_played - duration_to_skip + 1 else: if (duration_seconds - (duration_played + duration_to_skip)) <= 10: return await message.reply_text( text=_["admin_23"].format(seconds_to_min(duration_played), duration), reply_markup=close_markup(_), ) to_seek = duration_played + duration_to_skip + 1 mystic = await message.reply_text(_["admin_24"]) if "vid_" in file_path: n, file_path = await YouTube.video(playing[0]["vidid"], True) if n == 0: return await message.reply_text(_["admin_22"]) check = (playing[0]).get("speed_path") if check: file_path = check if "index_" in file_path: file_path = playing[0]["vidid"] try: await Drag.seek_stream( chat_id, file_path, seconds_to_min(to_seek), duration, playing[0]["streamtype"], ) except: return await mystic.edit_text(_["admin_26"], reply_markup=close_markup(_)) if message.command[0][-2] == "c": db[chat_id][0]["played"] -= duration_to_skip else: db[chat_id][0]["played"] += duration_to_skip await mystic.edit_text( text=_["admin_25"].format(seconds_to_min(to_seek), message.from_user.mention), reply_markup=close_markup(_), )