Задать вопрос
Ответы пользователя по тегу AIOgram
  • Как добавить один обработчик на несколько callback data aiogram3?

    @TheDigitalMadness
    Программист
    Не очень понятен вопрос. Я полагаю, вы имели ввиду, как обрабатывать разные колбеки? Вот пример из моего проекта:
    def callback_get(self, call):
            # message = call.message
            user_id = call.from_user.id
            data = str(call.data).split(' ')
            print(data)
    
            menu = data[0]
            if menu == 'MAIN_MY+VACANCIES_MENU':
                # Логика
            elif menu == 'MAIN_MY+VACANCIES_AT+VACANCY_MENU':
                # Логика
            elif menu == 'MAIN_MENU':
                # Логика
            elif menu == 'MAIN_MY+CHATS_MENU':
                database = Database('users.db')
                database.execute(f"SELECT * FROM users WHERE user_id={user_id}")
                user = database.get_result()[0]
    
                if user[3] == menu:
                    database.execute(f"UPDATE users SET menu='MAIN_MY+CHATS_AT+CHAT_MENU' WHERE user_id={user_id}")
    
                    chats_db = Database('chats.db')
                    markup = self.mc.create_back_button_markup()
                    if int(data[2]) == 1:
                        chats_db.execute(f"UPDATE chats SET employer_status=1 WHERE employer_id={user_id} AND id={data[1]}")
    
                        markup = self.mc.create_main_myChats_atChat_menu_markup()
                    elif int(data[2]) == 0:
                        chats_db.execute(f"UPDATE chats SET master_status=1 WHERE master_id={user_id} AND id={data[1]}")
    
                        markup = self.mc.create_back_button_markup()
    
                    self.send_message(user_id, "Перевожу в чат", reply_markup=markup)
                    self.do_send_chats_messages(user_id=user_id, chat_id=int(data[1]))
                else:
                    self.send_message(user_id, """Вы должны находиться в меню "Мои чаты", чтобы использовать данную функцию""")


    Здесь я колбек составляю по одному типу:
    "меню_пользователя(его состояние) команда аргументы", где разделители - пробелы. Правда, в данном случае я использовал pyTelegramBotAPi, поэтому код у вас может немного отличаться, но суть такая же
    Ответ написан
  • Как можно сравнить полученный ботом id пользователя с каждым id из БД SQLite с помощью цикла?

    @TheDigitalMadness
    Программист
    Смотри: у тебя в user_id_massive содержаться id не в цифровом виде, а в кортеже. Тогда, тебе достаточно просто привести message.from_user.id к кортежу
    current_user_id = tuple([message.from_user.id])
    if current_user_id in user_id_massive:
        ....
    Ответ написан
    1 комментарий
  • Как импортировать get_menu_keyboard с keyboards.py?

    @TheDigitalMadness
    Программист
    Дай, пожалуйста, папку, в которой находятся твои файлы. Скорее всего, проблема в том, где эти файлы находятся. Я скопировал твой код, у меня все сработало
    Ответ написан