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.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-004 warning
extension files should not contain excessive ungated console logging
File contains 6 ungated console.log/warn/error calls (threshold: 5).
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.
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()`.
somafm-api.js:97
file.load_contents(null)
| Version | Status |
|---|---|
| 45 | Active |
| 44 | Rejected |
| 43 | Active |
| 42 | Active |
| 41 | Active |
| 40 | Active |
| 39 | Active |
| 38 | Active |
| 37 | Active |
| 36 | Active |
| 35 | Active |
| 34 | Inactive |
| 33 | Inactive |
| 32 | Rejected |
| 31 | Active |
| 30 | Rejected |
| 29 | Active |
| 28 | Active |
| 27 | Active |
| 26 | Active |
| 25 | Active |
| 24 | Inactive |
| 23 | Rejected |
| 22 | Active |
| 21 | Active |
| 20 | Active |
| 19 | Rejected |
| 18 | Active |
| 17 | Active |
| 16 | Rejected |
| 15 | Rejected |
| 13 | Rejected |
| 12 | Rejected |
| 11 | Active |
| 9 | Active |
| 8 | Rejected |
| 7 | Rejected |
| 6 | Active |
| 5 | Active |
| 4 | Rejected |
| 3 | Rejected |
| 1 | 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)