import requests
import json

API_KEY = "6d8e1fd0e94b3d64012af02f7cd3699a"

def get_coordinates(city: str):
    url = f'http://api.openweathermap.org/geo/1.0/direct?q={city}&appid={API_KEY}'

    response = requests.get(url).json()

    # print(json.dumps(response, indent=4))
    return response[0]["lat"], response[0]["lon"], response[0]["country"]

def get_weather(lat, lon):
    url = f'https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&units=metric&appid={API_KEY}'

    response = requests.get(url).json()

    # print(json.dumps(response, indent=4))
    return response["weather"][0]["description"], response["main"]["temp"]

def get_country(country_code):
    url = f'https://restcountries.com/v3.1/alpha/{country_code.lower()}'
    
    response = requests.get(url).json()

    # print(json.dumps(response, indent=4))

    return list(response[0]["currencies"].keys())[0]
    
def get_rates(curr_code):
    if curr_code == 'PLN':
        return 1
    
    url = f'https://api.nbp.pl/api/exchangerates/rates/A/{curr_code}/'

    response = requests.get(url).json()

    print(json.dumps(response, indent=4))
    return response["rates"]["mid"]



print("-- Travellist --")
strat = int('Skąd : ')
end = int('Dokąd : ')

lat1, lon1, country1 = get_coordinates(strat)
lat2, lon2, country2 = get_coordinates(end)

desc, temp = get_weather(lat2, lon2)

curr_code = get_country(country2) # PLN

curr_mid = get_rates(curr_code)

print(desc, temp)