mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-07-12 15:04:43 +02:00
Convert back to Swift objects
This commit is contained in:
parent
2ca9ce797d
commit
16ca7460f4
1 changed files with 90 additions and 77 deletions
|
@ -29,91 +29,99 @@ struct LibraryItem: Codable {
|
||||||
var mediaType: String
|
var mediaType: String
|
||||||
var media: MediaType
|
var media: MediaType
|
||||||
var libraryFiles: [LibraryFile]
|
var libraryFiles: [LibraryFile]
|
||||||
var userMediaProgress:MediaProgress?
|
var userMediaProgress: MediaProgress?
|
||||||
}
|
}
|
||||||
class MediaType: Object, Codable {
|
|
||||||
var libraryItemId: String? = ""
|
struct MediaType: Codable {
|
||||||
var metadata: Metadata?
|
var libraryItemId: String?
|
||||||
var coverPath: String? = ""
|
var metadata: Metadata
|
||||||
var tags: List<String?>
|
var coverPath: String?
|
||||||
var audioFiles: List<AudioFile>
|
var tags: [String]?
|
||||||
var chapters: List<Chapter>
|
var audioFiles: [AudioTrack]?
|
||||||
var tracks: List<AudioTrack>
|
var chapters: [Chapter]?
|
||||||
var size: Int64? = nil
|
var tracks: [AudioTrack]?
|
||||||
var duration: Double? = nil
|
var size: Int64?
|
||||||
var episodes: List<PodcastEpisode>
|
var duration: Double?
|
||||||
var autoDownloadEpisodes: Bool? = nil
|
var episodes: [PodcastEpisode]?
|
||||||
|
var autoDownloadEpisodes: Bool?
|
||||||
}
|
}
|
||||||
class Metadata: Object, Codable {
|
|
||||||
|
struct Metadata: Codable {
|
||||||
var title: String
|
var title: String
|
||||||
var subtitle: String? = ""
|
var subtitle: String?
|
||||||
var authors: List<Author>
|
var authors: [Author]?
|
||||||
var narrators: List<String?>
|
var narrators: [String]?
|
||||||
var genres: List<String?>
|
var genres: [String]
|
||||||
var publishedYear: String? = ""
|
var publishedYear: String?
|
||||||
var publishedDate: String? = ""
|
var publishedDate: String?
|
||||||
var publisher: String? = ""
|
var publisher: String?
|
||||||
// I think calling the below variable description conflicts with some public variables declared in some of the Pods we use, so it's desc. ¯\_(ツ)_/¯
|
var description: String?
|
||||||
final var description: String
|
var isbn: String?
|
||||||
var isbn: String? = ""
|
var asin: String?
|
||||||
var asin: String? = ""
|
var language: String?
|
||||||
var language: String? = ""
|
|
||||||
var explicit: Bool
|
var explicit: Bool
|
||||||
var authorName: String? = ""
|
var authorName: String?
|
||||||
var authorNameLF: String? = ""
|
var authorNameLF: String?
|
||||||
var narratorName: String? = ""
|
var narratorName: String?
|
||||||
var seriesName: String? = ""
|
var seriesName: String?
|
||||||
var feedUrl: String? = ""
|
var feedUrl: String?
|
||||||
}
|
}
|
||||||
class PodcastEpisode: Object, Codable {
|
|
||||||
|
struct PodcastEpisode: Codable {
|
||||||
var id: String
|
var id: String
|
||||||
var index: Int
|
var index: Int
|
||||||
var episode: String? = ""
|
var episode: String?
|
||||||
var episodeType: String? = ""
|
var episodeType: String?
|
||||||
var title: String
|
var title: String
|
||||||
var subtitle: String? = ""
|
var subtitle: String?
|
||||||
var escription: String? = ""
|
var description: String?
|
||||||
var audioFile: AudioFile? = nil
|
var audioFile: AudioFile?
|
||||||
var audioTrack: AudioTrack? = nil
|
var audioTrack: AudioTrack?
|
||||||
var duration: Double
|
var duration: Double
|
||||||
var size: Int64
|
var size: Int64
|
||||||
// var serverEpisodeId: String?
|
// var serverEpisodeId: String?
|
||||||
}
|
}
|
||||||
class AudioFile: Object, Codable {
|
|
||||||
@Persisted var index: Int
|
struct AudioFile: Codable {
|
||||||
@Persisted var ino: String
|
var index: Int
|
||||||
@Persisted var metadata: FileMetadata?
|
var ino: String
|
||||||
|
var metadata: FileMetadata
|
||||||
}
|
}
|
||||||
class Author: Object, Codable {
|
|
||||||
@Persisted var id: String
|
struct Author: Codable {
|
||||||
@Persisted var name: String
|
var id: String
|
||||||
@Persisted var coverPath: String? = ""
|
var name: String
|
||||||
|
var coverPath: String?
|
||||||
}
|
}
|
||||||
class Chapter: Object, Codable {
|
|
||||||
@Persisted var id: Int
|
struct Chapter: Codable {
|
||||||
@Persisted var start: Double
|
var id: Int
|
||||||
@Persisted var end: Double
|
var start: Double
|
||||||
@Persisted var title: String? = nil
|
var end: Double
|
||||||
|
var title: String?
|
||||||
}
|
}
|
||||||
|
|
||||||
struct AudioTrack: Codable {
|
struct AudioTrack: Codable {
|
||||||
var index: Int? = nil
|
var index: Int?
|
||||||
var startOffset: Double? = nil
|
var startOffset: Double?
|
||||||
var duration: Double
|
var duration: Double
|
||||||
var title: String? = ""
|
var title: String?
|
||||||
var contentUrl: String? = ""
|
var contentUrl: String?
|
||||||
var mimeType: String
|
var mimeType: String
|
||||||
var metadata: FileMetadata? = nil
|
var metadata: FileMetadata?
|
||||||
var isLocal: Bool
|
// var isLocal: Bool
|
||||||
var localFileId: String? = ""
|
// var localFileId: String?
|
||||||
// var audioProbeResult: AudioProbeResult? // Needed for local playback. Requires local FFMPEG? Not sure how doable this is on iOS
|
// var audioProbeResult: AudioProbeResult? Needed for local playback
|
||||||
var serverIndex: Int? = nil
|
var serverIndex: Int?
|
||||||
}
|
}
|
||||||
class FileMetadata: Object, Codable {
|
|
||||||
@Persisted var filename: String
|
struct FileMetadata: Codable {
|
||||||
@Persisted var ext: String
|
var filename: String
|
||||||
@Persisted var path: String
|
var ext: String
|
||||||
@Persisted var relPath: String
|
var path: String
|
||||||
|
var relPath: String
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Library: Codable {
|
struct Library: Codable {
|
||||||
var id: String
|
var id: String
|
||||||
var name: String
|
var name: String
|
||||||
|
@ -121,31 +129,36 @@ struct Library: Codable {
|
||||||
var icon: String
|
var icon: String
|
||||||
var mediaType: String
|
var mediaType: String
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Folder: Codable {
|
struct Folder: Codable {
|
||||||
var id: String
|
var id: String
|
||||||
var fullPath: String
|
var fullPath: String
|
||||||
}
|
}
|
||||||
|
|
||||||
struct LibraryFile: Codable {
|
struct LibraryFile: Codable {
|
||||||
var ino: String
|
var ino: String
|
||||||
var metadata: FileMetadata?
|
var metadata: FileMetadata
|
||||||
}
|
}
|
||||||
struct MediaProgress: Codable {
|
|
||||||
var id: String
|
struct MediaProgress:Codable {
|
||||||
var libraryItemId: String
|
var id:String
|
||||||
var episodeId: String?
|
var libraryItemId:String
|
||||||
var duration: Double
|
var episodeId:String?
|
||||||
var progress: Double
|
var duration:Double
|
||||||
var currentTime: Double
|
var progress:Double
|
||||||
var isFinished: Bool
|
var currentTime:Double
|
||||||
var lastUpdate: Int64
|
var isFinished:Bool
|
||||||
var startedAt: Int64
|
var lastUpdate:Int64
|
||||||
var finishedAt: Int64?
|
var startedAt:Int64
|
||||||
|
var finishedAt:Int64?
|
||||||
}
|
}
|
||||||
|
|
||||||
struct PlaybackMetadata: Codable {
|
struct PlaybackMetadata: Codable {
|
||||||
var duration: Double
|
var duration: Double
|
||||||
var currentTime: Double
|
var currentTime: Double
|
||||||
var playerState: PlayerState
|
var playerState: PlayerState
|
||||||
}
|
}
|
||||||
|
|
||||||
enum PlayerState: Codable {
|
enum PlayerState: Codable {
|
||||||
case IDLE
|
case IDLE
|
||||||
case BUFFERING
|
case BUFFERING
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue