Реализован телеграм бот для конвертации валют.
- Бот возвращает цену на определённое количество валюты (евро, доллар, рубль..).
- При написании бота использована библиотеку pytelegrambotapi.
- Пользователь должен отправить сообщение боту в виде <имя валюты цену которой он хочет узнать> <имя валюты в которой надо узнать цену первой валюты> <количество первой валюты> или использовать кнопки.
- При вводе команды /start или /help пользователю выводятся инструкции по применению бота.
- При вводе команды /values выводится информация о всех доступных валютах в читаемом виде.
- Для взятия курса валют используется Currency Data API и отправляются к нему запросы с помощью библиотеки Requests.
- Для парсинга полученных ответов используется библиотеку JSON.
- При ошибке пользователя (например, введена неправильная или несуществующая валюта или неправильно введено число) вызыватся написанное исключение APIException с текстом пояснения ошибки.
- Текст любой ошибки с указанием типа ошибки отправляется пользователю в сообщении.
- Для отправки запросов к API описан класс со статическим методом get_convert(), который принимает три аргумента: имя валюты, цену на которую надо узнать, имя валюты, цену в которой надо узнать, количество переводимой валюты и возвращает нужную сумму в валюте.
- Все классы хранятся в файле extensions.py.
![](https://private-user-images.githubusercontent.com/114347290/239749119-8f4ccd23-a75c-4e73-96b5-5bd19b87fb19.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjU2OTIsIm5iZiI6MTczOTE2NTM5MiwicGF0aCI6Ii8xMTQzNDcyOTAvMjM5NzQ5MTE5LThmNGNjZDIzLWE3NWMtNGU3My05NmI1LTViZDE5Yjg3ZmIxOS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQwNTI5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0xYjg2NjQ5OTBhYjViMzM5MTAzNTRjZWE4YjYyMjg2ODAwOTI4ZTZlZDM0MDFhOTE3NzA1YWJmMzI3N2ZiZjY5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.eGxHJ1exQi4ZMqqvkNgmSlgFLqQFv8kTLWjsv53VF_g)
![](https://private-user-images.githubusercontent.com/114347290/239749158-fa435e7f-7325-4362-8483-5bb1f9148321.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjU2OTIsIm5iZiI6MTczOTE2NTM5MiwicGF0aCI6Ii8xMTQzNDcyOTAvMjM5NzQ5MTU4LWZhNDM1ZTdmLTczMjUtNDM2Mi04NDgzLTViYjFmOTE0ODMyMS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQwNTI5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hMzEwZDEzZjY3Mzk2ZjkzZTgzZjQyNWNkMjVmYWE3Nzg2OTZhZmNhYjk0N2M2MzdiYzQ3OTIwNzRiODg3NTQ4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.kF72O2FBrBFFwTYF4QkCCa92WuKK4XnNWrcFC_Qgy5g)
![](https://private-user-images.githubusercontent.com/114347290/239749164-82d7e2d5-394f-4b4f-be2a-3d34041dda75.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjU2OTIsIm5iZiI6MTczOTE2NTM5MiwicGF0aCI6Ii8xMTQzNDcyOTAvMjM5NzQ5MTY0LTgyZDdlMmQ1LTM5NGYtNGI0Zi1iZTJhLTNkMzQwNDFkZGE3NS5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQwNTI5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT00ZThkYjE0ZjJmNDhjMGNkMWExZGI1OGRlZTRkNjdiYmE1YzM5OTFhNmE5NGI1ZmQxZjhiZTI4MTZmNGJhMzY4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.rSdtCvaIQJKm-CvJAgVWhZIck7EPpkMW0ISQ_CYZzac)