示例#1
0
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)
示例#2
0
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)
示例#3
0
 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'
示例#4
0
 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>'
示例#5
0
 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'
示例#6
0
 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 '𝚂𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢 𝚛𝚎𝚖𝚘𝚟𝚎𝚍 𝚏𝚛𝚘𝚖 𝚂𝚞𝚍𝚘😐'
示例#7
0
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
示例#8
0
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
示例#9
0
 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>'
示例#10
0
 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 '𝚄𝚗𝚊𝚞𝚝𝚑𝚘𝚛𝚒𝚣𝚎𝚍 𝚜𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢😐'
示例#11
0
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
示例#12
0
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
示例#13
0
 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'
示例#14
0
 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>'
示例#15
0
 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 '𝚂𝚞𝚌𝚌𝚎𝚜𝚜𝚏𝚞𝚕𝚕𝚢 𝙰𝚞𝚝𝚑𝚘𝚛𝚒𝚣𝚎𝚍 𝚊𝚗𝚍 𝚙𝚛𝚘𝚖𝚘𝚝𝚎𝚍 𝚊𝚜 𝚜𝚞𝚍𝚘🤗'
示例#16
0
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
示例#17
0
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 ""
示例#18
0
 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()