cdm_example_user_api/example_bot.py
justuser 79e1bee44e up
2024-12-05 11:07:14 +03:00

132 lines
5.2 KiB
Python

import telebot
from call2api import *
bot = telebot.TeleBot('YOUR_BOT_TOKEN')
@bot.message_handler(commands=['help'])
def send_help(message):
help_text = '''
```
/set_creds <nick> <token> - Установка ника, токена.
/check_token - Проверка валидности токена.
/check_bal - Проверка баланса пользователя.
/get_time2cdm - Получения времени CDM.
/get_stat [date] - Получение статистики. Опционально: указание даты.
/transfer_coins <dst_nick> <amount> - Перевести CDM другому пользователю.
/gen_fp <amount> - Генерация чека для оплаты.
/list_fp - Список чеков.
/del_fp <fp_id> - Удалить чек.
```'''
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 <nick> <token> - Установка ника, токена.`', 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 <nick> <token> - Установка ника, токена.`', 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 <nick> <token> - Установка ника, токена.`', 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 <nick> <token> - Установка ника, токена.`', 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 <nick> <token> - Установка ника, токена.`', 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(), 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 <nick> <token> - Установка ника, токена.`', 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()