Так-с, а если хранить счётчик прямо в кнопке, в callback data? Мне кажется, будет отлично!
Не проверял, возможно не работает,
просто
как идея.
import telebot
from telebot import types
a = 100
bot = telebot.TeleBot('токен ')
def make_buttons(a):
markup = types.InlineKeyboardMarkup()
markup.row_width = 1
markup.add(types.InlineKeyboardButton(text="click", callback_data="cb_minus_"+str(a)))
return markup
@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(
message.chat.id,
text="Привет, {0.first_name}! жми кнопки)))".format(message.from_user),
reply_markup=make_buttons(a)
)
@bot.callback_query_handler(func=lambda call: print(call.data))
@bot.callback_query_handler(func=lambda call: call.data.startswith('cb_'))
def callback_query(call):
print(call.data)
_, op, digit = call.data.split("_")
digit=int(digit)
if op=="minus":
digit-=1
bot.edit_message_reply_markup(
call.message.chat.id,
call.message.id,
make_buttons(digit)
)
bot.answer_callback_query(call.id, str(digit), show_alert=True)
bot.polling(none_stop=True)