OSDN Git Service

kdeplasma-addons: extract condition from forecast if possible
authorIvailo Monev <xakepa10@gmail.com>
Wed, 28 Jul 2021 23:46:02 +0000 (02:46 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Wed, 28 Jul 2021 23:46:02 +0000 (02:46 +0300)
fixes condition detection from wetter.com provider

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
kdeplasma-addons/wallpapers/weather/weatherwallpaper.cpp

index a62dd33..3b25bc9 100644 (file)
@@ -27,6 +27,7 @@
 #include <QPropertyAnimation>
 
 // KDE includes
+#include <KDebug>
 #include <KFileDialog>
 #include <KLocalizedString>
 #include <KPushButton>
@@ -588,7 +589,18 @@ void WeatherWallpaper::dataUpdated(const QString &source, const Plasma::DataEngi
         return;
     }
 
-    m_condition = data[QLatin1String( "Condition Icon" )].toString();
+    m_condition = data[QLatin1String("Condition Icon")].toString();
+    // qDebug() << Q_FUNC_INFO << source << m_condition;
+    if (m_condition.isEmpty() || m_condition == QLatin1String("weather-none-available")) {
+        const QString todayforecast = data[QLatin1String("Short Forecast Day 0")].toString();
+        const QStringList splitforecast = todayforecast.split(QLatin1Char('|'));
+        if (splitforecast.size() == 6) {
+            m_condition = splitforecast.at(1);
+        } else if (!splitforecast.isEmpty()) {
+            kWarning() << "forecast data has changed";
+        }
+        // qDebug() << Q_FUNC_INFO << splitforecast << m_condition;
+    }
 
     loadImage();
 }