| | from pyrogram import filters |
| | from pyrogram.enums import ChatType |
| | from pyrogram.errors import MessageNotModified |
| | from pyrogram.types import ( |
| | CallbackQuery, |
| | InlineKeyboardButton, |
| | InlineKeyboardMarkup, |
| | Message, |
| | ) |
| |
|
| | from Devine import app |
| | from Devine.utils.database import ( |
| | add_nonadmin_chat, |
| | get_authuser, |
| | get_authuser_names, |
| | get_playmode, |
| | get_playtype, |
| | get_upvote_count, |
| | is_nonadmin_chat, |
| | is_skipmode, |
| | remove_nonadmin_chat, |
| | set_playmode, |
| | set_playtype, |
| | set_upvotes, |
| | skip_off, |
| | skip_on, |
| | ) |
| | from Devine.utils.decorators.admins import ActualAdminCB |
| | from Devine.utils.decorators.language import language, languageCB |
| | from Devine.utils.inline.settings import ( |
| | auth_users_markup, |
| | playmode_users_markup, |
| | setting_markup, |
| | vote_mode_markup, |
| | ) |
| | from Devine.utils.inline.start import private_panel |
| | from config import BANNED_USERS, OWNER_ID |
| |
|
| |
|
| | @app.on_message( |
| | filters.command(["musucsettings", "musicsetting"]) & filters.group & ~BANNED_USERS |
| | ) |
| | @language |
| | async def settings_mar(client, message: Message, _): |
| | buttons = setting_markup(_) |
| | await message.reply_text( |
| | _["setting_1"].format(app.mention, message.chat.id, message.chat.title), |
| | reply_markup=InlineKeyboardMarkup(buttons), |
| | ) |
| |
|
| |
|
| | @app.on_callback_query(filters.regex("settings_helper") & ~BANNED_USERS) |
| | @languageCB |
| | async def settings_cb(client, CallbackQuery, _): |
| | try: |
| | await CallbackQuery.answer(_["set_cb_5"]) |
| | except: |
| | pass |
| | buttons = setting_markup(_) |
| | return await CallbackQuery.edit_message_text( |
| | _["setting_1"].format( |
| | app.mention, |
| | CallbackQuery.message.chat.id, |
| | CallbackQuery.message.chat.title, |
| | ), |
| | reply_markup=InlineKeyboardMarkup(buttons), |
| | ) |
| |
|
| |
|
| | @app.on_callback_query(filters.regex("settingsback_helper") & ~BANNED_USERS) |
| | @languageCB |
| | async def settings_back_markup(client, CallbackQuery: CallbackQuery, _): |
| | try: |
| | await CallbackQuery.answer() |
| | except: |
| | pass |
| | if CallbackQuery.message.chat.type == ChatType.PRIVATE: |
| | await app.resolve_peer(OWNER_ID) |
| | OWNER = OWNER_ID |
| | buttons = private_panel(_) |
| | return await CallbackQuery.edit_message_text( |
| | _["start_2"].format(CallbackQuery.from_user.mention, app.mention), |
| | reply_markup=InlineKeyboardMarkup(buttons), |
| | ) |
| | else: |
| | buttons = setting_markup(_) |
| | return await CallbackQuery.edit_message_reply_markup( |
| | reply_markup=InlineKeyboardMarkup(buttons) |
| | ) |
| |
|
| |
|
| | @app.on_callback_query( |
| | filters.regex( |
| | pattern=r"^(SEARCHANSWER|PLAYMODEANSWER|PLAYTYPEANSWER|AUTHANSWER|ANSWERVOMODE|VOTEANSWER|PM|AU|VM)$" |
| | ) |
| | & ~BANNED_USERS |
| | ) |
| | @languageCB |
| | async def without_Admin_rights(client, CallbackQuery, _): |
| | command = CallbackQuery.matches[0].group(1) |
| | if command == "SEARCHANSWER": |
| | try: |
| | return await CallbackQuery.answer(_["setting_2"], show_alert=True) |
| | except: |
| | return |
| | if command == "PLAYMODEANSWER": |
| | try: |
| | return await CallbackQuery.answer(_["setting_5"], show_alert=True) |
| | except: |
| | return |
| | if command == "PLAYTYPEANSWER": |
| | try: |
| | return await CallbackQuery.answer(_["setting_6"], show_alert=True) |
| | except: |
| | return |
| | if command == "AUTHANSWER": |
| | try: |
| | return await CallbackQuery.answer(_["setting_3"], show_alert=True) |
| | except: |
| | return |
| | if command == "VOTEANSWER": |
| | try: |
| | return await CallbackQuery.answer( |
| | _["setting_8"], |
| | show_alert=True, |
| | ) |
| | except: |
| | return |
| | if command == "ANSWERVOMODE": |
| | current = await get_upvote_count(CallbackQuery.message.chat.id) |
| | try: |
| | return await CallbackQuery.answer( |
| | _["setting_9"].format(current), |
| | show_alert=True, |
| | ) |
| | except: |
| | return |
| | if command == "PM": |
| | try: |
| | await CallbackQuery.answer(_["set_cb_2"], show_alert=True) |
| | except: |
| | pass |
| | playmode = await get_playmode(CallbackQuery.message.chat.id) |
| | if playmode == "Direct": |
| | Direct = True |
| | else: |
| | Direct = None |
| | is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
| | if not is_non_admin: |
| | Group = True |
| | else: |
| | Group = None |
| | playty = await get_playtype(CallbackQuery.message.chat.id) |
| | if playty == "Everyone": |
| | Playtype = None |
| | else: |
| | Playtype = True |
| | buttons = playmode_users_markup(_, Direct, Group, Playtype) |
| | if command == "AU": |
| | try: |
| | await CallbackQuery.answer(_["set_cb_1"], show_alert=True) |
| | except: |
| | pass |
| | is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
| | if not is_non_admin: |
| | buttons = auth_users_markup(_, True) |
| | else: |
| | buttons = auth_users_markup(_) |
| | if command == "VM": |
| | mode = await is_skipmode(CallbackQuery.message.chat.id) |
| | current = await get_upvote_count(CallbackQuery.message.chat.id) |
| | buttons = vote_mode_markup(_, current, mode) |
| | try: |
| | return await CallbackQuery.edit_message_reply_markup( |
| | reply_markup=InlineKeyboardMarkup(buttons) |
| | ) |
| | except MessageNotModified: |
| | return |
| |
|
| |
|
| | @app.on_callback_query(filters.regex("FERRARIUDTI") & ~BANNED_USERS) |
| | @ActualAdminCB |
| | async def addition(client, CallbackQuery, _): |
| | callback_data = CallbackQuery.data.strip() |
| | mode = callback_data.split(None, 1)[1] |
| | if not await is_skipmode(CallbackQuery.message.chat.id): |
| | return await CallbackQuery.answer(_["setting_10"], show_alert=True) |
| | current = await get_upvote_count(CallbackQuery.message.chat.id) |
| | if mode == "M": |
| | final = current - 2 |
| | print(final) |
| | if final == 0: |
| | return await CallbackQuery.answer( |
| | _["setting_11"], |
| | show_alert=True, |
| | ) |
| | if final <= 2: |
| | final = 2 |
| | await set_upvotes(CallbackQuery.message.chat.id, final) |
| | else: |
| | final = current + 2 |
| | print(final) |
| | if final == 17: |
| | return await CallbackQuery.answer( |
| | _["setting_12"], |
| | show_alert=True, |
| | ) |
| | if final >= 15: |
| | final = 15 |
| | await set_upvotes(CallbackQuery.message.chat.id, final) |
| | buttons = vote_mode_markup(_, final, True) |
| | try: |
| | return await CallbackQuery.edit_message_reply_markup( |
| | reply_markup=InlineKeyboardMarkup(buttons) |
| | ) |
| | except MessageNotModified: |
| | return |
| |
|
| |
|
| | @app.on_callback_query( |
| | filters.regex(pattern=r"^(MODECHANGE|CHANNELMODECHANGE|PLAYTYPECHANGE)$") |
| | & ~BANNED_USERS |
| | ) |
| | @ActualAdminCB |
| | async def playmode_ans(client, CallbackQuery, _): |
| | command = CallbackQuery.matches[0].group(1) |
| | if command == "CHANNELMODECHANGE": |
| | is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
| | if not is_non_admin: |
| | await add_nonadmin_chat(CallbackQuery.message.chat.id) |
| | Group = None |
| | else: |
| | await remove_nonadmin_chat(CallbackQuery.message.chat.id) |
| | Group = True |
| | playmode = await get_playmode(CallbackQuery.message.chat.id) |
| | if playmode == "Direct": |
| | Direct = True |
| | else: |
| | Direct = None |
| | playty = await get_playtype(CallbackQuery.message.chat.id) |
| | if playty == "Everyone": |
| | Playtype = None |
| | else: |
| | Playtype = True |
| | buttons = playmode_users_markup(_, Direct, Group, Playtype) |
| | if command == "MODECHANGE": |
| | try: |
| | await CallbackQuery.answer(_["set_cb_3"], show_alert=True) |
| | except: |
| | pass |
| | playmode = await get_playmode(CallbackQuery.message.chat.id) |
| | if playmode == "Direct": |
| | await set_playmode(CallbackQuery.message.chat.id, "Inline") |
| | Direct = None |
| | else: |
| | await set_playmode(CallbackQuery.message.chat.id, "Direct") |
| | Direct = True |
| | is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
| | if not is_non_admin: |
| | Group = True |
| | else: |
| | Group = None |
| | playty = await get_playtype(CallbackQuery.message.chat.id) |
| | if playty == "Everyone": |
| | Playtype = False |
| | else: |
| | Playtype = True |
| | buttons = playmode_users_markup(_, Direct, Group, Playtype) |
| | if command == "PLAYTYPECHANGE": |
| | try: |
| | await CallbackQuery.answer(_["set_cb_3"], show_alert=True) |
| | except: |
| | pass |
| | playty = await get_playtype(CallbackQuery.message.chat.id) |
| | if playty == "Everyone": |
| | await set_playtype(CallbackQuery.message.chat.id, "Admin") |
| | Playtype = False |
| | else: |
| | await set_playtype(CallbackQuery.message.chat.id, "Everyone") |
| | Playtype = True |
| | playmode = await get_playmode(CallbackQuery.message.chat.id) |
| | if playmode == "Direct": |
| | Direct = True |
| | else: |
| | Direct = None |
| | is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
| | if not is_non_admin: |
| | Group = True |
| | else: |
| | Group = None |
| | buttons = playmode_users_markup(_, Direct, Group, Playtype) |
| | try: |
| | return await CallbackQuery.edit_message_reply_markup( |
| | reply_markup=InlineKeyboardMarkup(buttons) |
| | ) |
| | except MessageNotModified: |
| | return |
| |
|
| |
|
| | @app.on_callback_query(filters.regex(pattern=r"^(AUTH|AUTHLIST)$") & ~BANNED_USERS) |
| | @ActualAdminCB |
| | async def authusers_mar(client, CallbackQuery, _): |
| | command = CallbackQuery.matches[0].group(1) |
| | if command == "AUTHLIST": |
| | _authusers = await get_authuser_names(CallbackQuery.message.chat.id) |
| | if not _authusers: |
| | try: |
| | return await CallbackQuery.answer(_["setting_4"], show_alert=True) |
| | except: |
| | return |
| | else: |
| | try: |
| | await CallbackQuery.answer(_["set_cb_4"], show_alert=True) |
| | except: |
| | pass |
| | j = 0 |
| | await CallbackQuery.edit_message_text(_["auth_6"]) |
| | msg = _["auth_7"].format(CallbackQuery.message.chat.title) |
| | for note in _authusers: |
| | _note = await get_authuser(CallbackQuery.message.chat.id, note) |
| | user_id = _note["auth_user_id"] |
| | admin_id = _note["admin_id"] |
| | admin_name = _note["admin_name"] |
| | try: |
| | user = await app.get_users(user_id) |
| | user = user.first_name |
| | j += 1 |
| | except: |
| | continue |
| | msg += f"{j}➤ {user}[<code>{user_id}</code>]\n" |
| | msg += f" {_['auth_8']} {admin_name}[<code>{admin_id}</code>]\n\n" |
| | upl = InlineKeyboardMarkup( |
| | [ |
| | [ |
| | InlineKeyboardButton( |
| | text=_["BACK_BUTTON"], callback_data=f"AU" |
| | ), |
| | InlineKeyboardButton( |
| | text=_["CLOSE_BUTTON"], |
| | callback_data=f"close", |
| | ), |
| | ] |
| | ] |
| | ) |
| | try: |
| | return await CallbackQuery.edit_message_text(msg, reply_markup=upl) |
| | except MessageNotModified: |
| | return |
| | try: |
| | await CallbackQuery.answer(_["set_cb_3"], show_alert=True) |
| | except: |
| | pass |
| | if command == "AUTH": |
| | is_non_admin = await is_nonadmin_chat(CallbackQuery.message.chat.id) |
| | if not is_non_admin: |
| | await add_nonadmin_chat(CallbackQuery.message.chat.id) |
| | buttons = auth_users_markup(_) |
| | else: |
| | await remove_nonadmin_chat(CallbackQuery.message.chat.id) |
| | buttons = auth_users_markup(_, True) |
| | try: |
| | return await CallbackQuery.edit_message_reply_markup( |
| | reply_markup=InlineKeyboardMarkup(buttons) |
| | ) |
| | except MessageNotModified: |
| | return |
| |
|
| |
|
| | @app.on_callback_query(filters.regex("VOMODECHANGE") & ~BANNED_USERS) |
| | @ActualAdminCB |
| | async def vote_change(client, CallbackQuery, _): |
| | command = CallbackQuery.matches[0].group(1) |
| | try: |
| | await CallbackQuery.answer(_["set_cb_3"], show_alert=True) |
| | except: |
| | pass |
| | mod = None |
| | if await is_skipmode(CallbackQuery.message.chat.id): |
| | await skip_off(CallbackQuery.message.chat.id) |
| | else: |
| | mod = True |
| | await skip_on(CallbackQuery.message.chat.id) |
| | current = await get_upvote_count(CallbackQuery.message.chat.id) |
| | buttons = vote_mode_markup(_, current, mod) |
| |
|
| | try: |
| | return await CallbackQuery.edit_message_reply_markup( |
| | reply_markup=InlineKeyboardMarkup(buttons) |
| | ) |
| | except MessageNotModified: |
| | return |
| |
|