Review of "Open-Meteo" version 1.3 (1)

Details Page Preview

Display weather for the current or a specified location using Open-Meteo. This extension is a fork of OpenWeather, refactored to use Open-Meteo as the sole weather data provider. If location is set to "My Location", the extension uses system location services to determine the current position.

Extension Homepage
https://github.com/wwktz/gnome-openmeteo

No comments.

FAQ

Files

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

Shexli (experimental) warning 6

Shexli found 6 issues that may need reviewer attention.

EGO-X-006 warning

extensions should not use lookupByURL or lookupByUUID for current extension access

Use `this`, `this.getSettings()` or `this.path` instead of `lookupByURL()` or `lookupByUUID()` for the current extension.

`extensionUtils`

  • extension.js:1042
    Extension.lookupByUUID(
                "openmeteo-extension@wwktz.github.io"
            )

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 25 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • extension.js:193
    console.log("Open-Meteo: Error in first boot timeout.")
  • extension.js:206
    console.log("Open-Meteo: Error in immediate first boot.")
  • extension.js:554
    console.log("Open-Meteo Error in settings listener.")
  • extension.js:1772
    console.log(`enabling ${this.metadata.name}`)
  • extension.js:1781
    console.log(`disabling ${this.metadata.name}`)
  • extension.js:399
    console.warn(`Open-Meteo: Geoclue failed ('${e}'); changing provider to ipinfo.io.`)
  • extension.js:653
    console.warn(title + "\n" + err.message)
  • extension.js:668
    console.warn(title + "\n" + err.message)
  • extension.js:733
    console.warn("Open-Meteo: Got actual city too high.")
  • extension.js:756
    console.warn("Open-Meteo: Set actual city too high.")

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 12 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • locs.js:95
    console.warn(`Open-Meteo: Invalid name type (${this.#nameType}).`)
  • locs.js:138
    console.warn(`Open-Meteo: Invalid place type (${this.#placeType}).`)
  • locs.js:158
    console.warn(`Open-Meteo: Invalid place type (${this.#placeType}).`)
  • locs.js:179
    console.warn(`Open-Meteo: Invalid place type (${this.#placeType}).`)
  • locs.js:48
    console.error(`Open-Meteo: NameType (${nameType}) not a number.`)
  • locs.js:55
    console.error(`Open-Meteo: Name (${name}) not a string.`)
  • locs.js:62
    console.error(`Open-Meteo: PlaceType (${placeType}) not a number.`)
  • locs.js:69
    console.error(`Open-Meteo: Place (${place}) not a string.`)
  • locs.js:84
    console.error("Open-Meteo: Loc#getName did not receive a gettext argument. Pass 'null' for no gettext.")
  • locs.js:128
    console.error(e)

EGO-A-004 warning

extension files should not contain excessive ungated console logging

File contains 7 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • openmeteomap.js:91
    console.log(e.stack)
  • openmeteomap.js:75
    console.warn("Open-Meteo: getWeatherInfo failed without an error.")
  • openmeteomap.js:31
    console.error(e)
  • openmeteomap.js:35
    console.error(e)
  • openmeteomap.js:53
    console.error(e)
  • openmeteomap.js:68
    console.error(e)
  • openmeteomap.js:90
    console.error(`Open-Meteo: ${e}`)

EGO-P-006 warning

unnecessary build and translation artifacts should not be shipped

Compiled GSettings schemas should not be shipped for 45+ packages.

Don't include unnecessary files

  • schemas/gschemas.compiled
    schemas/gschemas.compiled

EGO-L-003 warning

signals connected by extension should be disconnected in disable()

Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.

Disconnect all signals

  • extension.js:956
            this._locationButton.connect("clicked", () => {
                this._selectCity._setOpenState(!this._selectCity._getOpenState());
            })
  • extension.js:979
                this._nominatimBtn.connect("clicked", () => {
                    this.menu.close();
                    this.openUrl("https://nominatim.org/");
                })
  • extension.js:990
            this._prefsButton.connect(
                "clicked",
                this._onPreferencesActivate.bind(this)
            )
  • extension.js:973
            this._provUrlButton.connect("clicked", () => {
                this.menu.close();
                let url = getWeatherProviderUrl(this.weatherProvider);
                this.openUrl(url);
            })
  • extension.js:959
            this._reloadButton.connect("clicked", () => {
                if (this._lastRefresh) {
                    let _twoMinsAgo = Date.now() - new Date(0).setMinutes(2.0);
                    if (this._lastRefresh > _twoMinsAgo) {
                        Main.notify(
                            "Open-Meteo",
           
  • extension.js:984
            this._seeOnlineUrlBtn.connect("clicked", async () => {
                this.menu.close();
                let c = await this._city.getCoords(this.settings);
                let url = `https://weather.com/weather/today/l/${c[0]},${c[1]}`;
                this.openUrl(url);
            })
  • extension.js:176
    this.menu.connect("open-state-changed", this.recalcLayout.bind(this))

All Versions

Version Status
1.3 (2) Unreviewed
1.3 (1) Rejected

Previous Reviews on this Version

JustPerfection rejected
What happened to the other one? https://extensions.gnome.org/review/67997 Also Shexli issues need to be fixed.