import requests
from pprint import pprint

API_KEY = "d9aaaf357cf198a1749de39fb32a9e7a"

def check_coordinates(city, API_KEY):
    response = requests.get(f'http://api.openweathermap.org/geo/1.0/direct?q={city}&appid={API_KEY}')
    #print(response.status_code)
    #pprint(response.json())
    lat = response.json()[0]['lat']
    lon = response.json()[0]['lon']
    country = response.json()[0]['country']
    return lat, lon, country

def get_weather_info(lat,lon):
    response = requests.get(f'https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&limit=1&appid={API_KEY}&lang=PL&units=metric')
    #print(response.status_code)
    #pprint(response.json())
    response_json = response.json()
    weather = response_json['weather'][0]['description']
    temperature = response_json['main']['temp']
    pressure = response_json['main']['pressure']
    humidity = response_json['main']['humidity']
    return weather, temperature, pressure, humidity

def get_currency_code(country_code):
    url = f"https://restcountries.com/v3.1/alpha/{country_code.upper()}"
    response = requests.get(url)
    currency_code = list(response.json()[0]['currencies'].keys())[0]
    return currency_code

def get_country_full_name(country_code):
    url = f"https://restcountries.com/v3.1/alpha/{country_code.upper()}"
    try:
        response = requests.get(url)
        country_name = response.json()[0]['name']['common']
    except:
        return country_code
    else:
        return country_name

origin_place = None
destination_place = None

while True:
    print('Jaką akcje chcesz wykonać?' \
    '1. Podaj/zmień miejsce startowe' \
    '2. Podaj/zmień miejsce docelowe' \
    '3. Sprawdz lokalizacje miejsca startowego' \
    '4. Sprawdz lokalizacje miejsca docelowego' \
    '5. Sprawdz pogode miejsca startowego' \
    '6. Sprawdz pogode miejsca docelowego' \
    '7. Koniec')

    chosen_option = int(input())

    if chosen_option == 1:
        origin_place = input("Podaj miejsce startowe.\n")
        print(origin_place)
    elif chosen_option == 2:
        destination_place = input("Podaj miejsce docelowe.\n")
        print(destination_place)
    elif chosen_option == 3:
        if origin_place is not None:
            lat, lon, country = check_coordinates(origin_place, API_KEY)
            country_name = get_country_full_name(country)
            print(f"Miasto {origin_place} leży w kraju {country_name} \n Długości Geograficzna: {lon}, szerokość geograficzna: {lat}")
        else:
            print("Najpierw musisz podać miasto startowe")
    elif chosen_option == 4:
        pass
    elif chosen_option == 5:
        pass
    elif chosen_option == 6:
        pass
    elif chosen_option == 7:
        quit()
    else:
        print("Wybrałeś błędną opcje")
