Esempio n. 1
0
def gmutelist(message):
    users = sql2.gmuted_users()
    if not users:
        return edit(message, f'`{get_translation("listEmpty")}`')
    gmute_list = f'**{get_translation("gmutedUsers")}**\n'
    count = 0
    for i in users:
        count += 1
        gmute_list += f'**{count} -** `{i.sender}`\n'
    return edit(message, gmute_list)
Esempio n. 2
0
def set_afk(message):
    args = extract_args(message)
    if len(args) > 0:
        TEMP_SETTINGS['AFK_REASON'] = args
        edit(
            message,
            get_translation('afkStartReason',
                            ['**', '`', TEMP_SETTINGS['AFK_REASON']]),
        )
    else:
        edit(message, f'**{get_translation("afkStart")}**')
    send_log(get_translation('afkLog'))
    TEMP_SETTINGS['IS_AFK'] = True
    raise StopPropagation
Esempio n. 3
0
def ungban_user(client, message):
    args = extract_args(message)
    reply = message.reply_to_message
    edit(message, f'`{get_translation("unbanProcess")}`')
    if args:
        try:
            user = client.get_users(args)
        except Exception:
            edit(message, f'`{get_translation("banFailUser")}`')
            return
    elif reply:
        user_id = reply.from_user.id
        user = client.get_users(user_id)
    else:
        edit(message, f'`{get_translation("banFailUser")}`')
        return

    try:
        replied_user = reply.from_user
        if replied_user.is_self:
            return edit(message, f'`{get_translation("cannotUnbanMyself")}`')
    except BaseException:
        pass

    try:
        if not sql.is_gbanned(user.id):
            return edit(message, f'`{get_translation("alreadyUnbanned")}`')
        sql.ungban(user.id)

        def find_me():
            try:
                return dialog.chat.get_member(me_id).can_restrict_members
            except BaseException:
                return False

        def find_member():
            try:
                return (dialog.chat.get_member(user.id)
                        and dialog.chat.get_member(user.id).restricted_by
                        and dialog.chat.get_member(
                            user.id).restricted_by.id == me_id)
            except BaseException:
                return False

        try:
            dialogs = client.iter_dialogs()
            me_id = TEMP_SETTINGS['ME'].id
            chats = [
                dialog.chat for dialog in dialogs if
                ('group' in dialog.chat.type and find_me() and find_member())
            ]
            for chat in chats:
                chat.unban_member(user.id)
        except BaseException:
            pass
        edit(
            message,
            get_translation('unbanResult',
                            ['**', user.first_name, user.id, '`']),
        )
    except Exception as e:
        edit(message, get_translation('banError', ['`', '**', e]))
        return
Esempio n. 4
0
def gban_user(client, message):
    args = extract_args(message)
    reply = message.reply_to_message
    edit(message, f'`{get_translation("banProcess")}`')
    if args:
        try:
            user = client.get_users(args)
        except Exception:
            edit(message, f'`{get_translation("banFailUser")}`')
            return
    elif reply:
        user_id = reply.from_user.id
        user = client.get_users(user_id)
    else:
        edit(message, f'`{get_translation("banFailUser")}`')
        return

    try:
        replied_user = reply.from_user
        if replied_user.is_self:
            return edit(message, f'`{get_translation("cannotBanMyself")}`')
    except BaseException:
        pass

    if user.id in BRAIN:
        return edit(
            message,
            get_translation('brainError',
                            ['`', '**', user.first_name, user.id]),
        )

    try:
        if sql.is_gbanned(user.id):
            return edit(message, f'`{get_translation("alreadyBanned")}`')
        sql.gban(user.id)
        edit(
            message,
            get_translation('gbanResult',
                            ['**', user.first_name, user.id, '`']),
        )
        try:
            common_chats = client.get_common_chats(user.id)
            for i in common_chats:
                i.kick_member(user.id)
        except BaseException:
            pass
        sleep(1)
        send_log(get_translation('gbanLog', [user.first_name, user.id]))
    except Exception as e:
        edit(message, get_translation('banError', ['`', '**', e]))
        return
Esempio n. 5
0
def ungmute_user(client, message):
    args = extract_args(message)
    reply = message.reply_to_message
    edit(message, f'`{get_translation("unmuteProcess")}`')
    if len(args):
        try:
            user = client.get_users(args)
        except Exception:
            edit(message, f'`{get_translation("banFailUser")}`')
            return
    elif reply:
        user_id = reply.from_user.id
        user = client.get_users(user_id)
    else:
        edit(message, f'`{get_translation("banFailUser")}`')
        return

    try:
        replied_user = reply.from_user
        if replied_user.is_self:
            return edit(message, f'`{get_translation("cannotUnmuteMyself")}`')
    except BaseException:
        pass

    try:
        if not sql2.is_gmuted(user.id):
            return edit(message, f'`{get_translation("alreadyUnmuted")}`')
        sql2.ungmute(user.id)
        try:
            common_chats = client.get_common_chats(user.id)
            for i in common_chats:
                i.unban_member(user.id)
        except BaseException:
            pass
        edit(
            message,
            get_translation('unmuteResult',
                            ['**', user.first_name, user.id, '`']),
        )
    except Exception as e:
        edit(message, get_translation('banError', ['`', '**', e]))
        return
Esempio n. 6
0
def gmute_user(client, message):
    args = extract_args(message)
    reply = message.reply_to_message
    edit(message, f'`{get_translation("muteProcess")}`')
    if len(args):
        try:
            user = client.get_users(args)
        except Exception:
            edit(message, f'`{get_translation("banFailUser")}`')
            return
    elif reply:
        user_id = reply.from_user.id
        user = client.get_users(user_id)
    else:
        edit(message, f'`{get_translation("banFailUser")}`')
        return

    try:
        replied_user = reply.from_user
        if replied_user.is_self:
            return edit(message, f'`{get_translation("cannotMuteMyself")}`')
    except BaseException:
        pass

    if user.id in BRAIN:
        return edit(
            message,
            get_translation('brainError',
                            ['`', '**', user.first_name, user.id]),
        )

    try:
        if sql2.is_gmuted(user.id):
            return edit(message, f'`{get_translation("alreadyMuted")}`')
        sql2.gmute(user.id)
        edit(
            message,
            get_translation('gmuteResult',
                            ['**', user.first_name, user.id, '`']),
        )
        try:
            common_chats = client.get_common_chats(user.id)
            for i in common_chats:
                i.restrict_member(user.id, ChatPermissions())
        except BaseException:
            pass
        sleep(1)
        send_log(get_translation('gmuteLog', [user.first_name, user.id]))
    except Exception as e:
        edit(message, get_translation('banError', ['`', '**', e]))
        return