170 похожих чатов

Как в telebot сделать, чтобы при нажатии на НЕ инлайн

клавиатуру, а ReplyKeyboardMarkup редактировалось старое сообщение от бота? в инлайн клавиатуре есть колбеки для этого, а тут нету.

хочу сделать, чтобы пользователю показывалось только одно сообщение вместо предыдущего. вроде задача банальная, но второй день ищу решение и не могу найти.

я пробовал записывать message_id в базу и редактировать его через edit_message_text, но получаю такой еррор от тг:
Bad Request: message can\'t be edited
message_id совпадает

как это вообще правильно делается?

3 ответов

31 просмотр

ты который message_id записываешь?

shokoladny_zayac- Автор вопроса
Denis 🐍|👑 | darling! 🥰
ты который message_id записываешь?

который приходит при отправке предыдущего сообщения. вот пример функции: @bot.message_handler(func=lambda message: message.text in \ (Config.buttons['main_menu']['profile']['en'], Config.buttons['main_menu']['profile']['ru'])) def profile(message): user_id = message.from_user.id db = db_connect() user = User(db, user_id) user.get_data() markup = Markup.profile_menu(user.lang) msg_id = user.get_statement() # беру message_id из базы msg_data = bot.edit_message_text( chat_id=message.chat.id, message_id=msg_id, text=Config.texts['profile_menu'][user.lang] % (user.user_id, user.balance, user.status), reply_markup=markup ) user.set_statement(msg_data.message_id) # тут записываю message_id в базу bot.infinity_polling()

shokoladny_zayac- Автор вопроса

может кто за бабки поможет разобраться с этой эпопеей?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта