import telebot
from Config import keys, TOKEN
from extensions import APIException, CryptoConverter


bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=["values"])
def values(message: telebot.types.Message):
	text="Доступные валюты: "
	for key in keys.keys():
		text ="\n".join((text, key, ))
	bot.reply_to(message, text)



@bot.message_handler(commands=["start", "help"])
def help(message: telebot.types.Message):
	text = "Чтобы начать работу введите команду боту в слейдующем формате: \n<Имя валюты>  \
<В какую валюту перевести> \
<Количество переводимой валюты>\n Узнать список доступных валют команда : /values \n \
Инструкция по боту /help"
	bot.reply_to(message, text)


@bot.message_handler(content_types=["text", ])
def get_price(message: telebot.types.Message):
	try:
		values =  message.text.split(" ")

		if len(values) != 3:
			raise APIException("Слишком много или мало параметров.")

		quote, base, amount = values
		total_base = CryptoConverter.get_price(quote, base, amount)
	except APIException as e:
		bot.reply_to(message, f" Ошибка пользователя \n {e}")
	except Exception:
		bot.reply_to(message, f"Не удалось обработать команду\n{e}")
	else:	
		text = f"Цена {amount} {quote} в {base} - {round(float(total_base) * float(amount), 3)}  "
		bot.send_message(message.chat.id, text)



bot.polling()


