|
import gradio as gr |
|
import requests |
|
|
|
|
|
def get_exchange_rate(source, target, amount=1): |
|
headers = { |
|
'accept': '*/*', |
|
'accept-language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7', |
|
'authorization': 'Basic OGNhN2FlMjUtOTNjNS00MmFlLThhYjQtMzlkZTFlOTQzZDEwOjliN2UzNmZkLWRjYjgtNDEwZS1hYzc3LTQ5NGRmYmEyZGJjZA==', |
|
'content-type': 'application/json', |
|
'origin': 'https://wise.com', |
|
'priority': 'u=1, i', |
|
'referer': 'https://wise.com/', |
|
'sec-ch-ua': '"Google Chrome";v="125", "Chromium";v="125", "Not.A/Brand";v="24"', |
|
'sec-ch-ua-mobile': '?0', |
|
'sec-ch-ua-platform': '"Linux"', |
|
'sec-fetch-dest': 'empty', |
|
'sec-fetch-mode': 'cors', |
|
'sec-fetch-site': 'same-site', |
|
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', |
|
} |
|
|
|
params = { |
|
'source': source.upper(), |
|
'target': target.upper(), |
|
} |
|
|
|
response = requests.get('https://api.wise.com/v1/rates', params=params, headers=headers) |
|
|
|
if response.status_code == 200: |
|
data = response.json() |
|
if data: |
|
d= data[0] |
|
d['amount'] = amount |
|
d['amount converted'] = d['amount'] * d['rate'] |
|
return d |
|
else: |
|
return {'error': 'No data found'} |
|
else: |
|
return {'error': 'Failed to fetch data'} |
|
|
|
|
|
iface = gr.Interface( |
|
fn=get_exchange_rate, |
|
inputs=[gr.Textbox(label="Source Currency", value="EUR"), |
|
gr.Textbox(label="Target Currency", value="MAD"), |
|
gr.Number(label="Amount", value=1)], |
|
outputs="json", |
|
title="Currency Exchange Rate", |
|
description="Get the exchange rate using the Wise API." |
|
) |
|
|
|
iface.launch() |