|
from pyrogram import filters |
|
from pyrogram.types import Message |
|
|
|
from DragMusic import app |
|
from DragMusic.core.call import Drag |
|
from DragMusic.misc import SUDOERS, db |
|
from DragMusic.utils import AdminRightsCheck |
|
from DragMusic.utils.database import is_active_chat, is_nonadmin_chat |
|
from DragMusic.utils.decorators.language import languageCB |
|
from DragMusic.utils.inline import close_markup, speed_markup |
|
from config import BANNED_USERS, adminlist |
|
|
|
checker = [] |
|
|
|
|
|
@app.on_message( |
|
filters.command(["cspeed", "speed", "cslow", "slow", "playback", "cplayback"]) |
|
& filters.group |
|
& ~BANNED_USERS |
|
) |
|
@AdminRightsCheck |
|
async def playback(cli, message: Message, _, chat_id): |
|
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_27"]) |
|
file_path = playing[0]["file"] |
|
if "downloads" not in file_path: |
|
return await message.reply_text(_["admin_27"]) |
|
upl = speed_markup(_, chat_id) |
|
return await message.reply_text( |
|
text=_["admin_28"].format(app.mention), |
|
reply_markup=upl, |
|
) |
|
|
|
|
|
@app.on_callback_query(filters.regex("SpeedUP") & ~BANNED_USERS) |
|
@languageCB |
|
async def del_back_playlist(client, CallbackQuery, _): |
|
callback_data = CallbackQuery.data.strip() |
|
callback_request = callback_data.split(None, 1)[1] |
|
chat, speed = callback_request.split("|") |
|
chat_id = int(chat) |
|
if not await is_active_chat(chat_id): |
|
return await CallbackQuery.answer(_["general_5"], show_alert=True) |
|
is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
|
if not is_non_admin: |
|
if CallbackQuery.from_user.id not in SUDOERS: |
|
admins = adminlist.get(CallbackQuery.message.chat.id) |
|
if not admins: |
|
return await CallbackQuery.answer(_["admin_13"], show_alert=True) |
|
else: |
|
if CallbackQuery.from_user.id not in admins: |
|
return await CallbackQuery.answer(_["admin_14"], show_alert=True) |
|
playing = db.get(chat_id) |
|
if not playing: |
|
return await CallbackQuery.answer(_["queue_2"], show_alert=True) |
|
duration_seconds = int(playing[0]["seconds"]) |
|
if duration_seconds == 0: |
|
return await CallbackQuery.answer(_["admin_27"], show_alert=True) |
|
file_path = playing[0]["file"] |
|
if "downloads" not in file_path: |
|
return await CallbackQuery.answer(_["admin_27"], show_alert=True) |
|
checkspeed = (playing[0]).get("speed") |
|
if checkspeed: |
|
if str(checkspeed) == str(speed): |
|
if str(speed) == str("1.0"): |
|
return await CallbackQuery.answer( |
|
_["admin_29"], |
|
show_alert=True, |
|
) |
|
else: |
|
if str(speed) == str("1.0"): |
|
return await CallbackQuery.answer( |
|
_["admin_29"], |
|
show_alert=True, |
|
) |
|
if chat_id in checker: |
|
return await CallbackQuery.answer( |
|
_["admin_30"], |
|
show_alert=True, |
|
) |
|
else: |
|
checker.append(chat_id) |
|
try: |
|
await CallbackQuery.answer( |
|
_["admin_31"], |
|
) |
|
except: |
|
pass |
|
mystic = await CallbackQuery.edit_message_text( |
|
text=_["admin_32"].format(CallbackQuery.from_user.mention), |
|
) |
|
try: |
|
await Drag.speedup_stream( |
|
chat_id, |
|
file_path, |
|
speed, |
|
playing, |
|
) |
|
except: |
|
if chat_id in checker: |
|
checker.remove(chat_id) |
|
return await mystic.edit_text(_["admin_33"], reply_markup=close_markup(_)) |
|
if chat_id in checker: |
|
checker.remove(chat_id) |
|
await mystic.edit_text( |
|
text=_["admin_34"].format(speed, CallbackQuery.from_user.mention), |
|
reply_markup=close_markup(_), |
|
) |
|
|