diff --git a/example_bot.py b/example_bot.py new file mode 100644 index 0000000..ec5243a --- /dev/null +++ b/example_bot.py @@ -0,0 +1,132 @@ +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()) + print(response) + 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()