// Code generated by hostgen. DO NOT EDIT. // // This file contains client wrappers for the Artwork host service. // It is intended for use in Navidrome plugins built with TinyGo. // //go:build wasip1 package main import ( "encoding/json" "errors" "github.com/extism/go-pdk" ) // artwork_getartisturl is the host function provided by Navidrome. // //go:wasmimport extism:host/user artwork_getartisturl func artwork_getartisturl(uint64) uint64 // artwork_getalbumurl is the host function provided by Navidrome. // //go:wasmimport extism:host/user artwork_getalbumurl func artwork_getalbumurl(uint64) uint64 // artwork_gettrackurl is the host function provided by Navidrome. // //go:wasmimport extism:host/user artwork_gettrackurl func artwork_gettrackurl(uint64) uint64 // artwork_getplaylisturl is the host function provided by Navidrome. // //go:wasmimport extism:host/user artwork_getplaylisturl func artwork_getplaylisturl(uint64) uint64 // ArtworkGetArtistUrlRequest is the request type for Artwork.GetArtistUrl. type ArtworkGetArtistUrlRequest struct { Id string `json:"id"` Size int32 `json:"size"` } // ArtworkGetArtistUrlResponse is the response type for Artwork.GetArtistUrl. type ArtworkGetArtistUrlResponse struct { Url string `json:"url,omitempty"` Error string `json:"error,omitempty"` } // ArtworkGetAlbumUrlRequest is the request type for Artwork.GetAlbumUrl. type ArtworkGetAlbumUrlRequest struct { Id string `json:"id"` Size int32 `json:"size"` } // ArtworkGetAlbumUrlResponse is the response type for Artwork.GetAlbumUrl. type ArtworkGetAlbumUrlResponse struct { Url string `json:"url,omitempty"` Error string `json:"error,omitempty"` } // ArtworkGetTrackUrlRequest is the request type for Artwork.GetTrackUrl. type ArtworkGetTrackUrlRequest struct { Id string `json:"id"` Size int32 `json:"size"` } // ArtworkGetTrackUrlResponse is the response type for Artwork.GetTrackUrl. type ArtworkGetTrackUrlResponse struct { Url string `json:"url,omitempty"` Error string `json:"error,omitempty"` } // ArtworkGetPlaylistUrlRequest is the request type for Artwork.GetPlaylistUrl. type ArtworkGetPlaylistUrlRequest struct { Id string `json:"id"` Size int32 `json:"size"` } // ArtworkGetPlaylistUrlResponse is the response type for Artwork.GetPlaylistUrl. type ArtworkGetPlaylistUrlResponse struct { Url string `json:"url,omitempty"` Error string `json:"error,omitempty"` } // ArtworkGetArtistUrl calls the artwork_getartisturl host function. // GetArtistUrl generates a public URL for an artist's artwork. // // Parameters: // - id: The artist's unique identifier // - size: Desired image size in pixels (0 for original size) // // Returns the public URL for the artwork, or an error if generation fails. func ArtworkGetArtistUrl(id string, size int32) (*ArtworkGetArtistUrlResponse, error) { // Marshal request to JSON req := ArtworkGetArtistUrlRequest{ Id: id, Size: size, } reqBytes, err := json.Marshal(req) if err != nil { return nil, err } reqMem := pdk.AllocateBytes(reqBytes) defer reqMem.Free() // Call the host function responsePtr := artwork_getartisturl(reqMem.Offset()) // Read the response from memory responseMem := pdk.FindMemory(responsePtr) responseBytes := responseMem.ReadBytes() // Parse the response var response ArtworkGetArtistUrlResponse if err := json.Unmarshal(responseBytes, &response); err != nil { return nil, err } // Convert Error field to Go error if response.Error != "" { return nil, errors.New(response.Error) } return &response, nil } // ArtworkGetAlbumUrl calls the artwork_getalbumurl host function. // GetAlbumUrl generates a public URL for an album's artwork. // // Parameters: // - id: The album's unique identifier // - size: Desired image size in pixels (0 for original size) // // Returns the public URL for the artwork, or an error if generation fails. func ArtworkGetAlbumUrl(id string, size int32) (*ArtworkGetAlbumUrlResponse, error) { // Marshal request to JSON req := ArtworkGetAlbumUrlRequest{ Id: id, Size: size, } reqBytes, err := json.Marshal(req) if err != nil { return nil, err } reqMem := pdk.AllocateBytes(reqBytes) defer reqMem.Free() // Call the host function responsePtr := artwork_getalbumurl(reqMem.Offset()) // Read the response from memory responseMem := pdk.FindMemory(responsePtr) responseBytes := responseMem.ReadBytes() // Parse the response var response ArtworkGetAlbumUrlResponse if err := json.Unmarshal(responseBytes, &response); err != nil { return nil, err } // Convert Error field to Go error if response.Error != "" { return nil, errors.New(response.Error) } return &response, nil } // ArtworkGetTrackUrl calls the artwork_gettrackurl host function. // GetTrackUrl generates a public URL for a track's artwork. // // Parameters: // - id: The track's (media file) unique identifier // - size: Desired image size in pixels (0 for original size) // // Returns the public URL for the artwork, or an error if generation fails. func ArtworkGetTrackUrl(id string, size int32) (*ArtworkGetTrackUrlResponse, error) { // Marshal request to JSON req := ArtworkGetTrackUrlRequest{ Id: id, Size: size, } reqBytes, err := json.Marshal(req) if err != nil { return nil, err } reqMem := pdk.AllocateBytes(reqBytes) defer reqMem.Free() // Call the host function responsePtr := artwork_gettrackurl(reqMem.Offset()) // Read the response from memory responseMem := pdk.FindMemory(responsePtr) responseBytes := responseMem.ReadBytes() // Parse the response var response ArtworkGetTrackUrlResponse if err := json.Unmarshal(responseBytes, &response); err != nil { return nil, err } // Convert Error field to Go error if response.Error != "" { return nil, errors.New(response.Error) } return &response, nil } // ArtworkGetPlaylistUrl calls the artwork_getplaylisturl host function. // GetPlaylistUrl generates a public URL for a playlist's artwork. // // Parameters: // - id: The playlist's unique identifier // - size: Desired image size in pixels (0 for original size) // // Returns the public URL for the artwork, or an error if generation fails. func ArtworkGetPlaylistUrl(id string, size int32) (*ArtworkGetPlaylistUrlResponse, error) { // Marshal request to JSON req := ArtworkGetPlaylistUrlRequest{ Id: id, Size: size, } reqBytes, err := json.Marshal(req) if err != nil { return nil, err } reqMem := pdk.AllocateBytes(reqBytes) defer reqMem.Free() // Call the host function responsePtr := artwork_getplaylisturl(reqMem.Offset()) // Read the response from memory responseMem := pdk.FindMemory(responsePtr) responseBytes := responseMem.ReadBytes() // Parse the response var response ArtworkGetPlaylistUrlResponse if err := json.Unmarshal(responseBytes, &response); err != nil { return nil, err } // Convert Error field to Go error if response.Error != "" { return nil, errors.New(response.Error) } return &response, nil }