When I click on the inline button, it will give me a text. And with each next press, he again sends the text.
I want to make it so that when you click on a new button, the old message is deleted and a new one appears.
I hope I explained clearly :D
Just in case, I'll leave the source code :
from telebot import TeleBot # Подключаем библиотеку
from telebot import types
import time # Подключаем модуль времени
# Записываем токен
bot = TeleBot('CODE')
bad_words = ["жопа", "дурак", "мудак", "durak", "бля", "хуй",
"хуя"] # Словарь для фраз которые мы будем автоматически удалять из чата
other_lang = ["c#", "c++", "дельфи", " ява ", "java", "php", " пхп", "swift", " свифт", " go ",
"javascript", "kotlin", " котлин", "rust", " раст ", "basic", " бейсик", " паскаль",
"golang", "pascal", "delphi", "perl", " перл ", "1c", " делфи", " си "]
# Словарь для фраз на которыем мы будем реагировать стикером
# Еще один словарь для фраз на которыем мы будем реагировать стикером
other_bot = ["aiogram", "аиограм"]
@bot.message_handler(commands=['bot'])
def button(message):
markup = types.InlineKeyboardMarkup(row_width=2)
item = types.InlineKeyboardButton(
'Купить логи ', callback_data='question1')
item2 = types.InlineKeyboardButton(
'Правила ♂️', callback_data='goodbye')
item3 = types.InlineKeyboardButton(
'Мануалы ', callback_data='manual')
item4 = types.InlineKeyboardButton(
'Развлекуха ', callback_data='game')
markup.add(item, item2, item3, item4)
bot.send_message(message.chat.id, 'Здравствуй, {first} {last}'.format(
first=message.from_user.first_name, last=message.from_user.last_name), reply_markup=markup)
@ bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.message:
if call.data == 'question1':
bot.send_message(call.message.chat.id,
'''Как купить логи?
Шᴀᴦ 1️⃣
Пᴇᴩʙыʍ дᴇᴧᴏʍ, ʍы дᴏᴧжны ɜᴀйᴛи ʙ бᴏᴛᴀ - @reimannlogs_bot и ᴨᴩᴏᴨиᴄᴀᴛь /start♂️
Шᴀᴦ 2️⃣
Нᴀжиʍᴀᴇʍ "Пᴏᴨᴏᴧниᴛь" и ᴨᴏᴨᴏᴧняᴇʍ нᴀ ᴄᴛᴏᴧьᴋᴏ,
нᴀ ᴄᴋᴏᴧьᴋᴏ ʙы хᴏᴛиᴛᴇ ᴋуᴨиᴛь ᴧᴏᴦᴏʙ.
Аᴋᴛуᴀᴧьнᴀя цᴇнᴀ ɜᴀ 1 ᴧᴏᴦ - 59 ᴩуб
Шᴀᴦ 3️⃣
Нᴀжиʍᴀᴇʍ "Куᴨиᴛь", ʙыбиᴩᴀᴇʍ "Зᴀбуᴦᴏᴩ RᴇdLinᴇ"
и "POPULAR GAMES"
Шᴀᴦ 4️⃣
Обᴩᴀбᴀᴛыʙᴀᴇʍ ᴧᴏᴦ и ᴨᴏᴧучᴀᴇʍ PROFIT!
(Мᴀнуᴀᴧ ᴨᴏ ᴏбᴩᴀбᴏᴛᴋᴇ ʍᴏжнᴏ ᴨᴏᴧучиᴛь, ᴨᴩᴏᴨиᴄᴀʙ
ᴋᴏʍᴀнду - /bot)
''')
elif call.data == 'goodbye':
bot.send_message(call.message.chat.id,
'''Пᴩᴀʙиᴧᴀ чᴀᴛᴀ
=======================
Зᴀᴨᴩᴇщᴇнᴏ:
- ᴧюбᴀя ᴋᴏʍʍᴇᴩция ʙ чᴀᴛᴇ (ᴨᴏᴋуᴨᴋᴀ/ᴨᴩᴏдᴀжᴀ)
- уᴋᴀɜыʙᴀᴛь иᴧи ᴨᴏʍᴇчᴀᴛь дᴩуᴦиᴇ ᴋᴀнᴀᴧы иᴧи бᴏᴛы
- ᴩᴇᴋᴧᴀʍᴀ иᴧи уᴨᴏʍинᴀниᴇ ᴨᴏхᴏжих ᴩᴇᴄуᴩᴄᴏʙ/ɯᴏᴨᴏʙ/нᴇйʍᴏʙ ʙ ᴧюбᴏʍ ᴋᴏнᴛᴇᴋᴄᴛᴇ
- ᴨᴏᴨᴩᴏɯᴀйничᴇᴄᴛʙᴏ
- ɜᴧᴏуᴨᴏᴛᴩᴇбᴧᴇниᴇ "CAPS LOCK"
- ʙᴇᴄᴛи ᴄᴇбя нᴇᴀдᴇᴋʙᴀᴛнᴏ ʙ чᴀᴛᴇ и ᴩᴀɜʙᴏдиᴛь "ᴄᴩᴀч"
- ᴏᴄᴋᴏᴩбᴧᴇниᴇ "мᴏдᴇᴩᴀции/ᴨᴩᴏᴇᴋᴛᴀ/ɯᴏᴨᴀ" - бᴀн ❗️
- ᴏᴛᴨᴩᴀʙᴧяᴛь ᴄᴋᴩиʍᴇᴩы, ᴩᴀᴄчᴧᴇнᴇнᴋу, ᴄʙᴀᴄᴛиᴋу, нᴀциɜʍ, ᴋᴏнᴛᴇнᴛ
- ᴏɸᴏᴩʍᴧяᴛь ᴩᴀɜᴧичныᴇ ᴋᴀᴩᴛы, ᴀбуɜиᴛь ᴩᴇɸᴇᴩᴀᴧьную ᴄиᴄᴛᴇʍу, ᴄᴋᴀʍ и ᴏбʍᴀн ᴨᴏᴧьɜᴏʙᴀᴛᴇᴧᴇй
- ᴨᴩᴏᴨᴀᴦᴀндᴀ ᴨᴏᴧиᴛиᴋи
- ɸᴧуд\ᴄᴨᴀʍ ᴏдинᴀᴋᴏʙыʍи ɜᴀ ᴋᴏнᴛᴇᴋᴄᴛᴏʍ ᴄᴧᴏʙᴀʍи иᴧи ᴨᴩᴇдᴧᴏжᴇнияʍи (1 ᴨᴩᴇдуᴨᴩᴇждᴇниᴇ, ᴨᴏᴄᴧᴇ - ɯᴛᴩᴀɸ) ''')
elif call.data == 'manual':
bot.send_message(call.message.chat.id,
'''
Краткий мануал о том как обрабатывать логи - https://telegra.ph/Kak-obrabatyvat-logi-05-30
За привлечение новой аудитории, выдаю логи
''')
elif call.data == 'game':
bot.send_message(call.message.chat.id, '''
Вот список забавных команд
"Спой, птичка!" - попугай чёт скажет :3
"Cкайнет восстаёт!" - До восстанет великий Скайнет!!!
''')
@bot.message_handler(
content_types=['new_chat_members']) # Хендлер описывающий поведение бота при добавлении нового пользователя
def greeting(message): # Запуско основной функции хендлера
# Выводим в консоль имя нового пользователя
print("User " + message.new_chat_member.first_name + " added")
try: # Пытаемся выполнить команду приведеную ниже
bot.reply_to(message, text='Приветствую тебя в нашем серпентарии. Будь вежливым, и мы постараемся тебе помочь!',
disable_notification=True) # Выводим приветствие в чат
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("GreetingError - Sending again after 5 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
bot.reply_to(message, text='Приветствую тебя в нашем серпентарии. Будь вежливым, и мы постараемся тебе помочь!',
disable_notification=True) # Выводим приветствие в чат
@bot.message_handler(
content_types=['left_chat_member']) # Хендлер описывающий поведение бота при выходе пользователя из чата
def not_greeting(message): # Запуско основной функции хендлера
# Выводим в консоль имя ушедшего пользователя
print("User " + message.left_chat_member.first_name + " left")
try: # Пытаемся выполнить команду приведеную ниже
bot.reply_to(message, text='Как жаль, что вы наконец-то уходите...',
disable_notification=True) # Выводим прощание в чат
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("LeftError - Sending again after 5 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
bot.reply_to(message, text='Как жаль, что вы наконец-то уходите...',
disable_notification=True) # Выводим прощание в чат
# Хендлер описывающий поведение бота при вводе /start
@bot.message_handler(commands=['start'])
def starting(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
bot.reply_to(message, text='Ты мне тут не стартуй!',
disable_notification=True) # Отвечаем на команду /start
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("StartingError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
bot.reply_to(message, text='Ты мне тут не стартуй!',
disable_notification=True) # Отвечаем на команду /start
# Хендлер описывающий поведение бота при вводе command1
@bot.message_handler(commands=['command1'])
def bui(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
# Открывем стикер и присваиваем его переменной
bui_pic = open('bui.webp', 'rb')
bot.send_sticker(message.chat.id, bui_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("BuiError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем стикер и присваиваем его переменной
bui_pic = open('bui.webp', 'rb')
bot.send_sticker(message.chat.id, bui_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
# Хендлер описывающий поведение бота при вводе command2
@bot.message_handler(commands=['command2'])
def zvezda(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
# Открывем стикер и присваиваем его переменной
zv_pic = open('zvezda.webp', 'rb')
bot.send_sticker(message.chat.id, zv_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("ZvezdaError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем стикер и присваиваем его переменной
zv_pic = open('zvezda.webp', 'rb')
bot.send_sticker(message.chat.id, zv_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
# Хендлер описывающий поведение бота при вводе command3
@bot.message_handler(commands=['command3'])
def jigurda(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
# Открывем стикер и присваиваем его переменной
jig_pic = open('jig.webp', 'rb')
bot.send_sticker(message.chat.id, jig_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("JigurdaError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем стикер и присваиваем его переменной
jig_pic = open('jig.webp', 'rb')
bot.send_sticker(message.chat.id, jig_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
# Хендлер описывающий поведение бота при вводе help
@bot.message_handler(commands=['help'])
def helper(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
# Отвечаем на команду /help
bot.reply_to(message, text='Гугл в помощь!', disable_notification=True)
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("HelperError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Отвечаем на команду /help
bot.reply_to(message, text='Гугл в помощь!', disable_notification=True)
# Хендлер описывающий поведение бота при голосовом сообщении в чате
@bot.message_handler(content_types=['voice'])
def voice_msg(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
# Открывем стикер и присваиваем его переменной
jpg_pic = open('voice.webp', 'rb')
bot.send_sticker(message.chat.id, jpg_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("Audio_msgError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем стикер и присваиваем его переменной
jpg_pic = open('voice.webp', 'rb')
bot.send_sticker(message.chat.id, jpg_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
@bot.message_handler(
content_types=['pinned_message']) # Хендлер описывающий поведение бота после того, как было закрепленно сообщение
def pinned_msg(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
bot.reply_to(message, text='Ну, теперь заживем!',
disable_notification=True) # Отвечаем на закрепленное сообщение
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("PinnedError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
bot.reply_to(message, text='Ну, теперь заживем',
disable_notification=True) # Отвечаем на закрепленное сообщение
# Хендлер описывающий поведение бота при добавлении аудиофайла в чат
@bot.message_handler(content_types=['audio'])
def audio_msg(message): # Запуско основной функции хендлера
try: # Пытаемся выполнить команду приведеную ниже
# Открывем изображение и присваиваем его переменной
jpg_pic = open('002.jpg', 'rb')
bot.send_sticker(message.chat.id, jpg_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем изображение
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("Audio_msgError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем изображение и присваиваем его переменной
jpg_pic = open('002.jpg', 'rb')
bot.send_sticker(message.chat.id, jpg_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем изображение
# Хендлер описывающий поведение бота на текст в чате
@bot.message_handler(content_types=['text'])
def txt(message): # Запуско основной функции хендлера
for i in range(0, len(bad_words)): # Перебираем все элементы словаря по очереди
# Проверяем наличие каждого слова из нашего словаря в сообщении
if bad_words[i] in message.text.lower():
try: # Пытаемся выполнить команду приведеную ниже
# Удаляем сообщение
bot.delete_message(message.chat.id, message.message_id, )
# Выводим удаленное сообщение в консоль
print(message.text + " delited")
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("BadWordsError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Удаляем сообщение
bot.delete_message(message.chat.id, message.message_id)
# Выводим удаленное сообщение в консоль
print(message.text + " delited")
for l in range(0, len(other_lang)): # Перебираем все элементы словаря по очеред
# Проверяем наличие каждого слова из нашего словаря в сообщении
if other_lang[l] in message.text.lower():
try: # Пытаемся выполнить команду приведеную ниже
# Открывем стикер и присваиваем его переменной
get_pic = open('get_out.webp', 'rb')
bot.send_sticker(message.chat.id, get_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("LangError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем стикер и присваиваем его переменной
get_pic = open('get_out.webp', 'rb')
bot.send_sticker(message.chat.id, get_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем стикер
for f in range(0, len(other_bot)): # Перебираем все элементы словаря по очеред
# Проверяем наличие каждого слова из нашего словаря в сообщении
if other_bot[f] in message.text.lower():
try: # Пытаемся выполнить команду приведеную ниже
# Открывем видео и присваиваем его переменной
pss_pic = open('animation.gif.mp4', 'rb')
bot.send_animation(message.chat.id, pss_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем видео
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("AnimError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем видео и присваиваем его переменной
pss_pic = open('animation.gif.mp4', 'rb')
bot.send_animation(message.chat.id, pss_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем видео
if message.text == 'Спой, птичка!': # Ищем нашу фразу в тексте сообщения
try: # Пытаемся выполнить команду приведеную ниже
bot.reply_to(message, text='Ща спою!') # Отвечаем на сообщение
# Открывем аудио и присваиваем его переменной
sti = open('001.mp3', 'rb')
bot.send_audio(message.chat.id, audio=sti, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем аудио
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("SongError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
bot.reply_to(message, text='Ща спою!') # Отвечаем на сообщение
# Открывем аудио и присваиваем его переменной
sti = open('001.mp3', 'rb')
bot.send_audio(message.chat.id, audio=sti, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем аудио
elif message.text == "Cкайнет восстаёт!": # Ищем нашу фразу в тексте сообщения
try: # Пытаемся выполнить команду приведеную ниже
# Открывем изображение и присваиваем его переменной
ver_pic = open('hqdefault.jpg', 'rb')
bot.send_photo(message.chat.id, ver_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем изображение
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("VerError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
# Открывем изображение и присваиваем его переменной
ver_pic = open('hqdefault.jpg', 'rb')
bot.send_photo(message.chat.id, ver_pic, reply_to_message_id=message.message_id,
disable_notification=True) # Отправляем изображение
elif " бот " in message.text.lower(): # Ищем нашу фразу в тексте сообщения
try: # Пытаемся выполнить команду приведеную ниже
bot.reply_to(message, text='Боты не то, чем кажутся...',
disable_notification=True) # Отвечаем на сообщение
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("Stop_wordError - Sending again after 3 seconds!!!")
# Делаем паузу в 3 секунды и выполняем команду приведеную ниже
time.sleep(3)
bot.reply_to(message, text='Боты не то, чем кажутся...',
disable_notification=True) # Отвечаем на сообщение
else: # Если ничего не подошло
pass # Идём дальше
if __name__ == '__main__': # Блок запуска бота
try: # Пытаемся выполнить команду приведеную ниже
bot.polling(none_stop=True) # Запускаем бота
except OSError: # Игнорируем ошибку по таймауту, если телеграмм успел разорвать соединение сс времени прошлой сесии
# Выводим ошибку в консоль
print("PollingError - Sending again after 5 seconds!!!")
# Делаем паузу в 5 секунд и выполняем команду приведеную ниже
time.sleep(5)
bot.polling(none_stop=True) # Запускаем бота
How do you write the code so that every time the inline button is launched, the old message is deleted and a new one appears?