import telebot from call2api import * bot = telebot.TeleBot('YOUR_BOT_TOKEN') @bot.message_handler(commands=['help']) def send_help(message): help_text = ''' ``` /set_creds - Установка ника, токена. /check_token - Проверка валидности токена. /check_bal - Проверка баланса пользователя. /get_time2cdm - Получения времени CDM. /get_stat [date] - Получение статистики. Опционально: указание даты. /transfer_coins - Перевести CDM другому пользователю. /gen_fp - Генерация чека для оплаты. /list_fp - Список чеков. /del_fp - Удалить чек. ```''' bot.reply_to(message, help_text, parse_mode = 'Markdown') def parse_command_data(message, num_params, set_creds=False): try: if creds_setted() or set_creds: command_parts = message.text.split() if len(command_parts) < num_params + 1: bot.reply_to(message, 'Недопустимые параметры.') raise ValueError if num_params == 1: return command_parts[1] return command_parts[1:num_params + 1] else: bot.reply_to(message, f'`/set_creds - Установка ника, токена.`', parse_mode='Markdown') except ValueError: bot.reply_to(message, 'Недопустимые параметры') return None # Задание ника и токена для удобства global NICK, TOKEN NICK = None TOKEN = None def creds_setted(): global NICK, TOKEN if NICK and TOKEN: return True else: return False def get_nick(): global NICK return NICK def get_token(): global TOKEN return TOKEN @bot.message_handler(commands=['set_creds']) def set_creds(message): params = parse_command_data(message, 2, set_creds=True) if params: nick, token = params global NICK, TOKEN NICK = nick; TOKEN = token bot.reply_to(message, f'Данные установлены') @bot.message_handler(commands=['check_token']) def handle_check_token(message): if creds_setted(): response = check_token(get_nick(), get_token()) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') else: bot.reply_to(message, f'`/set_creds - Установка ника, токена.`', parse_mode='Markdown') @bot.message_handler(commands=['check_bal']) def handle_check_bal(message): if creds_setted(): response = check_bal(get_nick(), get_token()) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') else: bot.reply_to(message, f'`/set_creds - Установка ника, токена.`', parse_mode='Markdown') @bot.message_handler(commands=['get_time2cdm']) def handle_get_time2cdm(message): if creds_setted(): response = get_time2cdm(get_nick(), get_token()) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') else: bot.reply_to(message, f'`/set_creds - Установка ника, токена.`', parse_mode='Markdown') @bot.message_handler(commands=['get_stat']) def handle_get_stat(message): if creds_setted(): date = message.text.split()[1] if len(message.text.split()) > 1 else None response = get_stat(get_nick(), get_token(), date) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') else: bot.reply_to(message, f'`/set_creds - Установка ника, токена.`', parse_mode='Markdown') @bot.message_handler(commands=['transfer_coins']) def handle_transfer_coins(message): params = parse_command_data(message, 2) if params: dst_nick, amount = params response = transfer_coins(get_nick(), get_token(), dst_nick, amount) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') @bot.message_handler(commands=['gen_fp']) def handle_gen_fp(message): params = parse_command_data(message, 1) if params: amount = params response = gen_fp(get_nick(), get_token(), str(amount), str(message.from_user.id)) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') @bot.message_handler(commands=['list_fp']) def handle_list_fp(message): if creds_setted(): response = list_fp(get_nick(), get_token()) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') else: bot.reply_to(message, f'`/set_creds - Установка ника, токена.`', parse_mode='Markdown') @bot.message_handler(commands=['del_fp']) def handle_del_fp(message): params = parse_command_data(message, 1) if params: fp_id = params response = del_fp(get_nick(), get_token(), fp_id) bot.reply_to(message, f'Результат: ```\n{response}```', parse_mode='Markdown') bot.polling()