File size: 3,908 Bytes
a8e9b84 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
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(_),
)
|