2022-01-18 10:04:11 +00:00
|
|
|
|
# Copyright (C) 2021 By VeezMusicProject
|
|
|
|
|
|
|
|
|
|
from driver.queues import QUEUE
|
|
|
|
|
from pyrogram import Client, filters
|
2022-01-19 10:14:21 +00:00
|
|
|
|
from program.utils.inline import menu_markup
|
2022-01-18 10:04:11 +00:00
|
|
|
|
from pyrogram.types import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup
|
|
|
|
|
from config import (
|
|
|
|
|
ASSISTANT_NAME,
|
|
|
|
|
BOT_NAME,
|
|
|
|
|
BOT_USERNAME,
|
|
|
|
|
GROUP_SUPPORT,
|
|
|
|
|
OWNER_NAME,
|
|
|
|
|
UPDATES_CHANNEL,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbstart"))
|
|
|
|
|
async def cbstart(_, query: CallbackQuery):
|
2022-01-19 10:14:21 +00:00
|
|
|
|
await query.answer("home start")
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.edit_message_text(
|
|
|
|
|
f"""✨ **Welcome [{query.message.chat.first_name}](tg://user?id={query.message.chat.id}) !**\n
|
|
|
|
|
💭 **[{BOT_NAME}](https://t.me/{BOT_USERNAME}) allows you to play music and video on groups through the new Telegram's video chats!**
|
|
|
|
|
|
|
|
|
|
💡 **Find out all the Bot's commands and how they work by clicking on the » 📚 Commands button!**
|
|
|
|
|
|
|
|
|
|
🔖 **To know how to use this bot, please click on the » ❓ Basic Guide button!**""",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(
|
|
|
|
|
[
|
|
|
|
|
[
|
|
|
|
|
InlineKeyboardButton(
|
|
|
|
|
"➕ Add me to your Group ➕",
|
|
|
|
|
url=f"https://t.me/{BOT_USERNAME}?startgroup=true",
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
[InlineKeyboardButton("❓ Basic Guide", callback_data="cbhowtouse")],
|
|
|
|
|
[
|
|
|
|
|
InlineKeyboardButton("📚 Commands", callback_data="cbcmds"),
|
|
|
|
|
InlineKeyboardButton("❤ Donate", url=f"https://t.me/{OWNER_NAME}"),
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
InlineKeyboardButton(
|
|
|
|
|
"👥 Official Group", url=f"https://t.me/{GROUP_SUPPORT}"
|
|
|
|
|
),
|
|
|
|
|
InlineKeyboardButton(
|
|
|
|
|
"📣 Official Channel", url=f"https://t.me/{UPDATES_CHANNEL}"
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
InlineKeyboardButton(
|
|
|
|
|
"🌐 Source Code", url="https://github.com/levina-lab/video-stream"
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
disable_web_page_preview=True,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbhowtouse"))
|
|
|
|
|
async def cbguides(_, query: CallbackQuery):
|
2022-01-19 10:14:21 +00:00
|
|
|
|
await query.answer("user guide")
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.edit_message_text(
|
|
|
|
|
f"""❓ **Basic Guide for using this bot:**
|
|
|
|
|
|
|
|
|
|
1.) **First, add me to your group.**
|
|
|
|
|
2.) **Then, promote me as administrator and give all permissions except Anonymous Admin.**
|
|
|
|
|
3.) **After promoting me, type /reload in group to refresh the admin data.**
|
|
|
|
|
3.) **Add @{ASSISTANT_NAME} to your group or type /userbotjoin to invite her.**
|
|
|
|
|
4.) **Turn on the video chat first before start to play video/music.**
|
|
|
|
|
5.) **Sometimes, reloading the bot by using /reload command can help you to fix some problem.**
|
|
|
|
|
|
|
|
|
|
📌 **If the userbot not joined to video chat, make sure if the video chat already turned on, or type /userbotleave then type /userbotjoin again.**
|
|
|
|
|
|
|
|
|
|
💡 **If you have a follow-up questions about this bot, you can tell it on my support chat here: @{GROUP_SUPPORT}**
|
|
|
|
|
|
|
|
|
|
⚡ __Powered by {BOT_NAME} A.I__""",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(
|
|
|
|
|
[[InlineKeyboardButton("🔙 Go Back", callback_data="cbstart")]]
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbcmds"))
|
|
|
|
|
async def cbcmds(_, query: CallbackQuery):
|
2022-01-19 10:14:21 +00:00
|
|
|
|
await query.answer("commands menu")
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.edit_message_text(
|
|
|
|
|
f"""✨ **Hello [{query.message.chat.first_name}](tg://user?id={query.message.chat.id}) !**
|
|
|
|
|
|
|
|
|
|
» **press the button below to read the explanation and see the list of available commands !**
|
|
|
|
|
|
|
|
|
|
⚡ __Powered by {BOT_NAME} A.I__""",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(
|
|
|
|
|
[
|
|
|
|
|
[
|
|
|
|
|
InlineKeyboardButton("👷🏻 Admin Cmd", callback_data="cbadmin"),
|
|
|
|
|
InlineKeyboardButton("🧙🏻 Sudo Cmd", callback_data="cbsudo"),
|
|
|
|
|
],[
|
|
|
|
|
InlineKeyboardButton("📚 Basic Cmd", callback_data="cbbasic")
|
|
|
|
|
],[
|
|
|
|
|
InlineKeyboardButton("🔙 Go Back", callback_data="cbstart")
|
|
|
|
|
],
|
|
|
|
|
]
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbbasic"))
|
|
|
|
|
async def cbbasic(_, query: CallbackQuery):
|
2022-01-19 10:14:21 +00:00
|
|
|
|
await query.answer("basic commands")
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.edit_message_text(
|
|
|
|
|
f"""🏮 here is the basic commands:
|
|
|
|
|
|
|
|
|
|
» /play (song name/link) - play music on video chat
|
|
|
|
|
» /vplay (video name/link) - play video on video chat
|
|
|
|
|
» /vstream - play live video from yt live/m3u8
|
|
|
|
|
» /playlist - show you the playlist
|
|
|
|
|
» /video (query) - download video from youtube
|
|
|
|
|
» /song (query) - download song from youtube
|
|
|
|
|
» /lyric (query) - scrap the song lyric
|
|
|
|
|
» /search (query) - search a youtube video link
|
|
|
|
|
|
|
|
|
|
» /ping - show the bot ping status
|
|
|
|
|
» /uptime - show the bot uptime status
|
|
|
|
|
» /alive - show the bot alive info (in group)
|
|
|
|
|
|
|
|
|
|
⚡️ __Powered by {BOT_NAME} AI__""",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(
|
|
|
|
|
[[InlineKeyboardButton("🔙 Go Back", callback_data="cbcmds")]]
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbadmin"))
|
|
|
|
|
async def cbadmin(_, query: CallbackQuery):
|
2022-01-19 10:14:21 +00:00
|
|
|
|
await query.answer("admin commands")
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.edit_message_text(
|
|
|
|
|
f"""🏮 here is the admin commands:
|
|
|
|
|
|
|
|
|
|
» /pause - pause the stream
|
|
|
|
|
» /resume - resume the stream
|
|
|
|
|
» /skip - switch to next stream
|
|
|
|
|
» /stop - stop the streaming
|
|
|
|
|
» /vmute - mute the userbot on voice chat
|
|
|
|
|
» /vunmute - unmute the userbot on voice chat
|
|
|
|
|
» /volume `1-200` - adjust the volume of music (userbot must be admin)
|
|
|
|
|
» /reload - reload bot and refresh the admin data
|
|
|
|
|
» /userbotjoin - invite the userbot to join group
|
|
|
|
|
» /userbotleave - order userbot to leave from group
|
|
|
|
|
|
|
|
|
|
⚡️ __Powered by {BOT_NAME} AI__""",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(
|
|
|
|
|
[[InlineKeyboardButton("🔙 Go Back", callback_data="cbcmds")]]
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbsudo"))
|
|
|
|
|
async def cbsudo(_, query: CallbackQuery):
|
2022-01-19 10:14:21 +00:00
|
|
|
|
await query.answer("sudo commands")
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.edit_message_text(
|
|
|
|
|
f"""🏮 here is the sudo commands:
|
|
|
|
|
|
|
|
|
|
» /rmw - clean all raw files
|
|
|
|
|
» /rmd - clean all downloaded files
|
|
|
|
|
» /sysinfo - show the system information
|
|
|
|
|
» /update - update your bot to latest version
|
|
|
|
|
» /restart - restart your bot
|
|
|
|
|
» /leaveall - order userbot to leave from all group
|
|
|
|
|
|
|
|
|
|
⚡ __Powered by {BOT_NAME} AI__""",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(
|
|
|
|
|
[[InlineKeyboardButton("🔙 Go Back", callback_data="cbcmds")]]
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cbmenu"))
|
|
|
|
|
async def cbmenu(_, query: CallbackQuery):
|
|
|
|
|
a = await _.get_chat_member(query.message.chat.id, query.from_user.id)
|
|
|
|
|
if not a.can_manage_voice_chats:
|
2022-01-19 10:14:21 +00:00
|
|
|
|
return await query.answer("💡 Only admin with manage video chat permission that can tap this button !", show_alert=True)
|
2022-01-18 10:04:11 +00:00
|
|
|
|
chat_id = query.message.chat.id
|
2022-01-19 10:14:21 +00:00
|
|
|
|
user_id = query.message.from_user.id
|
|
|
|
|
buttons = menu_markup(user_id)
|
|
|
|
|
chat = query.message.chat.title
|
2022-01-18 10:04:11 +00:00
|
|
|
|
if chat_id in QUEUE:
|
|
|
|
|
await query.edit_message_text(
|
2022-01-19 10:14:21 +00:00
|
|
|
|
f"⚙️ **Settings of** {chat}\n\n⏸ : pause stream\n▶️ : resume stream\n🔇 : mute userbot\n🔊 : unmute userbot\n⏹ : stop stream",
|
|
|
|
|
reply_markup=InlineKeyboardMarkup(buttons)
|
2022-01-18 10:04:11 +00:00
|
|
|
|
else:
|
|
|
|
|
await query.answer("❌ nothing is currently streaming", show_alert=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Client.on_callback_query(filters.regex("cls"))
|
|
|
|
|
async def close(_, query: CallbackQuery):
|
|
|
|
|
a = await _.get_chat_member(query.message.chat.id, query.from_user.id)
|
|
|
|
|
if not a.can_manage_voice_chats:
|
2022-01-19 10:14:21 +00:00
|
|
|
|
return await query.answer("💡 Only admin with manage video chat permission that can tap this button !", show_alert=True)
|
2022-01-18 10:04:11 +00:00
|
|
|
|
await query.message.delete()
|