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 | |