2021-10-26 14:57:44 +00:00
from cache . admins import admins
2021-10-29 18:55:54 +00:00
from config import BOT_USERNAME , GROUP_SUPPORT , IMG_3 , UPDATES_CHANNEL
from driver . decorators import authorized_users_only
2021-10-28 05:27:59 +00:00
from driver . filters import command , other_filters
2021-10-26 14:57:44 +00:00
from driver . queues import QUEUE , clear_queue
from driver . utils import skip_current_song , skip_item
2021-10-29 18:55:54 +00:00
from driver . veez import call_py
from pyrogram import Client
from pyrogram . types import InlineKeyboardButton , InlineKeyboardMarkup , Message
2021-10-26 14:57:44 +00:00
@Client.on_message ( command ( [ " reload " , f " reload@ { BOT_USERNAME } " ] ) & other_filters )
@authorized_users_only
async def update_admin ( client , message ) :
global admins
new_admins = [ ]
new_ads = await client . get_chat_members ( message . chat . id , filter = " administrators " )
for u in new_ads :
new_admins . append ( u . user . id )
admins [ message . chat . id ] = new_admins
await message . reply_text (
" ✅ Bot **reloaded correctly !** \n ✅ **Admin list** has been **updated !** "
)
2021-10-28 12:06:13 +00:00
@Client.on_message ( command ( [ " skip " , f " skip@ { BOT_USERNAME } " , " vskip " ] ) & other_filters )
2021-10-26 14:57:44 +00:00
@authorized_users_only
async def skip ( client , m : Message ) :
2021-10-29 18:55:54 +00:00
keyboard = InlineKeyboardMarkup (
[
2021-10-28 18:16:27 +00:00
[
2021-10-29 18:55:54 +00:00
InlineKeyboardButton (
text = " ✨ ɢʀᴏᴜᴘ " , url = f " https://t.me/ { GROUP_SUPPORT } "
) ,
InlineKeyboardButton (
text = " 🌻 ᴄʜᴀɴɴᴇʟ " , url = f " https://t.me/ { UPDATES_CHANNEL } "
) ,
2021-10-28 18:16:27 +00:00
]
2021-10-29 18:55:54 +00:00
]
)
chat_id = m . chat . id
if len ( m . command ) < 2 :
op = await skip_current_song ( chat_id )
if op == 0 :
await m . reply ( " ❌ nothing is currently playing " )
elif op == 1 :
await m . reply ( " ✅ __Queues__ is empty. \n \n • userbot leaving voice chat " )
else :
await m . reply_photo (
photo = f " { IMG_3 } " ,
2021-10-30 10:39:17 +00:00
caption = f " ⏭ **Skipped to the next track.** \n \n 🏷 **Name:** [ { op [ 0 ] } ]( { op [ 1 ] } ) \n 💭 **Chat:** ` { chat_id } ` \n 💡 **Status:** `Playing` \n 🎧 **Request by:** { m . from_user . mention ( ) } " ,
2021-10-29 18:55:54 +00:00
reply_markup = keyboard ,
)
else :
skip = m . text . split ( None , 1 ) [ 1 ]
OP = " 🗑 **removed song from queue:** "
if chat_id in QUEUE :
items = [ int ( x ) for x in skip . split ( " " ) if x . isdigit ( ) ]
items . sort ( reverse = True )
for x in items :
if x == 0 :
pass
else :
hm = await skip_item ( chat_id , x )
if hm == 0 :
pass
else :
OP = OP + " \n " + f " **# { x } ** - { hm } "
await m . reply ( OP )
2021-10-26 14:57:44 +00:00
2021-10-29 18:55:54 +00:00
@Client.on_message (
command ( [ " stop " , f " stop@ { BOT_USERNAME } " , " end " , f " end@ { BOT_USERNAME } " , " vstop " ] )
& other_filters
)
2021-10-26 14:57:44 +00:00
@authorized_users_only
async def stop ( client , m : Message ) :
2021-10-29 18:55:54 +00:00
chat_id = m . chat . id
if chat_id in QUEUE :
try :
await call_py . leave_group_call ( chat_id )
clear_queue ( chat_id )
await m . reply ( " ✅ **streaming has ended.** " )
except Exception as e :
await m . reply ( f " 🚫 **error:** \n \n ` { e } ` " )
else :
await m . reply ( " ❌ **nothing in streaming** " )
2021-10-26 14:57:44 +00:00
2021-10-29 18:55:54 +00:00
@Client.on_message (
command ( [ " pause " , f " pause@ { BOT_USERNAME } " , " vpause " ] ) & other_filters
)
2021-10-26 14:57:44 +00:00
@authorized_users_only
async def pause ( client , m : Message ) :
2021-10-29 18:55:54 +00:00
chat_id = m . chat . id
if chat_id in QUEUE :
try :
await call_py . pause_stream ( chat_id )
await m . reply (
" ⏸ **Track paused.** \n \n • **To resume the stream, use the** \n » /resume command. "
)
except Exception as e :
await m . reply ( f " 🚫 **error:** \n \n ` { e } ` " )
else :
await m . reply ( " ❌ **nothing in streaming** " )
2021-10-26 14:57:44 +00:00
2021-10-29 18:55:54 +00:00
@Client.on_message (
command ( [ " resume " , f " resume@ { BOT_USERNAME } " , " vresume " ] ) & other_filters
)
2021-10-26 14:57:44 +00:00
@authorized_users_only
async def resume ( client , m : Message ) :
2021-10-29 18:55:54 +00:00
chat_id = m . chat . id
if chat_id in QUEUE :
try :
await call_py . resume_stream ( chat_id )
await m . reply (
" ▶️ **Track resumed.** \n \n • **To pause the stream, use the** \n » /pause command. "
)
except Exception as e :
await m . reply ( f " 🚫 **error:** \n \n ` { e } ` " )
else :
await m . reply ( " ❌ **nothing in streaming** " )