diff --git a/data/icons/weather/01d.png b/data/icons/weather/01d.png new file mode 100644 index 000000000..bff6a8d39 Binary files /dev/null and b/data/icons/weather/01d.png differ diff --git a/data/icons/weather/01n.png b/data/icons/weather/01n.png new file mode 100644 index 000000000..c537b7bc0 Binary files /dev/null and b/data/icons/weather/01n.png differ diff --git a/data/icons/weather/02d.png b/data/icons/weather/02d.png new file mode 100644 index 000000000..e40e83a4d Binary files /dev/null and b/data/icons/weather/02d.png differ diff --git a/data/icons/weather/02n.png b/data/icons/weather/02n.png new file mode 100644 index 000000000..36a1d2031 Binary files /dev/null and b/data/icons/weather/02n.png differ diff --git a/data/icons/weather/03d.png b/data/icons/weather/03d.png new file mode 100644 index 000000000..8030eea54 Binary files /dev/null and b/data/icons/weather/03d.png differ diff --git a/data/icons/weather/03n.png b/data/icons/weather/03n.png new file mode 100644 index 000000000..8030eea54 Binary files /dev/null and b/data/icons/weather/03n.png differ diff --git a/data/icons/weather/04d.png b/data/icons/weather/04d.png new file mode 100644 index 000000000..ffabaf0b6 Binary files /dev/null and b/data/icons/weather/04d.png differ diff --git a/data/icons/weather/04n.png b/data/icons/weather/04n.png new file mode 100644 index 000000000..ffabaf0b6 Binary files /dev/null and b/data/icons/weather/04n.png differ diff --git a/data/icons/weather/09d.png b/data/icons/weather/09d.png new file mode 100644 index 000000000..e618e8a81 Binary files /dev/null and b/data/icons/weather/09d.png differ diff --git a/data/icons/weather/09n.png b/data/icons/weather/09n.png new file mode 100644 index 000000000..f1aadbb23 Binary files /dev/null and b/data/icons/weather/09n.png differ diff --git a/data/icons/weather/10d.png b/data/icons/weather/10d.png new file mode 100644 index 000000000..597fb1b90 Binary files /dev/null and b/data/icons/weather/10d.png differ diff --git a/data/icons/weather/10n.png b/data/icons/weather/10n.png new file mode 100644 index 000000000..5d90a397e Binary files /dev/null and b/data/icons/weather/10n.png differ diff --git a/data/icons/weather/11d.png b/data/icons/weather/11d.png new file mode 100644 index 000000000..d46709207 Binary files /dev/null and b/data/icons/weather/11d.png differ diff --git a/data/icons/weather/11n.png b/data/icons/weather/11n.png new file mode 100644 index 000000000..e26650443 Binary files /dev/null and b/data/icons/weather/11n.png differ diff --git a/data/icons/weather/13d.png b/data/icons/weather/13d.png new file mode 100644 index 000000000..feff30d75 Binary files /dev/null and b/data/icons/weather/13d.png differ diff --git a/data/icons/weather/13n.png b/data/icons/weather/13n.png new file mode 100644 index 000000000..fe90d9902 Binary files /dev/null and b/data/icons/weather/13n.png differ diff --git a/data/icons/weather/50d.png b/data/icons/weather/50d.png new file mode 100644 index 000000000..7c0bd519a Binary files /dev/null and b/data/icons/weather/50d.png differ diff --git a/data/icons/weather/50n.png b/data/icons/weather/50n.png new file mode 100644 index 000000000..8970d3f73 Binary files /dev/null and b/data/icons/weather/50n.png differ diff --git a/data/icons/weather/Makefile.am b/data/icons/weather/Makefile.am index 70ea8f26e..6fab76258 100644 --- a/data/icons/weather/Makefile.am +++ b/data/icons/weather/Makefile.am @@ -1,14 +1,22 @@ installdir = $(ICONSDIR)/weather install_DATA = \ - clear-day.png \ - clear-night.png \ - cloudy.png \ - fog.png \ - partly-cloudy-day.png \ - partly-cloudy-night.png \ - rain.png \ - sleet.png \ - snow.png \ - unknown.png \ - wind.png + 01d.png \ + 01n.png \ + 02d.png \ + 02n.png \ + 03d.png \ + 03n.png \ + 04d.png \ + 04n.png \ + 09d.png \ + 09n.png \ + 10d.png \ + 10n.png \ + 11d.png \ + 11n.png \ + 13d.png \ + 13n.png \ + 50d.png \ + 50n.png \ + unknown.png diff --git a/data/icons/weather/clear-day.png b/data/icons/weather/clear-day.png deleted file mode 100644 index d8aedc46e..000000000 Binary files a/data/icons/weather/clear-day.png and /dev/null differ diff --git a/data/icons/weather/clear-night.png b/data/icons/weather/clear-night.png deleted file mode 100644 index 837f94eb2..000000000 Binary files a/data/icons/weather/clear-night.png and /dev/null differ diff --git a/data/icons/weather/cloudy.png b/data/icons/weather/cloudy.png deleted file mode 100644 index 97ffcb85b..000000000 Binary files a/data/icons/weather/cloudy.png and /dev/null differ diff --git a/data/icons/weather/fog.png b/data/icons/weather/fog.png deleted file mode 100644 index c6056e0b0..000000000 Binary files a/data/icons/weather/fog.png and /dev/null differ diff --git a/data/icons/weather/partly-cloudy-day.png b/data/icons/weather/partly-cloudy-day.png deleted file mode 100644 index 29b46e725..000000000 Binary files a/data/icons/weather/partly-cloudy-day.png and /dev/null differ diff --git a/data/icons/weather/partly-cloudy-night.png b/data/icons/weather/partly-cloudy-night.png deleted file mode 100644 index 9e8d62ee7..000000000 Binary files a/data/icons/weather/partly-cloudy-night.png and /dev/null differ diff --git a/data/icons/weather/rain.png b/data/icons/weather/rain.png deleted file mode 100644 index 443c1b328..000000000 Binary files a/data/icons/weather/rain.png and /dev/null differ diff --git a/data/icons/weather/sleet.png b/data/icons/weather/sleet.png deleted file mode 100644 index e9a32d44b..000000000 Binary files a/data/icons/weather/sleet.png and /dev/null differ diff --git a/data/icons/weather/snow.png b/data/icons/weather/snow.png deleted file mode 100644 index 3042052f6..000000000 Binary files a/data/icons/weather/snow.png and /dev/null differ diff --git a/data/icons/weather/wind.png b/data/icons/weather/wind.png deleted file mode 100644 index 0d8e26651..000000000 Binary files a/data/icons/weather/wind.png and /dev/null differ diff --git a/src/gui/weather.cpp b/src/gui/weather.cpp index 777c556ad..336a6ba58 100644 --- a/src/gui/weather.cpp +++ b/src/gui/weather.cpp @@ -1,7 +1,7 @@ /* - Copyright (C) 2017, 2018 ,2019 TangoCash + Copyright (C) 2017, 2018, 2019, 2020 TangoCash - “Powered by Dark Sky” https://darksky.net/poweredby/ + “Powered by OpenWeather” https://openweathermap.org/api/one-call-api License: GPLv2 @@ -96,7 +96,10 @@ bool CWeather::GetWeatherDetails() if (!g_settings.weather_enabled) return false; - std::string data = "https://api.darksky.net/forecast/" + key + "/" + coords + "?units=ca&lang=de&exclude=minutely,hourly,flags,alerts"; + std::string lat = coords.substr(0,coords.find_first_of(',')); + std::string lon = coords.substr(coords.find_first_of(',')+1); + + std::string data = "https://api.openweathermap.org/data/2.5/onecall?lat=" + lat + "&lon=" + lon + "&units=metric&lang=de&exclude=minutely,hourly,flags,alerts&appid=" + key; JSONCPP_STRING answer; JSONCPP_STRING formattedErrors; @@ -125,20 +128,20 @@ bool CWeather::GetWeatherDetails() return false; } - found = DataValues["currently"].get("time", 0).asDouble(); + found = DataValues["current"].get("dt", 0).asDouble(); printf("[CWeather]: results found: %lf\n", found); if (found > 0) { timezone = DataValues["timezone"].asString(); - current.timestamp = DataValues["currently"].get("time", 0).asDouble(); - current.temperature = DataValues["currently"].get("temperature", "").asFloat(); - current.pressure = DataValues["currently"].get("pressure", "").asFloat(); - current.humidity = DataValues["currently"].get("humidity", "").asFloat(); - current.windSpeed = DataValues["currently"].get("windSpeed", "").asFloat(); - current.windBearing = DataValues["currently"].get("windBearing", "").asDouble(); - current.icon = current.icon_only_name = DataValues["currently"].get("icon", "").asString(); + current.timestamp = DataValues["current"].get("dt", 0).asDouble(); + current.temperature = DataValues["current"].get("temp", "").asFloat(); + current.pressure = DataValues["current"].get("pressure", "").asFloat(); + current.humidity = DataValues["current"].get("humidity", "").asFloat(); + current.windSpeed = DataValues["current"].get("wind_speed", "").asFloat(); + current.windBearing = DataValues["current"].get("wind_deg", "").asDouble(); + current.icon = DataValues["current"]["weather"][0].get("icon", "").asString(); if (current.icon.empty()) current.icon = "unknown.png"; else @@ -150,26 +153,22 @@ bool CWeather::GetWeatherDetails() printf("[CWeather]: temp in %s (%s): %.1f - %s\n", city.c_str(), timezone.c_str(), current.temperature, current.icon.c_str()); forecast_data daily_data; - Json::Value elements = DataValues["daily"]["data"]; + Json::Value elements = DataValues["daily"]; for (unsigned int i = 0; i < elements.size(); i++) { - daily_data.timestamp = elements[i].get("time", 0).asDouble(); + daily_data.timestamp = elements[i].get("dt", 0).asDouble(); daily_data.weekday = (int)(localtime(&daily_data.timestamp)->tm_wday); - daily_data.icon = daily_data.icon_only_name = elements[i].get("icon", "").asString(); + daily_data.icon = elements[i]["weather"][0].get("icon", "").asString(); if (daily_data.icon.empty()) daily_data.icon = "unknown.png"; else daily_data.icon = daily_data.icon + ".png"; - - if (daily_data.icon_only_name.empty()) - daily_data.icon_only_name = "unknown"; - - daily_data.temperatureMin = elements[i].get("temperatureMin", "").asFloat(); - daily_data.temperatureMax = elements[i].get("temperatureMax", "").asFloat(); - daily_data.sunriseTime = elements[i].get("sunriseTime", 0).asDouble(); - daily_data.sunsetTime = elements[i].get("sunsetTime", 0).asDouble(); - daily_data.windSpeed = elements[i].get("windSpeed", 0).asFloat(); - daily_data.windBearing = elements[i].get("windBearing", 0).asDouble(); + daily_data.temperatureMin = elements[i]["temp"].get("min", "").asFloat(); + daily_data.temperatureMax = elements[i]["temp"].get("max", "").asFloat(); + daily_data.sunriseTime = elements[i].get("sunrise", 0).asDouble(); + daily_data.sunsetTime = elements[i].get("sunset", 0).asDouble(); + daily_data.windSpeed = elements[i].get("wind_speed", 0).asFloat(); + daily_data.windBearing = elements[i].get("wind_deg", 0).asDouble(); struct tm *timeinfo; timeinfo = localtime(&daily_data.timestamp); diff --git a/src/gui/weather.h b/src/gui/weather.h index bdde88153..f3d0a30d7 100644 --- a/src/gui/weather.h +++ b/src/gui/weather.h @@ -1,7 +1,7 @@ /* - Copyright (C) 2017, 2018, 2019 TangoCash + Copyright (C) 2017, 2018, 2019, 2020 TangoCash - “Powered by Dark Sky” https://darksky.net/poweredby/ + “Powered by OpenWeather” https://openweathermap.org/api/one-call-api License: GPLv2