Ejemplo n.º 1
0
def convert_currency(message: telebot.types.Message):

    message_parts = message.text.split()

    try:
        convert_from, convert_to, converted_amount = CurrencyConverter.convert_currency(
            message_parts)

    except ConversationException as error_msg:
        bot.send_message(message.chat.id, f'Ошибка ввода: \n{error_msg}')

    except Exception as error_msg:
        bot.send_message(message.chat.id, f'Ошибка сервера: \n{error_msg}')

    else:

        for index, element in enumerate(message_parts):
            if element.isdigit():
                break

        primal_amount = int(message_parts[index])

        readable_convert_from, readable_convert_to = CurrencyConverter.make_readable(
            convert_from, convert_to, primal_amount, converted_amount)

        bot_message = (
            f'{primal_amount} {readable_convert_from} ({currency_dict[convert_from]}) = '
            f'{floor(converted_amount)} {readable_convert_to} ({currency_dict[convert_to]})'
        )

        bot.send_message(message.chat.id, bot_message)
Ejemplo n.º 2
0
def convert(message: telebot.types.Message):
    try:
        input_ = message.text.split()
        if len(input_) != 3:
            raise APIException("Неверное количество данных.")
        quote, base, amount = input_
        val = CurrencyConverter.convert(quote, base, amount)
    except APIException as e:
        bot.reply_to(message, f"Ошибка пользователя\n{e}")
    except Exception as e:
        bot.reply_to(message, f"Не удалось обработать команду\n{e}")
    else:
        text = f'{amount} {base}  - это {val} {quote}'
        bot.send_message(message.chat.id, text)
Ejemplo n.º 3
0
def convert(message: telebot.types.Message):
    try:
        values = message.text.split(' ')
        if len(values) != 3:
            raise ConvertionException('Неверное число параметров')
        currency, currency_transfer, amount = values
        total_base = CurrencyConverter.get_price(currency, currency_transfer, amount)
    except ConvertionException as e:
        bot.reply_to(message, f'Ошибка пользователя\n{e}')
    except Exception as e:
        bot.reply_to(message, f'Не удалось обработать команду\n{e}')
    else:
        text = f'{amount} {currency} в {currency_transfer} = {round(total_base * float(amount))}'
        bot.send_message(message.chat.id, text)
def convert(message: telebot.types.Message):
    try:
        values = message.text.split(' ')
        if len(values) != 3:
            raise ConversionException('Слишком много параметров.')
        quote, base, quantity = values
        total_base = CurrencyConverter.convert(quote, base, quantity)
    except ConversionException as e:
        bot.reply_to(message, f'Ошибка пользователя.\n{e}')
    except Exception as e:
        bot.reply_to(message, f'Не удалось обработать комманду.\n{e}')
    else:
        text = f'Цена {quantity} {quote} в  {base} - {total_base}'
        bot.send_message(message.chat.id, text)
Ejemplo n.º 5
0
def convert(message: telebot.types.Message):
    try:
        values = message.text.split(' ')
        if len(values) != 3:
            raise APIException('Слишком много параметров.')

        quote, base, amount = values
        total_base = CurrencyConverter.get_price(quote, base, amount)
    except APIException as e:
        bot.reply_to(message, f'Ошибка пользователя. {e}')


    else:
        text = f'Цена {amount} {quote} в {base} - {total_base}'
        bot.send_message(message.chat.id, text)
Ejemplo n.º 6
0
def convert(message: telebot.types.Message):
    try:
        values = message.text.split(' ')
        if len(values) != 3:
            raise ConvertionException("Слишком много параметров.")
        quote, base, amount = values
        total_base = CurrencyConverter.convert(quote, base, amount)
    except ConvertionException as e:
        bot.reply_to(message, f"Ошибка пользователя.\n{e}")
    except Exception as e:
        bot.reply_to(message, f"Не удалось обработать команду.\n{e}")
    else:
        total = total_base * float(amount)
        text = f"Цена {amount} {quote} в {base} - {total}"
        bot.send_message(message.chat.id, text)
Ejemplo n.º 7
0
def convert(message: telebot.types.Message):
    try:
        values = message.text.split(' ')

        if len(values) != 3:
            raise APIException('Неправильное количество параметров')

        quote, base, amount = values
        total_base = CurrencyConverter.get_price(base, quote, amount)

    except APIException as e:
        bot.reply_to(message, f'Ошибка пользователя: \n{e}')
    except Exception as e:
        bot.reply_to(message, f'Не удалось выполнить операцию \n{e}')
    else:
        text = f'Цена {amount} {base} в {quote} - {round((total_base * float(amount)), 5)}'
        bot.send_message(message.chat.id, text)
Ejemplo n.º 8
0
def convert(message: telebot.types.Message):
    try:
        values = message.text.split(' ')

        if len(values) != 3:
            raise ConvertionException('Неправильное количество параметров')

        values[2] = values[2].replace(
            ',', ".")  # Замена запятой на точку для обработки <float>
        base, quote, amount = values
        total_base = CurrencyConverter.get_price(base, quote, amount)
    except ConvertionException as e:
        bot.reply_to(message, f'Ошибка пользователя.\n{e}')
    except Exception as e:
        bot.reply_to(message, f'Не удалось обработать команду.\n{e}')
    else:
        text = f'Цена {amount} {base} в {quote} - {round((total_base * float(amount)), 5)}'
        bot.send_message(message.chat.id, text)
Ejemplo n.º 9
0
def convert(message: telebot.types.Message):
    #Для обработки исключений всю обработку обернем в try
    try:
        list_of_values = message.text.split(' ')

        if len(list_of_values) != 3:
            raise APIException('Не верное количество параметров.')

        base, quote, amount = list_of_values
        #Вызовем собственно саму обработку конвертации
        total_amount = CurrencyConverter.get_price(base, quote, amount)
    except APIException as e:
        bot.reply_to(message, f'Ошибка пользователя.\n{e}')
    except Exception as e:
        bot.reply_to(
            message,
            f'Упс.. Что-то пошло не так. Не удалось обработать команду\n{e}')
    else:
        #Если код в попытке (try) выполнился успешно - выведем пользователю полученную сумму
        text = f'Сумма после конвертации: {round(total_amount, 2)} {keys[quote]}'
        bot.reply_to(message, text)