import { api, $, state } from "../core.js"; import { glyphSvg } from "../glyphs.js"; import { widgetAnmelden, widgetsLaden } from "./rahmen.js"; /* ── Wetter ──────────────────────────────────────────────────────────────── * * Der Server holt es und legt es zehn Minuten beiseite; hier wird nur gezeigt, * was er hergibt. Kein Ort eingestellt oder Dienst nicht erreichbar: 204, und * das Widget bleibt weg. Eine Zahl von gestern wäre schlechter als keine. */ widgetAnmelden({ id: "wetter", titel: "wetter", // Der eigene Schalter — unabhängig von dem für die HoneyBar. sichtbar: () => state.settings.weatherDesk === "on", leer: "verbergen", takt: 10 * 60 * 1000, // derselbe Takt, in dem der Server seinen Speicher erneuert async laden() { if (!state.settings.weatherCity) { state.weather = null; return false; } try { state.weather = await api("/api/weather"); } catch (e) { // Auch im Fehlerfall den alten Stand wegwerfen: Das Widget zeigt dann // „nicht erreichbar", und in der Leiste verschwindet das Symbol. Eine // Temperatur von vorhin, die aussieht wie von jetzt, wäre schlechter. state.weather = null; throw e; } // 204: kein Ort, kein Dienst — der Aufrufhelfer gibt dann nichts zurück. if (!state.weather || !state.weather.glyph) { state.weather = null; return false; } return true; }, inhalt() { const w = state.weather; return `