Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/quaddarv1ne/currencyconverter
Конвертер валют — это приложение, позволяющее быстро переводить одну валюту в другую по курсу. Такие инструменты массово доступны в интернете, воспользоваться ими можно бесплатно
https://github.com/quaddarv1ne/currencyconverter
banking beatifulsoup currency-converter exchange git maximdupley python python3 qt qt5 qt6 qtcreator quadd4rv1n7 ui
Last synced: 2 months ago
JSON representation
Конвертер валют — это приложение, позволяющее быстро переводить одну валюту в другую по курсу. Такие инструменты массово доступны в интернете, воспользоваться ими можно бесплатно
- Host: GitHub
- URL: https://github.com/quaddarv1ne/currencyconverter
- Owner: QuadDarv1ne
- License: other
- Created: 2024-03-12T15:31:47.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-08-29T06:57:59.000Z (4 months ago)
- Last Synced: 2024-10-12T00:44:54.305Z (2 months ago)
- Topics: banking, beatifulsoup, currency-converter, exchange, git, maximdupley, python, python3, qt, qt5, qt6, qtcreator, quadd4rv1n7, ui
- Language: Python
- Homepage: https://stepik.org/users/150943726/teach
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Currency Converter - Конвертер Валют
Конвертер валют — это приложение, позволяющее быстро переводить одну валюту в другую по курсу.
Такие инструменты массово доступны в интернете, воспользоваться ими можно бесплатно.> Конвертер валют на PyQT5 c использованием серсиса Xe.
[Xe](https://www.xe.com/ "Всплывающая подсказка") — это компания, предоставляющая инструменты и услуги по обмену иностранной валюты онлайн.
Наиболее известна Xe своим онлайн-конвертером валют.
В этом разделе мы воспользуемся такими библиотеками, как [requests](https://pypi.org/project/requests/) и [BeautifulSoup](https://pypi.org/project/beautifulsoup4/), чтобы сделать на их основе собственный конвертер валют.Пример кода:
```python
import requests
from bs4 import BeautifulSoup as bs
import re
from dateutil.parser import parse
```
Теперь давайте создадим функцию, которая принимает исходную валюту, целевую валюту и сумму, которую мы хотим конвертировать, а затем возвращает конвертированную сумму вместе с датой и временем обменного курса.Выглядеть это будет следующим образом:
```python
def convert_currency_xe(src, dst, amount):
def get_digits(text):
"""Returns the digits and dots only from an input `text` as a float
Args:
text (str): Target text to parse
"""
new_text = ""
for c in text:
if c.isdigit() or c == ".":
new_text += c
return float(new_text)
url = f"https://www.xe.com/currencyconverter/convert/?Amount={amount}&From={src}&To={dst}"
content = requests.get(url).content
soup = bs(content, "html.parser")
exchange_rate_html = soup.find_all("p")[2]
# get the last updated datetime
last_updated_datetime = parse(re.search(r"Last updated (.+)", exchange_rate_html.parent.parent.find_all("div")[-2].text).group()[12:])
return last_updated_datetime, get_digits(exchange_rate_html.text)
```На момент написания данного руководства обменный курс находился в третьем абзаце HTML-страницы.
Это объясняет строчку: ```soup.find_all("p")[2]```.
Не забывайте вносить правки, когда в HTML-страницу вносятся изменения.В HTML DOM последняя дата и время обменного курса находятся во втором родителе абзаца exchange rate.
Поскольку обменный курс содержит строковые символы, мы создали функцию get_digits() для извлечения из заданной строки только цифр и точек.
Что ж, давайте воспользуемся нашей функцией:
```python
if __name__ == "__main__":
import sys
source_currency = sys.argv[1]
destination_currency = sys.argv[2]
amount = float(sys.argv[3])
last_updated_datetime, exchange_rate = convert_currency_xe(source_currency, destination_currency, amount)
print("Last updated datetime:", last_updated_datetime)
print(f"{amount} {source_currency} = {exchange_rate} {destination_currency}")
```На этот раз нам нужно передать исходную и целевую валюты, а также сумму из командной строки.
Мы также попытаемся конвертировать 1000 евро в доллары США с помощью команды в консоли:
```commandline
python xe_currency_converter.py EUR USD 1000
```Мы получим следующий результат:
```commandline
Last updated datetime: 2022-02-01 13:04:00+00:00
1000.0 EUR = 1125.8987 USD
```
Замечательно!
Xe обычно обновляется каждую минуту, так что мы получаем результат в режиме реального времени 👀[Qt Creator](https://doc.qt.io/qtcreator/ "Qt Creator — это кроссплатформенная, полностью интегрированная среда разработки (IDE) для разработчиков приложений, позволяющая создавать приложения для нескольких платформ настольных, встроенных и мобильных устройств, таких как Android и iOS. Он доступен для операционных систем Linux, macOS и Windows") — кроссплатформенная свободная IDE для разработки на С, С++ и QML.
Разработана Trolltech для работы с фреймворком Qt.
Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML.![image](https://github.com/QuadDarv1ne/CurrencyConverter/assets/51045274/940baaca-152b-40e5-af7c-9847e289ea00)
> Дата: 12.03.2024
>
> Разработчик: Дуплей Максим Игоревич