83 lines
2.8 KiB
Go
83 lines
2.8 KiB
Go
|
|
// Code generated by ndpgen. DO NOT EDIT.
|
||
|
|
//
|
||
|
|
// This file provides stub implementations for non-WASM platforms.
|
||
|
|
// It allows Go plugins to compile and run tests outside of WASM,
|
||
|
|
// but the actual functionality is only available in WASM builds.
|
||
|
|
//
|
||
|
|
//go:build !wasip1
|
||
|
|
|
||
|
|
package lyrics
|
||
|
|
|
||
|
|
// ArtistRef is a reference to an artist with name and optional MBID.
|
||
|
|
type ArtistRef struct {
|
||
|
|
// ID is the internal Navidrome artist ID (if known).
|
||
|
|
ID string `json:"id,omitempty"`
|
||
|
|
// Name is the artist name.
|
||
|
|
Name string `json:"name"`
|
||
|
|
// MBID is the MusicBrainz ID for the artist.
|
||
|
|
MBID string `json:"mbid,omitempty"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// GetLyricsRequest contains the track information for lyrics lookup.
|
||
|
|
type GetLyricsRequest struct {
|
||
|
|
Track TrackInfo `json:"track"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// GetLyricsResponse contains the lyrics returned by the plugin.
|
||
|
|
type GetLyricsResponse struct {
|
||
|
|
Lyrics []LyricsText `json:"lyrics"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// LyricsText represents a single set of lyrics in raw text format.
|
||
|
|
// Text can be plain text or LRC format — Navidrome will parse it.
|
||
|
|
type LyricsText struct {
|
||
|
|
Lang string `json:"lang,omitempty"`
|
||
|
|
Text string `json:"text"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// TrackInfo contains track metadata.
|
||
|
|
type TrackInfo struct {
|
||
|
|
// ID is the internal Navidrome track ID.
|
||
|
|
ID string `json:"id"`
|
||
|
|
// Title is the track title.
|
||
|
|
Title string `json:"title"`
|
||
|
|
// Album is the album name.
|
||
|
|
Album string `json:"album"`
|
||
|
|
// Artist is the formatted artist name for display (e.g., "Artist1 • Artist2").
|
||
|
|
Artist string `json:"artist"`
|
||
|
|
// AlbumArtist is the formatted album artist name for display.
|
||
|
|
AlbumArtist string `json:"albumArtist"`
|
||
|
|
// Artists is the list of track artists.
|
||
|
|
Artists []ArtistRef `json:"artists"`
|
||
|
|
// AlbumArtists is the list of album artists.
|
||
|
|
AlbumArtists []ArtistRef `json:"albumArtists"`
|
||
|
|
// Duration is the track duration in seconds.
|
||
|
|
Duration float32 `json:"duration"`
|
||
|
|
// TrackNumber is the track number on the album.
|
||
|
|
TrackNumber int32 `json:"trackNumber"`
|
||
|
|
// DiscNumber is the disc number.
|
||
|
|
DiscNumber int32 `json:"discNumber"`
|
||
|
|
// MBZRecordingID is the MusicBrainz recording ID.
|
||
|
|
MBZRecordingID string `json:"mbzRecordingId,omitempty"`
|
||
|
|
// MBZAlbumID is the MusicBrainz album/release ID.
|
||
|
|
MBZAlbumID string `json:"mbzAlbumId,omitempty"`
|
||
|
|
// MBZReleaseGroupID is the MusicBrainz release group ID.
|
||
|
|
MBZReleaseGroupID string `json:"mbzReleaseGroupId,omitempty"`
|
||
|
|
// MBZReleaseTrackID is the MusicBrainz release track ID.
|
||
|
|
MBZReleaseTrackID string `json:"mbzReleaseTrackId,omitempty"`
|
||
|
|
}
|
||
|
|
|
||
|
|
// Lyrics requires all methods to be implemented.
|
||
|
|
// Lyrics provides lyrics for a given track from external sources.
|
||
|
|
type Lyrics interface {
|
||
|
|
// GetLyrics
|
||
|
|
GetLyrics(GetLyricsRequest) (GetLyricsResponse, error)
|
||
|
|
}
|
||
|
|
|
||
|
|
// NotImplementedCode is the standard return code for unimplemented functions.
|
||
|
|
const NotImplementedCode int32 = -2
|
||
|
|
|
||
|
|
// Register is a no-op on non-WASM platforms.
|
||
|
|
// This stub allows code to compile outside of WASM.
|
||
|
|
func Register(_ Lyrics) {}
|