package main
import (
"strings"
"github.com/navidrome/navidrome/plugins/pdk/go/host"
"github.com/navidrome/navidrome/plugins/pdk/go/pdk"
)
type TestInput struct {
ArtworkType string `json:"artwork_type"`
ID string `json:"id"`
Size int32 `json:"size"`
}
type TestOutput struct {
URL string `json:"url,omitempty"`
Error *string `json:"error,omitempty"`
}
func ndTestArtwork() int32 {
var input TestInput
if err := pdk.InputJSON(&input); err != nil {
errStr := err.Error()
pdk.OutputJSON(TestOutput{Error: &errStr})
return 0
}
var url string
var err error
switch strings.ToLower(input.ArtworkType) {
case "artist":
url, err = host.ArtworkGetArtistUrl(input.ID, input.Size)
case "album":
url, err = host.ArtworkGetAlbumUrl(input.ID, input.Size)
case "track":
url, err = host.ArtworkGetTrackUrl(input.ID, input.Size)
case "playlist":
url, err = host.ArtworkGetPlaylistUrl(input.ID, input.Size)
default:
errStr := "unknown artwork type: " + input.ArtworkType
pdk.OutputJSON(TestOutput{Error: &errStr})
return 0
}
if err != nil {
errStr := err.Error()
pdk.OutputJSON(TestOutput{Error: &errStr})
return 0
}
pdk.OutputJSON(TestOutput{URL: url})
return 0
}
func main() {}