151 lines
2.8 KiB
Swift
151 lines
2.8 KiB
Swift
import Foundation
|
|
|
|
struct ArtistJSON: Decodable {
|
|
let id: String
|
|
let name: String
|
|
let sortName: String?
|
|
let coverArt: String?
|
|
let albumCount: Int?
|
|
let starred: String?
|
|
}
|
|
|
|
struct AlbumJSON: Decodable {
|
|
let id: String
|
|
let song: [SongJSON]?
|
|
let name: String
|
|
let artist: String?
|
|
let artistId: String?
|
|
let coverArt: String?
|
|
let songCount: Int?
|
|
let duration: Double?
|
|
let created: String?
|
|
let year: Int?
|
|
let genre: String?
|
|
let starred: String?
|
|
}
|
|
|
|
struct SongJSON: Decodable {
|
|
let id: String
|
|
let title: String
|
|
let album: String?
|
|
let albumId: String?
|
|
let artist: String?
|
|
let artistId: String?
|
|
let track: Int?
|
|
let discNumber: Int?
|
|
let year: Int?
|
|
let genre: String?
|
|
let coverArt: String?
|
|
let suffix: String?
|
|
let bitRate: Int?
|
|
let samplingRate: Int?
|
|
let bitDepth: Int?
|
|
let channelCount: Int?
|
|
let duration: Double?
|
|
let playCount: Int?
|
|
let played: String?
|
|
let starred: String?
|
|
let explicitStatus: String?
|
|
}
|
|
|
|
struct PlaylistJSON: Decodable {
|
|
let id: String
|
|
let name: String
|
|
let comment: String?
|
|
let coverArt: String?
|
|
let songCount: Int?
|
|
let duration: Double?
|
|
let changed: String?
|
|
let entry: [SongJSON]?
|
|
}
|
|
|
|
struct StationJSON: Decodable {
|
|
let id: String
|
|
let name: String
|
|
let streamUrl: String
|
|
let homePageUrl: String?
|
|
let coverArt: String?
|
|
}
|
|
|
|
struct StructuredLyricsJSON: Decodable {
|
|
struct Line: Decodable {
|
|
let start: Int?
|
|
let value: String
|
|
}
|
|
|
|
let lang: String?
|
|
let synced: Bool
|
|
let offset: Int?
|
|
let line: [Line]?
|
|
}
|
|
|
|
struct ArtistsPayload: Decodable {
|
|
struct Index: Decodable {
|
|
let artist: [ArtistJSON]?
|
|
}
|
|
|
|
struct Artists: Decodable {
|
|
let index: [Index]?
|
|
}
|
|
|
|
let artists: Artists
|
|
}
|
|
|
|
struct AlbumListPayload: Decodable {
|
|
struct List: Decodable {
|
|
let album: [AlbumJSON]?
|
|
}
|
|
|
|
let albumList2: List
|
|
}
|
|
|
|
struct AlbumPayload: Decodable {
|
|
let album: AlbumJSON
|
|
}
|
|
|
|
struct SearchPayload: Decodable {
|
|
struct Result: Decodable {
|
|
let song: [SongJSON]?
|
|
}
|
|
|
|
let searchResult3: Result
|
|
}
|
|
|
|
struct PlaylistsPayload: Decodable {
|
|
struct List: Decodable {
|
|
let playlist: [PlaylistJSON]?
|
|
}
|
|
|
|
let playlists: List
|
|
}
|
|
|
|
struct PlaylistPayload: Decodable {
|
|
let playlist: PlaylistJSON
|
|
}
|
|
|
|
struct StationsPayload: Decodable {
|
|
struct List: Decodable {
|
|
let internetRadioStation: [StationJSON]?
|
|
}
|
|
|
|
let internetRadioStations: List
|
|
}
|
|
|
|
struct StarredPayload: Decodable {
|
|
struct Starred: Decodable {
|
|
let artist: [ArtistJSON]?
|
|
let album: [AlbumJSON]?
|
|
let song: [SongJSON]?
|
|
}
|
|
|
|
let starred2: Starred
|
|
}
|
|
|
|
struct LyricsPayload: Decodable {
|
|
struct List: Decodable {
|
|
let structuredLyrics: [StructuredLyricsJSON]?
|
|
}
|
|
|
|
let lyricsList: List
|
|
}
|