bot = telebot.TeleBot(TOKEN)
class UserData:
NUMBER = 0
markup = types.InlineKeyboardMarkup()
button1 = types.InlineKeyboardButton(text='Start Spam', callback_data='request1')
button2 = types.InlineKeyboardButton(text='Stop Spam', callback_data='request2')
markup.add(button1)
markup.add(button2)
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, text='Welcome to bot!', reply_markup=markup)
@bot.callback_query_handler(func=lambda call:True)
def callback(call):
if call.message:
if call.data == 'request1':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text='Рассылка запущена: ' + str(UserData.NUMBER), reply_markup=markup)
if call.data == 'request2':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text='Рассылка остановлена!', reply_markup=markup)
bot.infinity_polling()
Есть переменная NUMBER в классе UserData, каждые 1-2 секунд она обновляется и получает новое числовое значение. Значение данной переменной выводится в сообщении бота.
if call.data == 'request1':
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text='Рассылка запущена: ' + str(UserData.NUMBER), reply_markup=markup)
Как бы вы обновляли/редактировали сообщение от бота, чтобы был визуальный эффект динамичного обновления значения переменной прямо в тексте сообщения.
Использовать time.sleep() - плохой вариант. Второй день ломаю голову.