Beispiel #1
0
def del_chat(message):
    """Removes chat from the system."""
    chat = message.chat.id
    database = Database()

    if database.get('chats', ('id', chat)):
        database.remove('chats', ('id', chat))
        reply(message, "Чат успешно удалён")
Beispiel #2
0
def rank_changer(message, person):
    """Changes person's rank"""
    database = Database()
    chat = database.get('chats', ('id', message.chat.id))
    system = chat['system']
    chat_configs = get_system_configs(system)
    command = message.text.split()[0].split(sep='@')[0]
    adm_place = admin_place(message, database)
    if command in chat_configs["ranks_commands"]:
        rank_index = chat_configs["ranks_commands"].index(command)
        rank = chat_configs["ranks"][rank_index]
        database.change(rank, "rank", 'members', ('id', person.id),
                        ('system', system))
        reply(message, f"Теперь это {rank} по званию!")
        if adm_place:
            send(adm_place,
                 "Пользователь {} получил(а) звание {}".format(
                     person_info_in_html(person), rank),
                 parse_mode='HTML')
    elif command in chat_configs["appointment_adders"]:
        appointment_index = chat_configs["appointment_adders"].index(command)
        appointment = chat_configs["appointments"][appointment_index]
        if not database.get('appointments', ('id', person.id),
                            ('system', system), ('appointment', appointment)):
            database.append((person.id, system, appointment), "appointments")
            reply(
                message,
                f"Теперь это {appointment}. Поздравим человека с повышением!")
            if adm_place:
                send(adm_place,
                     "Пользователь {} получил(а) должность {}".format(
                         person_info_in_html(person), appointment),
                     parse_mode='HTML')
        else:
            reply(message, "У этого человека и так есть эта должность")
    elif command in chat_configs["appointment_removers"]:
        appointment_index = chat_configs["appointment_removers"].index(command)
        appointment = chat_configs["appointments"][appointment_index]
        database.remove("appointments", ('id', person.id), ('system', system),
                        ('appointment', appointment))
        reply(message, f"Теперь это не {appointment}")
        if adm_place:
            send(adm_place,
                 "Пользователь {} потерял(а) должность {}".format(
                     person_info_in_html(person), appointment),
                 parse_mode='HTML')
    unban_user(person)
    if is_suitable(message, person, 'boss', loud=False):
        give_admin(message, person, loud=False)
    else:
        del_admin(message, person, loud=False)
Beispiel #3
0
def del_admin(message, person, loud=True):
    """Remove admin's right"""
    database = Database()
    chat = database.get('chats', ('id', message.chat.id))
    system = chat['system']
    database.remove("appointments", ("appointment", "Admin"),
                    ("id", person.id))
    for chat in chat_list(database, system):
        promote(chat['id'],
                person.id,
                can_change_info=False,
                can_delete_messages=False,
                can_invite_users=False,
                can_restrict_members=False,
                can_pin_messages=False,
                can_promote_members=False)
    for channel in channel_list(database):
        promote(channel['id'],
                person.id,
                can_post_messages=False,
                can_invite_users=False)
    if loud:
        reply(message, "Теперь это не админ!")