Documentation ¶
Index ¶
- Constants
- func ExtractDeezerAlbumID(urlOrID string) (int, error)
- type Ajax
- type Deezer
- func (d *Deezer) GetAjaxAlbumInfo(id int) (*Ajax, error)
- func (d *Deezer) GetCover(id int) (string, error)
- func (d *Deezer) GetDiscographyInfo(artistID int) (*Discography, error)
- func (d *Deezer) GetRelease(id int) (*Release, error)
- func (d *Deezer) GetTrackIDsFromAlbumID(id int) ([]int, error)
- func (d *Deezer) SearchArtist(artist string) (*SearchResult, error)
- type Discography
- type Release
- type SearchResult
- type SongContributors
- type UserData
Constants ¶
View Source
const ( Single = iota Album Split EP UnknownType )
View Source
const (
APIEndPoint = "https://api.deezer.com"
)
Variables ¶
This section is empty.
Functions ¶
func ExtractDeezerAlbumID ¶ added in v0.39.2
Types ¶
type Ajax ¶ added in v0.18.0
type Ajax struct { Error []interface{} `json:"error"` Results struct { Count int `json:"count"` Data []struct { Duration string `json:"DURATION"` DiskNumber string `json:"DISK_NUMBER"` DigitalReleaseDate string `json:"DIGITAL_RELEASE_DATE"` PhysicalReleaseDate string `json:"PHYSICAL_RELEASE_DATE"` ArtistName string `json:"ART_NAME"` AlbumID string `json:"ALB_ID"` AlbumPicture string `json:"ALB_PICTURE"` AlbumTitle string `json:"ALB_TITLE"` Md5 string `json:"MD5_ORIGIN"` SongID string `json:"SNG_ID"` SongTitle string `json:"SNG_TITLE"` Version string `json:"VERSION"` SongContributors SongContributors `json:"SNG_CONTRIBUTORS,omitempty"` Status int `json:"STATUS"` TrackNumber string `json:"TRACK_NUMBER"` TrackToken string `json:"TRACK_TOKEN"` FlacSize string `json:"FILESIZE_FLAC"` Type int `json:"TYPE"` UserID int `json:"USER_ID"` MediaVersion string `json:"MEDIA_VERSION"` TYPE2 string `json:"__TYPE__"` ISRC string `json:"ISRC"` } `json:"data"` FilteredCount int `json:"filtered_count"` Total int `json:"total"` } `json:"results"` }
type Deezer ¶
type Deezer struct { ArlCookie string SidCookie string LicenseToken string Client *http.Client // contains filtered or unexported fields }
Deezer structure for querying its API.
func (*Deezer) GetAjaxAlbumInfo ¶ added in v0.21.0
func (*Deezer) GetDiscographyInfo ¶ added in v0.39.0
func (d *Deezer) GetDiscographyInfo(artistID int) (*Discography, error)
func (*Deezer) GetRelease ¶ added in v0.18.0
GetRelease from the API. Returns the complete response.
func (*Deezer) GetTrackIDsFromAlbumID ¶
GetTrackIDsFromAlbumID returns a list of tracks ids.
func (*Deezer) SearchArtist ¶ added in v0.39.0
func (d *Deezer) SearchArtist(artist string) (*SearchResult, error)
type Discography ¶ added in v0.39.0
type Discography struct { Error []interface{} `json:"error"` Results struct { ArtID int64 `json:"art_id"` CacheVersion int64 `json:"cache_version"` Count int64 `json:"count"` Data []struct { AlbID string `json:"ALB_ID"` AlbPicture string `json:"ALB_PICTURE"` AlbTitle string `json:"ALB_TITLE"` Artists []struct { ArtistsAlbumsOrder string `json:"ARTISTS_ALBUMS_ORDER"` ArtistIsDummy bool `json:"ARTIST_IS_DUMMY"` ArtID string `json:"ART_ID"` ArtName string `json:"ART_NAME"` ArtPicture string `json:"ART_PICTURE"` Rank string `json:"RANK"` RoleID string `json:"ROLE_ID"` Type string `json:"__TYPE__"` } `json:"ARTISTS"` ArtistsAlbumsIsOfficial bool `json:"ARTISTS_ALBUMS_IS_OFFICIAL"` ArtID string `json:"ART_ID"` ArtName string `json:"ART_NAME"` Copyright string `json:"COPYRIGHT"` DigitalReleaseDate string `json:"DIGITAL_RELEASE_DATE"` ExplicitAlbumContent struct { ExplicitCoverStatus int64 `json:"EXPLICIT_COVER_STATUS"` ExplicitLyricsStatus int64 `json:"EXPLICIT_LYRICS_STATUS"` } `json:"EXPLICIT_ALBUM_CONTENT"` ExplicitLyrics string `json:"EXPLICIT_LYRICS"` GenreID string `json:"GENRE_ID"` Highlight string `json:"HIGHLIGHT"` MinorGenreID string `json:"MINOR_GENRE_ID"` NumberDisk string `json:"NUMBER_DISK"` NumberTrack string `json:"NUMBER_TRACK"` PhysicalReleaseDate string `json:"PHYSICAL_RELEASE_DATE"` ProducerLine string `json:"PRODUCER_LINE"` ProviderID string `json:"PROVIDER_ID"` Rank string `json:"RANK"` RoleID int64 `json:"ROLE_ID"` Status string `json:"STATUS"` Type string `json:"TYPE"` Type_ string `json:"__TYPE__"` } `json:"data"` FilteredCount int64 `json:"filtered_count"` Nb int64 `json:"nb"` Start int64 `json:"start"` Total int64 `json:"total"` } `json:"results"` }
type Release ¶ added in v0.18.0
type Release struct { Artist struct { ID int `json:"id"` Name string `json:"name"` Picture string `json:"picture"` PictureBig string `json:"picture_big"` PictureMedium string `json:"picture_medium"` PictureSmall string `json:"picture_small"` PictureXl string `json:"picture_xl"` Tracklist string `json:"tracklist"` Type string `json:"type"` } `json:"artist"` Available bool `json:"available"` Contributors []struct { ID int `json:"id"` Link string `json:"link"` Name string `json:"name"` Picture string `json:"picture"` PictureBig string `json:"picture_big"` PictureMedium string `json:"picture_medium"` PictureSmall string `json:"picture_small"` PictureXl string `json:"picture_xl"` Radio bool `json:"radio"` Role string `json:"role"` Share string `json:"share"` Tracklist string `json:"tracklist"` Type string `json:"type"` } `json:"contributors"` Cover string `json:"cover"` CoverBig string `json:"cover_big"` CoverMedium string `json:"cover_medium"` CoverSmall string `json:"cover_small"` CoverXl string `json:"cover_xl"` Duration int `json:"duration"` ExplicitContentCover int `json:"explicit_content_cover"` ExplicitContentLyrics int `json:"explicit_content_lyrics"` ExplicitLyrics bool `json:"explicit_lyrics"` Fans int `json:"fans"` GenreID int `json:"genre_id"` Genres struct { Data []struct { ID int `json:"id"` Name string `json:"name"` Picture string `json:"picture"` Type string `json:"type"` } `json:"data"` } `json:"genres"` ID int `json:"id"` Label string `json:"label"` Link string `json:"link"` NbTracks int `json:"nb_tracks"` Rating int `json:"rating"` RecordType string `json:"record_type"` ReleaseDate string `json:"release_date"` Title string `json:"title"` Tracklist string `json:"tracklist"` Tracks struct { Data []struct { Artist struct { ID int `json:"id"` Name string `json:"name"` Tracklist string `json:"tracklist"` Type string `json:"type"` } `json:"artist"` Duration int `json:"duration"` ExplicitContentCover int `json:"explicit_content_cover"` ExplicitContentLyrics int `json:"explicit_content_lyrics"` ExplicitLyrics bool `json:"explicit_lyrics"` ID int `json:"id"` Link string `json:"link"` Preview string `json:"preview"` Rank int `json:"rank"` Readable bool `json:"readable"` Title string `json:"title"` TitleShort string `json:"title_short"` TitleVersion string `json:"title_version"` Type string `json:"type"` } `json:"data"` } `json:"tracks"` Type string `json:"type"` Upc string `json:"upc"` }
func (*Release) ReleaseYear ¶ added in v0.18.0
type SearchResult ¶ added in v0.39.0
type SearchResult struct { Error []interface{} `json:"error"` Results struct { Album struct { Count int64 `json:"count"` Data []struct { AlbID string `json:"ALB_ID"` AlbPicture string `json:"ALB_PICTURE"` AlbTitle string `json:"ALB_TITLE"` Artists []struct { ArtistsAlbumsOrder string `json:"ARTISTS_ALBUMS_ORDER"` ArtistIsDummy bool `json:"ARTIST_IS_DUMMY"` ArtID string `json:"ART_ID"` ArtName string `json:"ART_NAME"` ArtPicture string `json:"ART_PICTURE"` Rank string `json:"RANK"` RoleID string `json:"ROLE_ID"` Type string `json:"__TYPE__"` } `json:"ARTISTS"` ArtistIsDummy bool `json:"ARTIST_IS_DUMMY"` ArtID string `json:"ART_ID"` ArtName string `json:"ART_NAME"` Available bool `json:"AVAILABLE"` ExplicitAlbumContent struct { ExplicitCoverStatus int64 `json:"EXPLICIT_COVER_STATUS"` ExplicitLyricsStatus int64 `json:"EXPLICIT_LYRICS_STATUS"` } `json:"EXPLICIT_ALBUM_CONTENT"` NumberTrack string `json:"NUMBER_TRACK"` PhysicalReleaseDate string `json:"PHYSICAL_RELEASE_DATE"` Type string `json:"TYPE"` Version string `json:"VERSION"` Type_ string `json:"__TYPE__"` } `json:"data"` FilteredCount int64 `json:"filtered_count"` FilteredItems []int64 `json:"filtered_items"` Next int64 `json:"next"` Total int64 `json:"total"` } `json:"ALBUM"` Artist struct { Count int64 `json:"count"` Data []struct { ArtistIsDummy bool `json:"ARTIST_IS_DUMMY"` ArtID string `json:"ART_ID"` ArtName string `json:"ART_NAME"` ArtPicture string `json:"ART_PICTURE"` NbFan int64 `json:"NB_FAN"` Type string `json:"__TYPE__"` } `json:"data"` FilteredCount int64 `json:"filtered_count"` FilteredItems []interface{} `json:"filtered_items"` Next int64 `json:"next"` Total int64 `json:"total"` } `json:"ARTIST"` Fuzzinness bool `json:"FUZZINNESS"` Order []string `json:"ORDER"` Query string `json:"QUERY"` RevisedQuery string `json:"REVISED_QUERY"` TopResult []interface{} `json:"TOP_RESULT"` } `json:"results"` }
type SongContributors ¶ added in v0.21.4
SongContributors is defined because the response is either a map, or an empty slice.
func (*SongContributors) UnmarshalJSON ¶ added in v0.21.4
func (w *SongContributors) UnmarshalJSON(data []byte) error
UnmarshalJSON allows to unmarshall JSON with an empty slice as contributors, without throwing errors. Instead, the song contributors return an empty map.
type UserData ¶ added in v0.18.0
type UserData struct { Error []interface{} `json:"error"` Results struct { SessionID string `json:"SESSION_ID"` CheckForm string `json:"checkForm"` User struct { Options struct { LicenseCountry string `json:"license_country"` LicenseToken string `json:"license_token"` } `json:"OPTIONS"` } `json:"USER"` } `json:"results"` }
Click to show internal directories.
Click to hide internal directories.