Music_Player3/MusicPlayer/MP/MPPositive/Models/JsonStructs(js文件结构)/MPPositive_JsonNext.swift
2024-05-20 13:44:14 +08:00

273 lines
18 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// MPPositive_JsonNext.swift
// MusicPlayer
//
// Created by Mr.Zhou on 2024/5/9.
//
import Foundation
///Next/id/id
struct JsonNext: Codable {
///
let contents:Contents?
enum CodingKeys: String, CodingKey {
case contents = "contents"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
contents = try values.decodeIfPresent(Contents.self, forKey: .contents)
}
//MARK: -
struct Contents: Codable {
let singleColumnMusicWatchNextResultsRenderer:SingleColumnMusicWatchNextResultsRenderer?
enum CodingKeys: String, CodingKey {
case singleColumnMusicWatchNextResultsRenderer = "singleColumnMusicWatchNextResultsRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
singleColumnMusicWatchNextResultsRenderer = try values.decodeIfPresent(SingleColumnMusicWatchNextResultsRenderer.self, forKey: .singleColumnMusicWatchNextResultsRenderer)
}
struct SingleColumnMusicWatchNextResultsRenderer: Codable {
let tabbedRenderer:TabbedRenderer?
enum CodingKeys: String, CodingKey {
case tabbedRenderer = "tabbedRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
tabbedRenderer = try values.decodeIfPresent(TabbedRenderer.self, forKey: .tabbedRenderer)
}
struct TabbedRenderer:Codable {
let watchNextTabbedResultsRenderer:WatchNextTabbedResultsRenderer?
enum CodingKeys: String, CodingKey {
case watchNextTabbedResultsRenderer = "watchNextTabbedResultsRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
watchNextTabbedResultsRenderer = try values.decodeIfPresent(WatchNextTabbedResultsRenderer.self, forKey: .watchNextTabbedResultsRenderer)
}
//MARK: -
struct WatchNextTabbedResultsRenderer: Codable {
///-012
let tabs:[Tab]?
enum CodingKeys: String, CodingKey {
case tabs = "tabs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
tabs = try values.decodeIfPresent([Tab].self, forKey: .tabs)
}
struct Tab: Codable {
///
let tabRenderer:TabRenderer?
enum CodingKeys: String, CodingKey {
case tabRenderer = "tabRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
tabRenderer = try values.decodeIfPresent(TabRenderer.self, forKey: .tabRenderer)
}
struct TabRenderer: Codable {
///
let content:Content?
////
let endpoint:Endpoint?
enum CodingKeys: String, CodingKey {
case content = "content"
case endpoint = "endpoint"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
content = try values.decodeIfPresent(Content.self, forKey: .content)
endpoint = try values.decodeIfPresent(Endpoint.self, forKey: .endpoint)
}
///
struct Content: Codable {
let musicQueueRenderer:MusicQueueRenderer?
enum CodingKeys: String, CodingKey {
case musicQueueRenderer = "musicQueueRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
musicQueueRenderer = try values.decodeIfPresent(MusicQueueRenderer.self, forKey: .musicQueueRenderer)
}
struct MusicQueueRenderer: Codable {
let content:Content?
enum CodingKeys: String, CodingKey {
case content = "content"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
content = try values.decodeIfPresent(Content.self, forKey: .content)
}
struct Content: Codable {
let playlistPanelRenderer:PlaylistPanelRenderer?
enum CodingKeys: String, CodingKey {
case playlistPanelRenderer = "playlistPanelRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
playlistPanelRenderer = try values.decodeIfPresent(PlaylistPanelRenderer.self, forKey: .playlistPanelRenderer)
}
struct PlaylistPanelRenderer: Codable {
let contents:[Content]?
enum CodingKeys: String, CodingKey {
case contents = "contents"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
contents = try values.decodeIfPresent([Content].self, forKey: .contents)
}
struct Content: Codable {
let playlistPanelVideoRenderer:PlaylistPanelVideoRenderer?
enum CodingKeys: String, CodingKey {
case playlistPanelVideoRenderer = "playlistPanelVideoRenderer"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
playlistPanelVideoRenderer = try values.decodeIfPresent(PlaylistPanelVideoRenderer.self, forKey: .playlistPanelVideoRenderer)
}
struct PlaylistPanelVideoRenderer: Codable {
///
let title:Title?
/////
let longBylineText:LongBylineText?
///
let thumbnail:Thumbnail?
///
let lengthText:LengthText?
///Id
let videoId:String?
///
let shortBylineText:ShortBylineText?
enum CodingKeys: String, CodingKey {
case title = "title"
case longBylineText = "longBylineText"
case thumbnail = "thumbnail"
case lengthText = "lengthText"
case videoId = "videoId"
case shortBylineText = "shortBylineText"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
title = try values.decodeIfPresent(Title.self, forKey: .title)
longBylineText = try values.decodeIfPresent(LongBylineText.self, forKey: .longBylineText)
thumbnail = try values.decodeIfPresent(Thumbnail.self, forKey: .thumbnail)
lengthText = try values.decodeIfPresent(LengthText.self, forKey: .lengthText)
videoId = try values.decodeIfPresent(String.self, forKey: .videoId)
shortBylineText = try values.decodeIfPresent(ShortBylineText.self, forKey: .shortBylineText)
}
struct Title: Codable {
let runs:[Run]?
enum CodingKeys: String, CodingKey {
case runs = "runs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
runs = try values.decodeIfPresent([Run].self, forKey: .runs)
}
}
struct LongBylineText: Codable {
let runs:[Run]?
enum CodingKeys: String, CodingKey {
case runs = "runs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
runs = try values.decodeIfPresent([Run].self, forKey: .runs)
}
}
struct Thumbnail: Codable {
let thumbnails:[Thumbnails]?
enum CodingKeys: String, CodingKey {
case thumbnails = "thumbnails"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
thumbnails = try values.decodeIfPresent([Thumbnails].self, forKey: .thumbnails)
}
struct Thumbnails: Codable {
let url:String?
enum CodingKeys: String, CodingKey {
case url = "url"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
url = try values.decodeIfPresent(String.self, forKey: .url)
}
}
}
struct LengthText: Codable{
let runs:[Run]?
enum CodingKeys: String, CodingKey {
case runs = "runs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
runs = try values.decodeIfPresent([Run].self, forKey: .runs)
}
}
struct ShortBylineText: Codable {
let runs:[Run]?
enum CodingKeys: String, CodingKey {
case runs = "runs"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
runs = try values.decodeIfPresent([Run].self, forKey: .runs)
}
}
///
struct Run:Codable {
let text:String?
enum CodingKeys: String, CodingKey {
case text = "text"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
text = try values.decodeIfPresent(String.self, forKey: .text)
}
}
}
}
}
}
}
}
////
struct Endpoint: Codable {
let browseEndpoint:BrowseEndpoint?
enum CodingKeys: String, CodingKey {
case browseEndpoint = "browseEndpoint"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
browseEndpoint = try values.decodeIfPresent(BrowseEndpoint.self, forKey: .browseEndpoint)
}
struct BrowseEndpoint: Codable {
let browseId:String?
enum CodingKeys: String, CodingKey {
case browseId = "browseId"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
browseId = try values.decodeIfPresent(String.self, forKey: .browseId)
}
}
}
}
}
}
}
}
}
}