Merge origin/main into claude/remove-skins-and-base-classes

Resolves the README.md / docs/CONFIG_REFERENCE.md conflicts with #607 (its
corrected text and function-name references, without the skins section; this
branch's use_short_date_format row), and drops the skin/skin_options entries
#607 documented in PLUGIN_CONFIG_CORE_PROPERTIES.md, since this branch retires
those keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chuck
2026-09-23 12:38:49 -04:00
co-authored by Claude Opus 5.5
206 changed files with 881 additions and 23259 deletions
+4 -51
View File
@@ -1116,39 +1116,6 @@ List uploaded images for a plugin.
}
```
### Authenticate Spotify
**POST** `/api/v3/plugins/authenticate/spotify`
Spotify OAuth for the music plugin (`ledmatrix-music`; the plugin is fixed,
not taken from the body). Two steps: call with an empty body to get the
authorization URL, then call again with the URL Spotify redirected to.
**Request Body** (step 2):
```json
{
"redirect_url": "http://127.0.0.1:8888/callback?code=..."
}
```
**Response** (step 1, fields at the top level):
```json
{
"status": "success",
"message": "Authorization URL generated",
"auth_url": "https://accounts.spotify.com/authorize?..."
}
```
Step 2 returns `status`, `message` and the script's `output`.
### Authenticate YouTube Music
**POST** `/api/v3/plugins/authenticate/ytm`
Run the music plugin's YouTube Music authentication script. No body. Returns
`status`, `message` and the script's `output`.
### Upload Calendar Credentials
**POST** `/api/v3/plugins/calendar/upload-credentials`
@@ -1966,7 +1933,10 @@ restarted to pick up changes). See
## Plugin-specific endpoints
A handful of endpoints belong to individual plugins.
A handful of endpoints belong to individual plugins. The music plugin's
Spotify and YouTube Music sign-in and the Of-The-Day data files go through the
plugin's own web UI actions ([Execute Plugin Action](#execute-plugin-action))
rather than dedicated routes.
### Calendar
@@ -1976,23 +1946,6 @@ List the calendars on the authenticated Google account. Used by the calendar
plugin's config UI. Returns `calendars` at the top level. The upload and
authenticate endpoints are under [Plugins](#upload-calendar-credentials).
### Of The Day
**POST** `/api/v3/plugins/of-the-day/json/upload`
Upload JSON data files (multipart field `files`) as Of-The-Day categories.
Returns `uploaded_files` and `total_files` at the top level.
**POST** `/api/v3/plugins/of-the-day/json/delete`
Delete an uploaded data file.
```json
{
"file_id": "category_name"
}
```
### Plugin Static Assets
**GET** `/api/v3/plugins/<plugin_id>/static/<path:file_path>`