Как на команду старт в боте поставить счетчик и выводить значение счетчика через определенную команду?
Как в данный код вписать переменную, которая при нажатии на старт в боте увеличивалась на 1
И при вводе команды /stata в боте выводило значение переменной
import telebot
from telebot import types
bot = telebot.TeleBot('токен')
@bot.message_handler(commands=['start'])
def start(message):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton("текст"))
bot.send_message(message.chat.id, 'текст', reply_markup=markup)
bot.polling(none_stop=True)
Ответы (1 шт):
Автор решения: RottenRat
→ Ссылка
Здесь может быть 2 варианта
Переменная на сессию(при перезапуске бота обнуляется):
i = 0
...
def start(message):
i = i + 1
if message.text.lstrip('/').lower() == 'start':
bot.send_message(message.from_user.id, str(i))
...
Или переменная, которая хранится вне программы(для примера возьмем JSON)
Пусть json файл будет выглядеть следующим образом:
{
"startcount":0
}
Тогда в программе мы можем сделать так
import json
with open('file.json') as json_file:
data = json.load(json_file)
...
def start(message):
data['startcount'] = data['startcount'] + 1
with open('file.json', 'w') as outfile:
json.dump(data, outfile)
if message.text.lstrip('/').lower() == 'start':
bot.send_message(message.from_user.id, str(data['startcount']))
...