Commit Graph

66 Commits

Author SHA1 Message Date
Peter Steinberger
98803b6080
ci: update homebrew tap on release
Some checks failed
CI / build (push) Has been cancelled
2026-05-07 03:56:52 +01:00
Peter Steinberger
b165a4cff5
docs: add social card for spogo.sh
Some checks failed
CI / build (push) Has been cancelled
pages / Deploy docs (push) Has been cancelled
2026-05-05 09:44:17 +01:00
Peter Steinberger
032a6ebed8
docs: rebuild docs site with proper navigation, dark mode, and full content
Replace the static one-page index.html with a Node-based docs site
generator. Sidebar nav, per-page TOC, dark mode toggle (system-pref
default, persisted), and a Spotify-green theme with animated equalizer
brand mark and ambient hero gradient.

Adds 11 hand-written doc pages (index, install, quickstart, auth,
playback, library, queue, devices, engines, output, agents,
troubleshooting, commands) alongside existing spec.md and RELEASING.md.

Pages workflow deploys dist/docs-site to GitHub Pages on push to main;
repo Pages source is now "GitHub Actions" instead of legacy /docs.
2026-05-05 09:41:06 +01:00
Peter Steinberger
a39323cbd4
docs: add GitHub Pages site 2026-05-05 07:31:10 +01:00
Peter Steinberger
2f014259b6
release: v0.3.0
Some checks failed
CI / build (push) Has been cancelled
2026-05-05 07:19:39 +01:00
Peter Steinberger
dff0ff1c8b
test: cover playlist mutation edge cases 2026-05-05 07:13:04 +01:00
Peter Steinberger
bcc8ef7ea9
fix: route playlist writes through connect mutations 2026-05-05 07:11:21 +01:00
Peter Steinberger
a0298286c0
fix: harden live metadata and device playback paths 2026-05-05 06:52:54 +01:00
Peter Steinberger
5562000ed0
test: avoid nil response in connect play fallback test 2026-05-05 06:32:23 +01:00
Peter Steinberger
e4d88648a8
docs: thank PR contributors in changelog 2026-05-05 06:30:00 +01:00
cavit99
444769dd79
fix: use PUT for Connect volume requests
Send Connect volume changes with PUT while keeping player commands on POST.
2026-05-05 06:29:39 +01:00
Prashanth Bala
fe493222dd
fix: fall back to Web API for inactive Connect play
Delegate play to the Web API when Connect state has no active device.
2026-05-05 06:29:25 +01:00
Colin Mason
dfc7bed8f6
fix: restore Connect liked-track listing
Use fetchLibraryTracks for Connect liked songs and fall back when the payload shape drifts.
2026-05-05 06:28:48 +01:00
Peter Steinberger
219b7c1f29
chore: update Go dependencies 2026-05-04 01:37:23 +01:00
Peter Steinberger
3e29663df7
build: update go dependencies 2026-04-27 10:40:07 +01:00
Peter Steinberger
de7dc2df3a
test: cover Spotify mock and limit helpers 2026-04-27 08:44:40 +01:00
Peter Steinberger
99519c27a3
test: raise coverage for app and applescript paths 2026-04-27 08:42:14 +01:00
Peter Steinberger
b306d9813b
test: avoid nil response in connect fallback test 2026-04-27 08:34:18 +01:00
Peter Steinberger
c613e96ed2 fix: recover auth import and device transfer 2026-03-08 05:17:49 +00:00
Peter Steinberger
68653641ad test: split connect and cli test suites 2026-03-08 04:41:47 +00:00
Peter Steinberger
9bd9156777 refactor: split connect pathfinder and extraction layers 2026-03-08 04:41:42 +00:00
Peter Steinberger
f741b66335 refactor: split app context and auth flows 2026-03-08 04:41:38 +00:00
Zayan
b94bf2f52d feat: add auth cookie paste fallback
- Add `spogo auth paste` to save cookies from DevTools values
- Make `--no-input` effective (disable prompts)
- Improve connect auth error when `sp_t` missing
- Docs: update README + CLI spec
2026-03-08 04:14:14 +00:00
Peter Steinberger
6288125033 fix: refresh landing for PR #15 (thanks @StandardGage) 2026-03-08 04:10:53 +00:00
StandardGage
c82902fce0 feat: add shuffle option to play command and enhance playback functionality
- Introduced a `--shuffle` flag for the `play` command to enable shuffle before playing.
- Updated playback logic to handle context URIs for playlists and tracks.
- Enhanced error handling and added support for library tracks and albums in the Connect client.
- Improved rendering of playlist information in the CLI output.
- Added tests for new playback features and context URI handling.
2026-03-08 04:10:53 +00:00
Peter Steinberger
316de270f4 fix: refresh changelog for PR #7 (thanks @joelbdavies) 2026-03-08 04:04:13 +00:00
Joel Davies
91be7579a9 Handle artist id+name fragments
Problem: some Connect artist fragments only include id+name, so artistNameFromValue ignored them.
Solution: treat id as sufficient evidence of an artist map and add a regression test.
2026-03-08 04:04:13 +00:00
Joel Davies
2e48cae5b2 Fix track artist extraction
Problem: Connect getTrack only surfaced the first artist; otherArtists (e.g., remixers) were ignored.
Solution: parse otherArtists in trackUnion and tighten artist name extraction to avoid unrelated names; add tests for firstArtist/otherArtists containers.
2026-03-08 04:04:13 +00:00
Bender
c9d7e193c1 fix: auto-detect cookies at default path for headless servers
When cookies are copied manually to a headless server (e.g., via scp),
spogo would fail with 'no cookies found' because it only checks the
cookie file path if explicitly set in config.

This change makes cookieSource() check for cookies at the default path
even without config, enabling a simpler setup workflow:

1. Run 'spogo auth import' on a machine with browser
2. Copy cookies file to headless server
3. It just works (no config needed)

This is particularly useful for:
- AI assistants running on VPS/cloud servers
- Raspberry Pi and home server setups
- Any headless Linux environment
2026-03-08 04:00:28 +00:00
Peter Steinberger
329f9be524 refactor: remove legacy connect files 2026-03-08 03:59:06 +00:00
Peter Steinberger
ea36cbce27 refactor: split spotify connect internals 2026-03-08 03:58:57 +00:00
Peter Steinberger
3a1f52c02b refactor: streamline app and cli execution flow 2026-03-08 03:58:53 +00:00
Peter Steinberger
dab2ec484c chore: bump version to 0.3.0 2026-03-08 03:58:51 +00:00
Peter Steinberger
fa1c961d62 chore(release): add windows arm64 target 2026-01-09 23:37:11 +01:00
Peter Steinberger
4dfa8b1920 release: v0.2.0
Some checks failed
CI / build (push) Has been cancelled
2026-01-07 11:11:42 +01:00
Peter Steinberger
cb437f317e chore: bump version to 0.2.0 2026-01-07 11:08:30 +01:00
Peter Steinberger
504291ba9d
Merge pull request #2 from adam91holt/feat/applescript-engine
feat: add AppleScript engine for direct macOS Spotify control
2026-01-07 08:15:27 +00:00
Peter Steinberger
da91080af3 test: cover applescript engine on non-macOS
Some checks failed
CI / build (push) Has been cancelled
2026-01-07 09:13:51 +01:00
Peter Steinberger
42e9fa8c6b fix: make applescript engine typecheck cross-platform 2026-01-07 09:09:42 +01:00
Adam Holt
9474494dd8 feat: add AppleScript engine for direct macOS Spotify control
Adds a new `applescript` engine that controls the local Spotify app directly
via AppleScript instead of going through Spotify Connect cloud servers.

This solves the issue where Spotify Connect commands update the cloud state
but the local app doesn't receive them (device desynced/not registered).

The AppleScript engine:
- Handles playback control (play, pause, next, prev, seek, volume, shuffle, repeat)
- Falls back to web API for search, library, and playlist operations
- Only available on macOS (darwin)

Usage: spogo play <uri> --engine applescript

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 12:37:23 +13:00
Peter Steinberger
00c29f84b4 build: add linux_arm64 goreleaser target 2026-01-04 06:25:21 +01:00
Peter Steinberger
eba72432af fix(ci): update golangci-lint v2 config 2026-01-03 06:37:57 +01:00
Peter Steinberger
1a6f6511a0 docs: add 0.1.1 unreleased changelog 2026-01-03 06:27:54 +01:00
Peter Steinberger
5968cbc6a4 ci: bump golangci-lint-action 2026-01-03 05:13:12 +01:00
Peter Steinberger
e993cd1c36 chore: add sweetcookie go.sum
Some checks failed
CI / build (push) Has been cancelled
2026-01-03 05:00:55 +01:00
Peter Steinberger
a12d5b97f0 ci: use golangci-lint v2 2026-01-03 04:56:44 +01:00
Peter Steinberger
709579a13b chore: drop local sweetcookie replace 2026-01-03 04:54:21 +01:00
Peter Steinberger
df01aefd72 docs: add homebrew install 2026-01-03 04:47:22 +01:00
Peter Steinberger
2e7a47fe08 docs: add release workflow and goreleaser 2026-01-03 04:37:04 +01:00
Peter Steinberger
abf9c8ea64 docs: expand 0.1.0 changelog 2026-01-03 04:23:41 +01:00