taslim19
MusicV2
a8e9b84
raw
history blame
2.78 kB
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(_),
)