Review of "Advanced Weather Companion" version 26

Details Page Preview

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)

Extension Homepage
https://github.com/Sanjai-Shaarugesh/Advanced-Weather-Companion

No comments.

Diff Against

Files

Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.

Shexli (experimental) warning 2

Shexli found 2 issues that may need reviewer attention.

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.

Remove main loop sources

  • 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.

Destroy all objects

  • 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
        })

All Versions

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

Previous Reviews on this Version

sanjai auto- rejected
Auto-rejected because of new version 27 was uploaded