Fix cached weather error being returned
The weather cache was returning old errors (like "API Key fehlt" from the previous OpenWeatherMap implementation) even after switching to Open-Meteo which doesn't require an API key. Changes: - Delete cache file if it contains an error - Prevent errors from being cached in the first place
This commit is contained in:
@@ -160,6 +160,12 @@ class WeatherManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fehler nicht aus Cache zurückgeben (z.B. alter "API Key fehlt" Error)
|
||||||
|
if (isset($data['error'])) {
|
||||||
|
@unlink($this->cacheFile); // Cache mit Fehler löschen
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// Update-Intervall aus Settings holen (in Minuten)
|
// Update-Intervall aus Settings holen (in Minuten)
|
||||||
$updateInterval = $this->settingsManager->getWeatherUpdateInterval() * 60; // Minuten -> Sekunden
|
$updateInterval = $this->settingsManager->getWeatherUpdateInterval() * 60; // Minuten -> Sekunden
|
||||||
|
|
||||||
@@ -172,9 +178,13 @@ class WeatherManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Speichert Daten im Cache
|
* Speichert Daten im Cache (nur wenn kein Fehler)
|
||||||
*/
|
*/
|
||||||
private function saveCache($data) {
|
private function saveCache($data) {
|
||||||
|
// Fehler nicht cachen
|
||||||
|
if (isset($data['error'])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$json = json_encode($data, JSON_PRETTY_PRINT);
|
$json = json_encode($data, JSON_PRETTY_PRINT);
|
||||||
file_put_contents($this->cacheFile, $json, LOCK_EX);
|
file_put_contents($this->cacheFile, $json, LOCK_EX);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user