Add the Navidrome client module that connects to a Navidrome server via
the Subsonic API, fetches artist and album data, and syncs it into the
local SQLite database.
Add go-subsonic dependency for Subsonic API communication
Create internal/navidrome/client.go with NavidromeClient wrapper
NewClient constructor with token-based auth
Ping health check with HTTP status validation
GetArtists fetches all artists via getArtists endpoint
GetArtistAlbums fetches albums per artist via getArtist endpoint
Create internal/navidrome/sync.go with sync orchestration
SyncArtists upserts artists into artist_settings table
SyncAlbums fetches and stores albums for monitored artists
Add local_albums table (migration 003) with FK to artist_settings
Add LocalAlbum CRUD operations in internal/database/local_albums.go
Full test coverage: 19 tests across client and sync packages
All tests pass, go vet and go fmt clean
Add the Navidrome client module that connects to a Navidrome server via
the Subsonic API, fetches artist and album data, and syncs it into the
local SQLite database.
- Add go-subsonic dependency for Subsonic API communication
- Create internal/navidrome/client.go with NavidromeClient wrapper
- NewClient constructor with token-based auth
- Ping health check with HTTP status validation
- GetArtists fetches all artists via getArtists endpoint
- GetArtistAlbums fetches albums per artist via getArtist endpoint
- Create internal/navidrome/sync.go with sync orchestration
- SyncArtists upserts artists into artist_settings table
- SyncAlbums fetches and stores albums for monitored artists
- Add local_albums table (migration 003) with FK to artist_settings
- Add LocalAlbum CRUD operations in internal/database/local_albums.go
- Full test coverage: 19 tests across client and sync packages
- All tests pass, go vet and go fmt clean
Add the Navidrome client module that connects to a Navidrome server via
the Subsonic API, fetches artist and album data, and syncs it into the
local SQLite database.
- Add go-subsonic dependency for Subsonic API communication
- Create internal/navidrome/client.go with NavidromeClient wrapper
- NewClient constructor with token-based auth
- Ping health check with HTTP status validation
- GetArtists fetches all artists via getArtists endpoint
- GetArtistAlbums fetches albums per artist via getArtist endpoint
- Create internal/navidrome/sync.go with sync orchestration
- SyncArtists upserts artists into artist_settings table
- SyncAlbums fetches and stores albums for monitored artists
- Add local_albums table (migration 003) with FK to artist_settings
- Add LocalAlbum CRUD operations in internal/database/local_albums.go
- Full test coverage: 19 tests across client and sync packages
- All tests pass, go vet and go fmt clean
Mrixs
merged commit a31b4c4fe1 into master2026-05-21 06:50:15 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Add the Navidrome client module that connects to a Navidrome server via
the Subsonic API, fetches artist and album data, and syncs it into the
local SQLite database.