Review of "Website Monitor" version 1

Details Page Preview

A GNOME Shell 45+ extension that checks one website and displays a colored dot in the top bar: - green: available; - orange: available, but slower than the configured threshold; - red: unavailable, timed out, or returned an HTTP error. You can pause monitoring from a switch in the indicator menu. Pausing or resuming resets the consecutive-failure counter. The indicator also opens a separate cascading recent-checks menu beside the main menu. It shows the status, HTTP result, and response duration for the latest 10 checks by default. Its position can be set to left, right, or automatic; left is the default. After the configured number of consecutive failed checks (three by default), a large modal alert appears in the center of the screen and the desktop warning sound is played. A custom MP3 can be selected in the extension preferences. The sound loops until the alert is dismissed. One alert is shown per outage; a successful check automatically closes the alert and stops its sound. https://github.com/lefred/gnome-shell-monitor-site


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 4

Shexli found 4 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • extension.js:817
    console.warn(`Website Monitor repeated warning sound failed: ${error.message}`)
  • extension.js:885
    console.warn(`Website Monitor could not restore output volume: ${error.message}`)
  • extension.js:939
    console.warn(`Website Monitor MP3 playback failed: ${error.message}; ${debug ?? ''}`)
  • extension.js:944
    console.warn(`Website Monitor fallback sound failed: ${fallbackError.message}`)
  • extension.js:966
    console.warn(`Website Monitor locked alert sound failed: ${error.message}`)
  • extension.js:970
    console.warn(`Website Monitor fallback sound failed: ${fallbackError.message}`)
  • extension.js:1007
    console.warn(`Website Monitor could not play alert sound: ${error.message}`)
  • extension.js:1011
    console.warn(`Website Monitor fallback sound failed: ${fallbackError.message}`)
  • extension.js:779
    console.error(`Website Monitor email failed: ${error.message}`)
  • extension.js:1026
    console.error(`Website Monitor could not show alert: ${error.stack ?? error}`)

EGO-L-002 warning

objects created by extension should be destroyed in disable()

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

Destroy all objects

  • extension.js:1017
                this._alertOverlay = new WebsiteAlertOverlay(url, this._failures, () => {
                    this._alertOverlay = null;
                    this._stopAlertSound();
                })

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:77
            this.menu.connect('open-state-changed', (_menu, open) => {
                if (!open)
                    this._extension.closeHistoryPopup();
            })

EGO-M-008 warning

extensions using unlock-dialog must document it in disable() comments

Extensions using `unlock-dialog` should document the reason in `disable()` comments.

Session Modes

  • extension.js:474
        disable() {
            if (this._timerId) {
                GLib.Source.remove(this._timerId);
                this._timerId = 0;
            }
            this._cancellable?.cancel();
            this._cancellable = null;
            this._session?.abort();
            this._stopAlertSound();
            if (this._mixerStateId)
    

All Versions

Version Status
1 Unreviewed