Review of "radiolina" version 0.5.0 (1)

Details Page Preview

Lightweight internet radio for GNOME Shell, controlled entirely from the top bar. Supports editable stations, M3U/XSPF streams, track metadata, and media keys. The Copy stream URL action writes a station URL to the clipboard. It does not read clipboard contents.

Extension Homepage
https://github.com/drdaniloromano/radiolina-ext

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 3 manual_review 1

Shexli found 4 issues that may need reviewer attention.

EGO-X-004 warning

extensions should avoid synchronous file IO in shell code

Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.

File Operations

  • radio-a082f085a885.js:233
    xmlFile.load_contents(null)

EGO-A-005 manual_review

extensions should not access the clipboard directly

Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.

Review Guidelines

  • radio-a082f085a885.js:287
    St.Clipboard.get_default()

EGO-P-007 warning

JavaScript files should be reachable from extension.js or prefs.js

Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.

Don't include unnecessary files

  • src/core/errors.js
  • src/core/playlists.js
  • src/core/stations.js
  • src/core/validation/config.js
  • src/core/validation/media.js
  • src/core/validation/text.js
  • src/core/validation/urls.js
  • src/service/build-config.js
  • src/service/decoder.js
  • src/service/http.js
  • src/service/main.js
  • src/service/player.js
  • src/service/resource-policy.js
  • src/service/source.js
  • src/service/store.js

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

  • radio-a082f085a885.js:295
    this._cancel.connect('clicked', () => this._closeForm())
  • radio-a082f085a885.js:287
            this._copySource.connect('clicked', () => St.Clipboard.get_default().set_text(
                St.ClipboardType.CLIPBOARD, this._urlEntry.get_text()))
  • radio-a082f085a885.js:303
            this._nameEntry.clutter_text.connect('key-press-event', (_actor, event) => {
                if (event.get_key_symbol() === Clutter.KEY_Return) {
                    this._urlEntry.grab_key_focus();
                    return Clutter.EVENT_STOP;
                }
                return Clutter.EVENT_PROPAGATE;
    
  • radio-a082f085a885.js:207
            this._recentLess.connect('clicked', () => this._call('SetRecentLimit',
                new GLibVariant('(u)', [(this._state.recentLimit ?? 3) - 1])))
  • radio-a082f085a885.js:209
            this._recentMore.connect('clicked', () => this._call('SetRecentLimit',
                new GLibVariant('(u)', [(this._state.recentLimit ?? 3) + 1])))
  • radio-a082f085a885.js:297
            this._remove.connect('clicked', () => {
                if (this._editingId)
                    this._call('RemoveStation', new GLibVariant('(s)', [this._editingId]), () => this._closeForm());
            })
  • radio-a082f085a885.js:292
    this._save.connect('clicked', () => this._saveStation())
  • radio-a082f085a885.js:302
    this._urlEntry.clutter_text.connect('activate', () => this._saveStation())
  • radio-a082f085a885.js:220
    entry.connect('style-changed', () => entry.get_hint_actor()?.ensure_style())
  • radio-a082f085a885.js:224
    this.menu.actor.connect('captured-event', (_actor, event) => this._searchKey(event))
  • radio-a082f085a885.js:225
            this.menu.connect('open-state-changed', (_menu, open) => {
                if (!open && this._alive) {
                    this._showView(null);
                }
            })

All Versions

Version Status
0.6.0 (2) Unreviewed
0.5.0 (1) Rejected

Previous Reviews on this Version

drdaniloromano auto- rejected
Auto-rejected because of new version 0.6.0 (2) was uploaded