Add UI for viewing the album info returned by Subsonic getAlbumInfo API

- Adding "Get Info" in album page's "meatball" menu. When the option is clicked a pop up appears with
the album information and links to Last.fm and MusicBrainz.

Screenshot:

Fixes #105
This commit is contained in:
natilou
2023-06-27 09:48:36 -03:00
parent ad97c274f3
commit f26e9dbcbf
6 changed files with 154 additions and 1 deletions
+2
View File
@@ -39,6 +39,8 @@ type MediaProvider interface {
GetAlbum(albumID string) (*AlbumWithTracks, error)
GetAlbumInfo(albumID string) (*AlbumInfo, error)
GetArtist(artistID string) (*ArtistWithAlbums, error)
GetArtistInfo(artistID string) (*ArtistInfo, error)
+6
View File
@@ -18,6 +18,12 @@ type AlbumWithTracks struct {
Tracks []*Track
}
type AlbumInfo struct {
Info string
LastFMUrl string
MusicBrainzID string
}
type Artist struct {
ID string
CoverArtID string
@@ -59,6 +59,19 @@ func (s *subsonicMediaProvider) GetAlbum(albumID string) (*mediaprovider.AlbumWi
return album, nil
}
func (s *subsonicMediaProvider) GetAlbumInfo(albumID string) (*mediaprovider.AlbumInfo, error) {
al, err := s.client.GetAlbumInfo(albumID)
if err != nil {
return nil, err
}
album := &mediaprovider.AlbumInfo{
Info: al.Notes,
LastFMUrl: al.LastFmUrl,
MusicBrainzID: al.MusicBrainzID,
}
return album, nil
}
func (s *subsonicMediaProvider) GetArtist(artistID string) (*mediaprovider.ArtistWithAlbums, error) {
ar, err := s.client.GetArtist(artistID)
if err != nil {