feat(0.7.0): WordPress.org submission prep — full Plugin Check clean
Ran the official Plugin Check (PCP) against v0.6.3 — surfaced 169
issues. This release closes all of them so the plugin is submission-
ready for the WordPress.org plugin directory.
Branding
- Plugin Name renamed: "Radio" → "RangerHQ Radio". Removes the
trademarked "SomaFM" from the plugin name surface (PCP
trademarked_term). Lines up with the RangerHQ plugin family.
SomaFM credited in Description + About as the data source.
Folder/slug stays `a-radio` — no install path changes; existing
user_meta keys (radio_state / radio_history / radio_favourites)
untouched.
- Text Domain header renamed: `radio` → `a-radio` (matches slug).
- Requires at least bumped: 5.0 → 5.3 (matches wp_date() usage).
- File docstring header dropped "SomaFM" from prominent line.
Code (mass-mechanical)
- 134 i18n call sites rewritten from `'radio'` text domain to
`'a-radio'` across 7 PHP files. Single sed pass on the unique
pattern `, 'radio' )` — the 6 menu-slug `'radio'` references in
add_*_page() were correctly left alone (those are URL slugs).
Security
- 8 × MissingUnslash + 8 × InputNotSanitized in the v0.5.0 history
endpoints (radio_ajax_log_track, radio_ajax_toggle_favourite).
All four $_POST['artist|title|station|station_id'] access points
are now wrapped sanitize_text_field( wp_unslash( $_POST['…'] ) )
(or sanitize_key for station_id) at the access point.
Translator comments
- 6 × printf / sprintf calls with placeholders now carry
/* translators: ... */ comments.
Pop-out window refactor
- Inline <link> stylesheets, <style> block, and <script> tag in
radio_render_popout_page() replaced with wp_enqueue_style() +
wp_enqueue_script() + wp_localize_script() registered before HTML
output, then wp_print_styles() in <head> and wp_print_footer_
scripts() at end of <body>.
- Popup-specific CSS moved out of inline <style> and into radio.css
under body.radio-popout scope so it only fires inside the popup.
Removed
- .DS_Store files (root + assets/). PCP hidden_files.
Distribution
- New readme.txt in proper WordPress.org format: Plugin headers,
Contributors, Donate link, Tags, Requires-at-least, Tested-up-to,
Stable Tag, Requires-PHP, License, Description, Installation,
FAQ, Screenshots, Changelog, Upgrade Notice.
Compat
- No behaviour change for users; user_meta preserved.
- Displayed Plugin Name in Plugins → Installed changes from "Radio"
to "RangerHQ Radio" — only visible difference on update.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+107
@@ -0,0 +1,107 @@
|
||||
=== RangerHQ Radio ===
|
||||
Contributors: davidtkeane
|
||||
Donate link: https://buymeacoffee.com/davidtkeane
|
||||
Tags: radio, music, audio, internet radio, background music
|
||||
Requires at least: 5.3
|
||||
Tested up to: 6.7
|
||||
Stable tag: 0.7.0
|
||||
Requires PHP: 7.4
|
||||
License: GPLv2 or later
|
||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
A small, focused internet radio player for your WordPress admin — 44 hand-curated stations, history, favourites, and a pop-out window.
|
||||
|
||||
== Description ==
|
||||
|
||||
**RangerHQ Radio** adds a tiny, focused internet radio player to your WordPress dashboard so you can have background music while you work in the admin — without leaving the page, opening Spotify, or installing a desktop client.
|
||||
|
||||
= What you get =
|
||||
|
||||
* **44 hand-curated stations from [SomaFM](https://somafm.com)** across 10 genres — ambient, electronic, lounge, rock, metal, jazz, world, reggae, holiday and specials. From coding-focus ambient (Groove Salad, Drone Zone) to drive-time electronic (DEF CON Radio, Beat Blender) to mellow lounge (Lush, Secret Agent).
|
||||
* **Now-playing indicator** — small CSS dancing-bars equalizer that pulses while audio is playing. A Web Audio frequency visualizer kicks in automatically when the browser allows it (with a graceful fallback to the CSS bars).
|
||||
* **Track history + favourites** — every track that scrolls past is logged to your personal History page (capped at 500); a star toggle promotes the good ones to a separate Favourites tab that doesn't age out. Each row has four search links (Spotify, YouTube, Apple Music, Bandcamp) so you can find that track on whichever service you use.
|
||||
* **Pop-out mini-player** — a 380×560 standalone window that persists across the main tab's navigation, so background music doesn't cut when you move between Plugins, Posts, Users, etc.
|
||||
* **OS media keys** — F8/headphone buttons/lock-screen widget play and pause the radio (via MediaSession API).
|
||||
* **Mute toggle** — the speaker icon is clickable; remembers prior volume.
|
||||
* **Dark theme** — explicit dark option for the player surface (`Settings → Theme`).
|
||||
* **Per-user state** — your chosen station, volume, theme, history, and favourites all live in `user_meta`, so each WordPress user has their own setup.
|
||||
|
||||
= Privacy + dependencies =
|
||||
|
||||
* **No tracking, no telemetry, no third-party scripts on your admin pages.** Audio plays directly in your browser via HTML5 — just an `<audio>` element pointed at SomaFM's public streams.
|
||||
* **No data leaves your site.** History and favourites are stored in your own `wp_usermeta`. The four search links use deep-link search URLs on each provider's public site — no API keys, no third-party JS embedded.
|
||||
* **Stations courtesy of [SomaFM](https://somafm.com)** — an independent, listener-supported, commercial-free internet radio network broadcasting from San Francisco since 2000. RangerHQ Radio is a small wrapper around their public streams. If you enjoy the music, please consider [supporting SomaFM directly](https://somafm.com/support/).
|
||||
|
||||
== Installation ==
|
||||
|
||||
1. Upload the plugin folder to `/wp-content/plugins/` (or install from the WordPress plugin directory).
|
||||
2. Activate the plugin through the **Plugins** menu in WordPress.
|
||||
3. Open **Radio → My Radio** in the admin sidebar and press Play. Your station and volume choice are saved per user.
|
||||
|
||||
There is no separate configuration step — defaults are sensible (Groove Salad at 60% volume). Settings are at **Radio → Settings**.
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
= Does this work on the front-end of my site? =
|
||||
|
||||
No — RangerHQ Radio is admin-only. It adds a player to the WordPress dashboard for you (and your other authenticated admins) to use while working. It does not embed a radio player on the public-facing site.
|
||||
|
||||
= Can I add my own stations? =
|
||||
|
||||
Not via the admin yet. The station list is hard-coded in `inc/stations.php` (44 SomaFM stations). If you'd like to add custom stations or other internet radio sources, please open an issue on the [Gitea repo](https://git.davidtkeane.com/ranger/a-radio).
|
||||
|
||||
= The pop-out window doesn't open. =
|
||||
|
||||
Your browser may be blocking pop-ups. Click the address bar's pop-up icon to allow pop-ups for this site, then try again.
|
||||
|
||||
= Why does Touch ID / a passkey prompt appear when I press Play? =
|
||||
|
||||
It shouldn't. This plugin uses no biometrics or authentication of its own — that's a different plugin in the RangerHQ family.
|
||||
|
||||
= The current-track display says nothing / is hidden. =
|
||||
|
||||
SomaFM's track-info endpoint (`somafm.com/songs/{station}.json`) is fetched best-effort. If it's unreachable or the browser blocks the request, the track display silently hides. The player keeps working regardless.
|
||||
|
||||
== Screenshots ==
|
||||
|
||||
1. The main player page (Radio → My Radio) with the now-playing indicator dancing while audio is playing.
|
||||
2. The dashboard widget — same player, compact, sits alongside your usual dashboard widgets.
|
||||
3. Track History page with star-to-favourite and four search-provider links per row.
|
||||
4. Pop-out mini-player window — keeps playing while you navigate the rest of the admin.
|
||||
|
||||
== Changelog ==
|
||||
|
||||
= 0.7.0 =
|
||||
* WordPress.org submission prep — full PCP-clean. Plugin name normalised to **RangerHQ Radio** (SomaFM stays in the description as the data source). Text Domain renamed `radio` → `a-radio` everywhere (134 i18n call sites updated). Six `printf` / `sprintf` calls now carry translator comments. All admin `$_POST` access now `wp_unslash()` + `sanitize_*` at the access point. `Requires at least` bumped to 5.3 (matches `wp_date()` usage). Pop-out window now uses `wp_enqueue_*` + `wp_print_styles()` / `wp_print_footer_scripts()` instead of raw `<link>` / `<script>` tags; popup-specific CSS moved into `radio.css` under `body.radio-popout` scope. `.DS_Store` files removed. Proper `readme.txt`.
|
||||
|
||||
= 0.6.3 =
|
||||
* Discreet "buy me a coffee" support link in the Updates panel and the About-page Credits card. Single `RADIO_SUPPORT_URL` constant; conditional render — silently hidden if the constant is empty.
|
||||
|
||||
= 0.6.2 =
|
||||
* Current version badge on the Settings page — small grey pill follows the H1 reading `v{RADIO_VERSION}`.
|
||||
|
||||
= 0.6.1 =
|
||||
* About page restructure — 3-card top row (What / Who / Credits) + full-width Version history with the latest expanded and earlier releases as one-liners.
|
||||
|
||||
= 0.6.0 =
|
||||
* Pop-out mini-player. `↗ Pop out` button beside Play opens a 380×560 standalone window that persists across the main tab's navigation, so background music keeps playing while you click around Plugins / Posts / Users.
|
||||
|
||||
= 0.5.0 =
|
||||
* Track history + favourites. Every track that scrolls past is logged to a per-user `Radio → History` page (capped at 500). Star toggle promotes tracks to a separate Favourites tab. Four search-provider links per row (Spotify, YouTube, Apple Music, Bandcamp).
|
||||
|
||||
= 0.4.0 =
|
||||
* Now-playing visual indicator. CSS dancing-bars equalizer that pulses while audio is playing. Web Audio frequency visualizer kicks in when the browser allows it (with graceful fallback).
|
||||
|
||||
= 0.3.0 =
|
||||
* Dark theme, mute toggle on the speaker icon, MediaSession API (OS media keys), SomaFM current-track polling under the station description.
|
||||
|
||||
= 0.2.0 =
|
||||
* UI rebuilt to WordPress admin standards — postbox container, native play/pause button with text label, picks up the user's admin colour scheme via `var(--wp-admin-theme-color)`.
|
||||
|
||||
= 0.1.0 =
|
||||
* First release — 44 SomaFM stations across 10 genres, dashboard widget + dedicated admin page, per-user state, self-hosted Gitea updater.
|
||||
|
||||
== Upgrade Notice ==
|
||||
|
||||
= 0.7.0 =
|
||||
WordPress.org submission prep. Plugin name now "RangerHQ Radio". Text Domain renamed `radio` → `a-radio`. No user-visible behaviour changes; settings, history, and favourites all survive the upgrade.
|
||||
Reference in New Issue
Block a user