/* Copyright © 2023 Philipp Wolfer Scotty is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Scotty is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Scotty. If not, see . */ package deezer type Result interface { Error() *Error } type BaseResult struct { Err *Error `json:"error,omitempty"` } func (r BaseResult) Error() *Error { return r.Err } type Error struct { // {"error":{"type":"OAuthException","message":"Invalid OAuth access token.","code":300}} Type string `json:"type"` Message string `json:"message"` Code int `json:"code"` } type TracksResult struct { BaseResult Next string `json:"next"` Previous string `json:"prev"` Total int `json:"total"` Tracks []LovedTrack `json:"data"` } type HistoryResult struct { BaseResult Next string `json:"next"` Previous string `json:"prev"` Total int `json:"total"` Tracks []Listen `json:"data"` } type Track struct { Id int `json:"id"` Type string `json:"type"` Link string `json:"link"` Title string `json:"title"` TitleVersion string `json:"title_version"` Duration int `json:"duration"` Rank int `json:"rank"` Readable bool `json:"readable"` Explicit bool `json:"explicit_lyrics"` Album Album `json:"album"` Artist Artist `json:"artist"` } type Listen struct { Track Timestamp int64 `json:"timestamp"` } type LovedTrack struct { Track AddedAt int64 `json:"time_add"` } type Album struct { Id int `json:"id"` Type string `json:"type"` Link string `json:"link"` Title string `json:"title"` TrackList string `json:"tracklist"` } type Artist struct { Id int `json:"id"` Type string `json:"type"` Link string `json:"link"` Name string `json:"name"` }