def removeSudo(update, context): reply_message = None message_ = None reply_message = update.message.reply_to_message message_ = update.message.text.split(' ') if len(message_) == 2: user_id = int(message_[1]) if user_id in SUDO_USERS: if DB_URI is not None: msg = DbManger().db_rmsudo(user_id) else: SUDO_USERS.remove(user_id) msg = 'Demoted' else: msg = 'Not a Sudo' elif reply_message is None: msg = "Give ID or Reply To message of whom you want to remove from Sudo" else: user_id = reply_message.from_user.id if user_id in SUDO_USERS: if DB_URI is not None: msg = DbManger().db_rmsudo(user_id) else: SUDO_USERS.remove(user_id) msg = 'Demoted' else: msg = 'Not a Sudo' if DB_URI is None: with open('sudo_users.txt', 'a') as file: file.truncate(0) for i in SUDO_USERS: file.write(f'{i}\n') sendMessage(msg, context.bot, update)
def addSudo(update, context): reply_message = None message_ = None reply_message = update.message.reply_to_message message_ = update.message.text.split(' ') if len(message_) == 2: user_id = int(message_[1]) if user_id in SUDO_USERS: msg = 'Already Sudo' elif DB_URI is not None: msg = DbManger().db_addsudo(user_id) else: with open('sudo_users.txt', 'a') as file: file.write(f'{user_id}\n') SUDO_USERS.add(user_id) msg = 'Promoted as Sudo' elif reply_message is None: msg = "Give ID or Reply To message of whom you want to Promote" else: # Trying to authorize someone by replying user_id = reply_message.from_user.id if user_id in SUDO_USERS: msg = 'Already Sudo' elif DB_URI is not None: msg = DbManger().db_addsudo(user_id) else: with open('sudo_users.txt', 'a') as file: file.write(f'{user_id}\n') SUDO_USERS.add(user_id) msg = 'Promoted as Sudo' sendMessage(msg, context.bot, update)
def db_rmsudo(self, chat_id: int): self.connect() if self.err: return "There's some error check log for details" sql = 'UPDATE users SET sudo = FALSE where uid = {};'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.remove(chat_id) return 'Successfully removed from Sudo'
def db_rmsudo(self,chat_id: int): self.connect() if self.err : return "<b>Tʜᴇʀᴇ's Sᴏᴍᴇ Eʀʀᴏʀ Cʜᴇᴄᴋ Lᴏɢ Fᴏʀ Dᴇᴛᴀɪʟs</b>" else: sql = 'UPDATE users SET sudo = FALSE where uid = {};'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.remove(chat_id) return '<b>Sᴜᴄᴄᴇssꜰᴜʟʟʏ Rᴇᴍᴏᴠᴇᴅ Usᴇʀ Fʀᴏᴍ Sᴜᴅᴏ</b>'
def db_unauth(self, chat_id: int): self.connect() if self.err: return "There's some error check log for details" sql = 'DELETE from users where uid = {};'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() AUTHORIZED_CHATS.remove(chat_id) if chat_id in SUDO_USERS: SUDO_USERS.remove(chat_id) return 'Unauthorized successfully'
def db_rmsudo(self, chat_id: int): self.connect() if self.err: return "T𝚑𝚎𝚛𝚎'𝚜 𝚜𝚘𝚖𝚎 𝚎𝚛𝚛𝚘𝚛 𝚌𝚑𝚎𝚌𝚔 𝚕𝚘𝚐 𝚏𝚘𝚛 𝚍𝚎𝚝𝚊𝚒𝚕𝚜" else: sql = 'UPDATE users SET sudo = FALSE where uid = {};'.format( chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.remove(chat_id) return '𝚂𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢 𝚛𝚎𝚖𝚘𝚟𝚎𝚍 𝚏𝚛𝚘𝚖 𝚂𝚞𝚍𝚘😐'
def addwhitelist(bot: Bot, update: Update, args: List[str]) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat 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 user_id in SUDO_USERS: rt += "Bu üzv bir SUDO-dur, SUDO-ya enir." data['sudos'].remove(user_id) SUDO_USERS.remove(user_id) if user_id in SUPPORT_USERS: rt += "Bu istifadəçi artıq bir SUPPORTDUR, DƏSTƏK üçün aşağı" data['supports'].remove(user_id) SUPPORT_USERS.remove(user_id) if user_id in WHITELIST_USERS: message.reply_text("Bu istifadəçi artıq WHITELIST istifadəçisidir.") return "" data['whitelists'].append(user_id) WHITELIST_USERS.append(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) update.effective_message.reply_text( rt + f"\n{user_member.first_name} uğurlu bir Siyahı İstifadəçisinə təqdim edildi!" ) log_message = ( f"#WHITELIST\n" f"<b>Admin:</b> {mention_html(user.id, user.first_name)} \n" f"<b>İstifadəçi:</b> {mention_html(user_member.id, user_member.first_name)}" ) if chat.type != 'private': log_message = f"<b>{html.escape(chat.title)}:</b>\n" + log_message return log_message
def addsupport(bot: Bot, update: Update, args: List[str]) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat 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 user_id in SUDO_USERS: rt += "Bu SUDO-nun DƏSTƏK statusunu aşağı salma" data['sudos'].remove(user_id) SUDO_USERS.remove(user_id) if user_id in SUPPORT_USERS: message.reply_text("Bu istifadəçi artıq SUDO-dur.") return "" if user_id in WHITELIST_USERS: rt += "WHITELIST İSTİFADƏÇİSİNDƏN KULLANICI DƏSTƏK EDƏCƏK Fəlakət səviyyəsinin yüksəldilməsi" data['whitelists'].remove(user_id) WHITELIST_USERS.remove(user_id) data['supports'].append(user_id) SUPPORT_USERS.append(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) update.effective_message.reply_text( rt + f"\n{user_member.first_name} bir dəstək istifadəçisi olaraq əlavə edildi!" ) log_message = ( f"#SUPPORT\n" f"<b>Admin:</b> {mention_html(user.id, user.first_name)}\n" f"<b>İstifadəçi:</b> {mention_html(user_member.id, user_member.first_name)}" ) if chat.type != 'private': log_message = "<b>{html.escape(chat.title)}:</b>\n" + log_message return log_message
def db_unauth(self,chat_id: int): self.connect() if self.err : return "<b>Tʜᴇʀᴇ's Sᴏᴍᴇ Eʀʀᴏʀ Cʜᴇᴄᴋ Lᴏɢ Fᴏʀ Dᴇᴛᴀɪʟs</b>" else: sql = 'DELETE from users where uid = {};'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() AUTHORIZED_CHATS.remove(chat_id) if chat_id in SUDO_USERS: SUDO_USERS.remove(chat_id) return '<b>UɴAᴜᴛʜᴏʀɪᴢᴇᴅ Sᴜᴄᴄᴇssꜰᴜʟʟʏ<b>'
def db_unauth(self, chat_id: int): self.connect() if self.err: return "T𝚑𝚎𝚛𝚎'𝚜 𝚜𝚘𝚖𝚎 𝚎𝚛𝚛𝚘𝚛 𝚌𝚑𝚎𝚌𝚔 𝚕𝚘𝚐 𝚏𝚘𝚛 𝚍𝚎𝚝𝚊𝚒𝚕𝚜" else: sql = 'DELETE from users where uid = {};'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() AUTHORIZED_CHATS.remove(chat_id) if chat_id in SUDO_USERS: SUDO_USERS.remove(chat_id) return '𝚄𝚗𝚊𝚞𝚝𝚑𝚘𝚛𝚒𝚣𝚎𝚍 𝚜𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢😐'
def addsudo(bot: Bot, update: Update, args: List[str]) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat 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 user_id in SUDO_USERS: message.reply_text("Bu üzv onsuz da mənim SUDO-mdur.") return "" if user_id in SUPPORT_USERS: rt += "Bu istifadəçi artıq bir DƏSTƏK İSTİFADƏÇİSİDİR." data['supports'].remove(user_id) SUPPORT_USERS.remove(user_id) if user_id in WHITELIST_USERS: rt += "Bu istifadəçi artıq WHITELIST istifadəçisidir." data['whitelists'].remove(user_id) WHITELIST_USERS.remove(user_id) data['sudos'].append(user_id) SUDO_USERS.append(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) update.effective_message.reply_text( rt + "\nBu istifadəçi {} Sudo-ya uğurla əlavə edildi!".format( user_member.first_name)) log_message = ( f"#SUDO\n" f"<b>Admin:</b> {mention_html(user.id, user.first_name)}\n" f"<b>İstifadəçi:</b> {mention_html(user_member.id, user_member.first_name)}" ) if chat.type != 'private': log_message = f"<b>{html.escape(chat.title)}:</b>\n" + log_message return log_message
def addwhitelist(bot: Bot, update: Update, args: List[str]) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat 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 user_id in SUDO_USERS: rt += "This member is a SUDO, Demoting to SUDO." data['sudos'].remove(user_id) SUDO_USERS.remove(user_id) if user_id in SUPPORT_USERS: rt += "This user is already a SUPPORT, Demoting to SUPPORT" data['supports'].remove(user_id) SUPPORT_USERS.remove(user_id) if user_id in WHITELIST_USERS: message.reply_text("This user is already a WHITELIST USER.") return "" data['whitelists'].append(user_id) WHITELIST_USERS.append(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) update.effective_message.reply_text( rt + f"\nSuccessfully promoted {user_member.first_name} to a Whitelist User!" ) log_message = ( f"#WHITELIST\n" f"<b>Admin:</b> {mention_html(user.id, user.first_name)} \n" f"<b>User:</b> {mention_html(user_member.id, user_member.first_name)}") if chat.type != 'private': log_message = f"<b>{html.escape(chat.title)}:</b>\n" + log_message return log_message
def db_addsudo(self, chat_id: int): self.connect() if self.err: return "There's some error check log for details" if chat_id in AUTHORIZED_CHATS: sql = 'UPDATE users SET sudo = TRUE where uid = {};'.format( chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.add(chat_id) return 'Successfully promoted as Sudo' else: sql = 'INSERT INTO users VALUES ({},TRUE);'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.add(chat_id) return 'Successfully Authorized and promoted as Sudo'
def db_addsudo(self,chat_id: int): self.connect() if self.err : return "<b>Tʜᴇʀᴇ's Sᴏᴍᴇ Eʀʀᴏʀ Cʜᴇᴄᴋ Lᴏɢ Fᴏʀ Dᴇᴛᴀɪʟs</b>" else: if chat_id in AUTHORIZED_CHATS: sql = 'UPDATE users SET sudo = TRUE where uid = {};'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.add(chat_id) return '<b>Sᴜᴄᴄᴇssꜰᴜʟʟʏ Pʀᴏᴍᴏᴛᴇᴅ Usᴇʀ As Sᴜᴅᴏ</b>' else: sql = 'INSERT INTO users VALUES ({},TRUE);'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() AUTHORIZED_CHATS.add(chat_id) SUDO_USERS.add(chat_id) return '<b>Sᴜᴄᴄᴇssꜰᴜʟʟʏ Aᴜᴛʜᴏʀɪᴢᴇᴅ Aɴᴅ Pʀᴏᴍᴏᴛᴇᴅ Usᴇʀ As Sᴜᴅᴏ</b>'
def db_addsudo(self, chat_id: int): self.connect() if self.err: return "T𝚑𝚎𝚛𝚎'𝚜 𝚜𝚘𝚖𝚎 𝚎𝚛𝚛𝚘𝚛 𝚌𝚑𝚎𝚌𝚔 𝚕𝚘𝚐 𝚏𝚘𝚛 𝚍𝚎𝚝𝚊𝚒𝚕𝚜" else: if chat_id in AUTHORIZED_CHATS: sql = 'UPDATE users SET sudo = TRUE where uid = {};'.format( chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() SUDO_USERS.add(chat_id) return '𝚂𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢 𝚙𝚛𝚘𝚖𝚘𝚝𝚎𝚍 𝚊𝚜 𝚜𝚞𝚍𝚘🤗' else: sql = 'INSERT INTO users VALUES ({},TRUE);'.format(chat_id) self.cur.execute(sql) self.conn.commit() self.disconnect() AUTHORIZED_CHATS.add(chat_id) SUDO_USERS.add(chat_id) return '𝚂𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢 𝙰𝚞𝚝𝚑𝚘𝚛𝚒𝚣𝚎𝚍 𝚊𝚗𝚍 𝚙𝚛𝚘𝚖𝚘𝚝𝚎𝚍 𝚊𝚜 𝚜𝚞𝚍𝚘🤗'
def addsudo(bot: Bot, update: Update, args: List[str]) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat 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 user_id in SUDO_USERS: message.reply_text("This member is already a Sudo") return "" data['sudos'].append(user_id) SUDO_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 user level of {} to Sudo!".format( user_member.first_name)) log_message = ( f"#SUDO\n" f"<b>Admin:</b> {mention_html(user.id, user.first_name)}\n" f"<b>User:</b> {mention_html(user_member.id, user_member.first_name)}") if chat.type != 'private': log_message = f"<b>{html.escape(chat.title)}:</b>\n" + log_message return log_message
def removesudo(bot: Bot, update: Update, args: List[str]) -> str: message = update.effective_message user = update.effective_user chat = update.effective_chat 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 SUDO_USERS: message.reply_text("Demoting to normal user") SUDO_USERS.remove(user_id) data['sudos'].remove(user_id) with open(ELEVATED_USERS_FILE, 'w') as outfile: json.dump(data, outfile, indent=4) log_message = ( f"#UNSUDO\n" f"<b>Admin:</b> {mention_html(user.id, user.first_name)}\n" f"<b>User:</b> {mention_html(user_member.id, 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 sudo!") return ""
def db_load(self): # User Data self.cur.execute("SELECT * from users") rows = self.cur.fetchall( ) #returns a list ==> (uid, sudo, auth, media, doc, thumb) if rows: for row in rows: if row[1] and row[0] not in SUDO_USERS: SUDO_USERS.add(row[0]) elif row[2] and row[0] not in AUTHORIZED_CHATS: AUTHORIZED_CHATS.add(row[0]) if row[3]: AS_MEDIA_USERS.add(row[0]) elif row[4]: AS_DOC_USERS.add(row[0]) path = f"Thumbnails/{row[0]}.jpg" if row[5] is not None and not ospath.exists(path): if not ospath.exists('Thumbnails'): makedirs('Thumbnails') with open(path, 'wb+') as f: f.write(row[5]) f.close() LOGGER.info("Users data has been imported from Database") # Rss Data self.cur.execute("SELECT * FROM rss") rows = self.cur.fetchall( ) #returns a list ==> (name, feed_link, last_link, last_title, filters) if rows: for row in rows: f_lists = [] if row[4] is not None: filters_list = row[4].split('|') for x in filters_list: y = x.split(' or ') f_lists.append(y) rss_dict[row[0]] = [row[1], row[2], row[3], f_lists] LOGGER.info("Rss data has been imported from Database.") self.disconnect()