def addpiro(update: Update, context: CallbackContext) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat bot, args = context.bot, context.args user_id = extract_user(message, args) user_member = bot.getChat(user_id) rt = "" reply = check_user_id(user_id, bot) if reply: message.reply_text(reply) return "" with open(ELEVATED_USERS_FILE, 'r') as infile: data = json.load(infile) if int(user_id) in DEV_USERS: message.reply_text("This member is already a Pro Developer") if user_id in DRAGONS: rt += "Requested HQ to promote a Dragon Disaster to Pro Developer." data['sudos'].remove(user_id) DRAGONS.remove(user_id) if user_id in DEMONS: rt += "Requested HQ to promote a Demon Disaster to Pro Developer." data['supports'].remove(user_id) DEMONS.remove(user_id) if user_id in WOLVES: rt += "Requested HQ to promote a Wolf Disaster to Pro Developer." data['whitelists'].remove(user_id) WOLVES.remove(user_id) data['devs'].append(user_id) DEV_USERS.append(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) update.effective_message.reply_text( rt + "\nSuccessfully set Disaster level of {} to Pro Developer!".format( user_member.first_name)) log_message = ( f"#ProDeveloper\n" f"<b>Admin:</b> {mention_html(user.id, html.escape(user.first_name))}\n" f"<b>User:</b> {mention_html(user_member.id, html.escape(user_member.first_name))}" ) if chat.type != 'private': log_message = f"<b>{html.escape(chat.title)}:</b>\n" + log_message return log_message
def rmpiro(update: Update, context: CallbackContext) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat bot, args = context.bot, context.args user_id = extract_user(message, args) user_member = bot.getChat(user_id) reply = check_user_id(user_id, bot) if reply: message.reply_text(reply) return "" with open(ELEVATED_USERS_FILE, 'r') as infile: data = json.load(infile) if user_id in DEV_USERS: message.reply_text("Requested HQ to demote this user to Civilian") DEV_USERS.remove(user_id) data['devs'].remove(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) log_message = ( f"#UNDEV\n" f"<b>Admin:</b> {mention_html(user.id, html.escape(user.first_name))}\n" f"<b>User:</b> {mention_html(user_member.id, html.escape(user_member.first_name))}" ) if chat.type != 'private': log_message = "<b>{}:</b>\n".format(html.escape( chat.title)) + log_message return log_message else: message.reply_text("This user is not a Pro Developer Disaster!") return ""
from io import BytesIO from time import sleep from telegram import TelegramError, Update from telegram.error import BadRequest, Unauthorized from telegram.ext import (CallbackContext, CommandHandler, Filters, MessageHandler, run_async) import SaitamaRobot.modules.sql.users_sql as sql from SaitamaRobot import DEV_USERS, LOGGER, OWNER_ID, dispatcher from SaitamaRobot.modules.helper_funcs.chat_status import dev_plus, sudo_plus from SaitamaRobot.modules.sql.users_sql import get_all_users USERS_GROUP = 4 CHAT_GROUP = 5 DEV_AND_MORE = DEV_USERS.append(int(OWNER_ID)) def get_user_id(username): # ensure valid userid if len(username) <= 5: return None if username.startswith('@'): username = username[1:] users = sql.get_userid_by_name(username) if not users: return None