Advanced Weather Companion with comprehensive features and multiple weather data sources: - Dynamic location detection with BigDataCloud reverse geocoding - Manual location override with Open-Meteo geocoding - Multiple weather providers: Open-Meteo, Meteosource, Wttr.in, OpenWeatherMap, WeatherAPI - Temperature unit selection and weather insights - Extreme weather alerts and trend analysis - Hourly and daily forecasts with customizable display - Clipboard integration for easy copying of coordinates and donation links External Services Used: - openstreetmap.org (Nominatim reverse geocoding) - ipapi.co (IP geolocation) - ip-api.com (IP geolocation fallback) - freegeoip.app (IP geolocation fallback) - open-meteo.com (geocoding and weather data)
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO016 warning
main loop sources should be removed in disable()
Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.
extension.js:515
this._debounceTimeoutId = GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
1,
() => {
this._debounceTimeoutId = null;
if (this._enabled) this._detectLocationAndLoadWeather();
return GLib.SOURCE_REMOVE;
},
)
extension.js:532
this._networkReloadId = GLib.timeout_add_seconds(
GLib.PRIORITY_DEFAULT,
delaySec,
() => {
this._networkReloadId = null;
if (this._enabled) this._detectLocationAndLoadWeather();
return GLib.SOURCE_REMOVE;
},
)
prefs.js:1146
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1000, () => {
try {
tempFile.delete(null);
} catch (e) {
}
return GLib.SOURCE_REMOVE;
})
EGO033 warning
preferences classes should not retain window-scoped objects on instance fields without close-request cleanup
Preferences code stores window-scoped objects on the exported prefs class without `close-request` cleanup.
prefs.js:73
this._session = new Soup.Session()
prefs.js:568
this._providerDetailsGroup = new Adw.PreferencesGroup({
title: _("Provider Configuration"),
description: _("Configure your selected weather provider")
})
prefs.js:574
this._apiKeyRow = new Adw.PasswordEntryRow({
title: _("API Key"),
text: settings.get_string("weather-api-key") || ""
})
prefs.js:587
this._customUrlRow = new Adw.EntryRow({
title: _("Custom API URL"),
text: settings.get_string("custom-weather-url") || ""
})
prefs.js:593
this._providerInfoRow = new Adw.ActionRow({
title: _("Provider Information"),
activatable: false
})
prefs.js:471
this._searchResultsGroup = new Adw.PreferencesGroup({
title: _("Search Results"),
visible: false
})
| Version | Status |
|---|---|
| 30 | Active |
| 29 | Rejected |
| 28 | Rejected |
| 27 | Rejected |
| 26 | Rejected |
| 25 | Active |
| 24 | Active |
| 23 | Rejected |
| 22 | Rejected |
| 21 | Active |
| 20 | Inactive |
| 19 | Rejected |
| 18 | Rejected |
| 17 | Rejected |
| 16 | Active |
| 15 | Active |
| 14 | Active |
| 13 | Rejected |
| 12 | Active |
| 11 | Active |
| 10 | Active |
| 9 | Active |
| 8 | Active |
| 7 | Active |
| 6 | Active |
| 5 | Rejected |
| 4 | Active |
| 3 | Rejected |
| 2 | Rejected |
| 1 | Rejected |