Review of "LyricGlance" version 1

Details Page Preview

Show synchronized and optionally translated lyrics for MPRIS-compatible media players in the GNOME top bar.

Extension Homepage
https://github.com/eurekaevan/LyricGlance.git

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 9 ungated console.log/warn/error calls (threshold: 5).

No excessive logging

  • lyrics.js:174
    console.warn('LyricGlance: invalid LrcAPI endpoint; fallback disabled')
  • lyrics.js:421
    console.warn(`LyricGlance: invalid ${providerName} request: ${error.message}`)
  • lyrics.js:455
    console.warn(`LyricGlance: ${providerName} returned HTTP ${status}; retries exhausted`)
  • lyrics.js:479
    console.warn(`LyricGlance: ${providerName} returned HTTP ${status}`)
  • lyrics.js:488
    console.warn(`LyricGlance: invalid ${providerName} response: ${error.message}`)
  • lyrics.js:495
    console.warn('LyricGlance: LrcAPI response is not a candidate array')
  • lyrics.js:576
    console.warn(`LyricGlance: ${providerName} response exceeded the size limit`)
  • lyrics.js:578
    console.warn(`LyricGlance: ${providerName} request failed: ${error.message}`)
  • lyrics.js:655
    console.warn(`LyricGlance: could not write lyrics cache: ${error.message}`)

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

  • indicator.js:261
    this._currentLabel = new St.Label({text: '0:00', x_expand: true})
  • indicator.js:262
    this._durationLabel = new St.Label({text: '0:00'})
  • indicator.js:249
            this.actor = new St.BoxLayout({
                style_class: 'lyric-glance-progress',
                orientation: Clutter.Orientation.VERTICAL,
                x_expand: true,
            })

EGO-L-001 warning

extension must not create GObject instances or modify shell before enable()

Resource creation or signal/source setup was found outside `enable()`.

Only use initialization for static resources

  • credentials.js:3
    new Secret.Schema(
        'org.gnome.shell.extensions.lyric-glance.translation',
        Secret.SchemaFlags.NONE,
        {provider: Secret.SchemaAttributeType.STRING})

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

  • indicator.js:266
            this._slider.connect('drag-begin', () => {
                this._dragging = true;
                this._dragTarget = this._slider.reactive ? this._target : null;
            })
  • indicator.js:270
            this._slider.connect('drag-end', () => {
                const target = this._dragTarget;
                this._dragging = false;
                this._dragTarget = null;
                if (target && this._slider.reactive)
                    this._onSeek?.(target, this._slider.value * this._durationUs);
         
  • indicator.js:277
            this._slider.connect('notify::value', () => {
                if (this._updating || !this._slider.reactive)
                    return;
                this._currentLabel.text = formatDuration(
                    this._slider.value * this._durationUs / 1_000_000);
                if (!this._dragging)
             

All Versions

Version Status
1 Unreviewed