пытаюсь сделать первого бота для обработки своей зп но не могу понять как сохранять данные после обработки кнопкой в переменную...
вот такой код :
import telebot
from telebot import types
import time
import works
token = ''
bot = telebot.TeleBot(token)
count_price = 0 # сумма за текущий месяц
count_all = 0 # сумма за все время
user_state = {}
MAIN_MENU = 0 # главное меню
FIRST_WORK_MENU = 1 # меню работ
ADD_WORK_MENU = 2 # меню доюавления работ
@bot.message_handler(commands=['start'])
def start(message):
user_id = message.from_user.id
user_state[user_id] = MAIN_MENU
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton(" Главное меню")
btn2 = types.KeyboardButton("ℹ️ Информация")
btn3 = types.KeyboardButton("ℹ️️ начать подсчет зарплаты")
btn4 = types.KeyboardButton("ℹ️️ итог за месяц")
btn5 = types.KeyboardButton("ℹ️ итог за все время")
markup.add(btn1, btn2, btn3,btn4,btn5)
bot.send_message(message.chat.id, "Добро пожаловать! Выберите пункт меню:", reply_markup=markup)
@bot.message_handler(content_types=['text'])
def handle_text(message, massage=None, count_all=int(), count_price=int(), count_work=None):
if message.text == " Главное меню": # кнопка главного меню
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton(" Главное меню")
btn2 = types.KeyboardButton("ℹ️ Информация")
btn3 = types.KeyboardButton("ℹ️️ начать подсчет зарплаты")
btn4 = types.KeyboardButton("ℹ️️ итог за месяц")
btn5 = types.KeyboardButton("ℹ️ итог за все время")
markup.add(btn1, btn2, btn3,btn4,btn5)
bot.send_message(message.chat.id, "Добро пожаловать! Выберите пункт меню:", reply_markup=markup)
elif message.text == "ℹ️ Информация": # кнопка информация
bot.send_message(message.chat.id, "Этот бот создан для подсчета зарплаты самозанятых монтажников МГТС.\n\n"
"-Вы можете начать подсчет зарплаты в меню нажав кнопку 'ℹ️️ начать подсчет зарплаты'.\n\n"
"-Вы можете посмотреть итог за месяц нажав кнопку 'ℹ️️ итог за месяц'.\n\n"
"-Вы можете посмотреть итог за все время нажав кнопку 'ℹ️ итог за все время'.\n\n"
"-Вы можете вернутся в начальное меню нажав кнопку ' Главное меню'.\n\n"
'Хорошего дня!'
)
elif message.text == "ℹ️️ начать подсчет зарплаты": # кнопка начать подсчет зарплаты
user_state[message.from_user.id] = FIRST_WORK_MENU
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
bt1 = types.KeyboardButton("добавление выполненых работ")
bt2 = types.KeyboardButton("обнуление месяца/сохранение итогов")
bt3 = types.KeyboardButton(" Главное меню")
markup.add(bt1, bt2, bt3)
bot.send_message(message.chat.id, "Выберите тип выполненной работы или выход в главное меню:", reply_markup=markup)
elif message.text == "добавление выполненых работ": # кнопка добавление выполненых работ
user_state[message.from_user.id] = ADD_WORK_MENU
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn_1 = types.KeyboardButton("подключение коннектор")
btn_2 = types.KeyboardButton("подключение сварка")
btn_3 = types.KeyboardButton("подключение доп")
btn_4 = types.KeyboardButton("кроссировка")
btn_5 = types.KeyboardButton("доплата")
btn_6 = types.KeyboardButton("обслуживание")
btn_7 = types.KeyboardButton("обслуживание область")
btn_8 = types.KeyboardButton("замена оборудования")
btn_9 = types.KeyboardButton("подключение кабель проложен")
btn_10 = types.KeyboardButton("подключение интернета")
btn_11 = types.KeyboardButton("подключение тв")
btn_12 = types.KeyboardButton("доставка симкарты")
btn_13 = types.KeyboardButton("демонтаж онт")
btn_14 = types.KeyboardButton("демонтаж прочих")
btn_15 = types.KeyboardButton("камера")
btn_16 = types.KeyboardButton(" Главное меню")
markup.add(btn_1, btn_2, btn_3, btn_4, btn_5, btn_6, btn_7, btn_8, btn_9, btn_10, btn_11, btn_12, btn_13, btn_14, btn_15, btn_16)
bot.send_message(message.chat.id, "Выберите тип выполненной работы или выход в главное меню:",
reply_markup=markup)
elif message.text == "ℹ️️ итог за месяц": # кнопка итог за месяц показывает какая сумма получилась за текущий месяц
bot.send_message(message.chat.id, f'сумма за месяц: {count_price} руб.')
elif message.text == "ℹ️ итог за все время": # кнопка итог за все время показывает какая сумма получилась за все время со сводкой по каждому месяцу
bot.send_message(message.chat.id, f'сумма за все время: {count_all} руб.')
# обнуление итогов за месяц с сохранением в отдельную переменную с датой текущего сохранения
elif message.text == "обнуление месяца/сохранение итогов":
count_all += count_price
count_price = int(0)
bot.send_message(message.chat.id, f'месяц обнулен. сумма: {count_price} руб. \n'
f'итог за все время: {count_all} руб. \n'f'')
elif message.text == "подключение коннектор":
for work_price in works.items():
if work_price[0] == 'подключение коннектор':
count_price += int(work_price[1])
break
bot.send_message(message.chat.id, f'{work_price[0]}: {work_price[1]} руб. \n'f'итог за месяц: {count_price} руб. \n'f'')
bot.polling(none_stop=True)