Review of "SomaFM internet radio" version 44

Details Page Preview

Listen to SomaFm free internet radio in your GNOME desktop * Features: - 40+ channels, refreshed from SomaFM's channel list - Selectable stream quality, listing only the bitrates each channel serves (up to 320k MP3), with automatic fallback to a lower one when a stream fails - Experimental HLS tiers where SomaFM offers them, incl. lossless FLAC - HTTPS streaming with automatic fallback between SomaFM servers - Volume slider - Favorites menu - Channel logos - Holiday channels (only in December) * Requirements: - Gstreamer and plugins: You need to install 'gstreamer' and multimedia codecs/plugins for your distro. The HLS tiers additionally need gst-plugins-bad (hlsdemux) and, for FLAC, a FLAC decoder.

Extension Homepage
http://github.com/TheWeirdDev/somafm-radio-gnome-ext

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

Shexli found 3 issues that may need reviewer attention.

EGO-A-004 warning

extension files should not contain excessive ungated console logging

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

No excessive logging

  • data.js:137
    console.error("SomaFM: failed to load json: " + e)
  • data.js:146
    console.error("SomaFM: Failed to parse json: " + e)
  • data.js:193
    console.error("SomaFM: Failed to create directory and/or file! " + e)
  • data.js:201
    console.error("SomaFM: Failed to create file! " + e)
  • data.js:215
    console.error("SomaFM: Failed to save prefs: " + e)
  • data.js:120
    	console.log(
    		`SomaFM: migrated prefs to schema v${SCHEMA_VERSION} ` +
    			`(channel ${migrated.lastChannel}, ${migrated.favs.length} favorites)`,
    	)

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

  • extension.js:211
    St.Clipboard.get_default()

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

  • somafm-api.js:97
    file.load_contents(null)

All Versions

Previous Reviews on this Version

JustPerfection rejected
1. Remove the version from the import (line 8 `somafm-api.js`). 2. Please use aysnc for reading file content since you are in shell process (line 97 `extension.js`): [Gio.File.load_contents_async](https://gjs-docs.gnome.org/gio20~2.0/gio.file#method-load_contents_async)