Spaces:
Runtime error
Runtime error
| 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 | |
| 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), | |
| ) | |
| 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), | |
| ) | |
| 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) | |
| ) | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |