Book-Podcast combination, optional fixes

This commit is contained in:
benonymity 2022-04-25 00:15:44 -04:00
parent 7189588c2b
commit 81ca757c77
2 changed files with 14 additions and 24 deletions

View file

@ -25,22 +25,24 @@ struct LibraryItem: Codable {
var isMissing: Bool var isMissing: Bool
var isInvalid: Bool var isInvalid: Bool
var mediaType: String var mediaType: String
// var media: MediaType var media: MediaType
var libraryFiles: [LibraryFile] var libraryFiles: [LibraryFile]
} }
struct Book: Codable { struct MediaType: Codable {
var libraryItemId: String? var libraryItemId: String?
var metadata: BookMetadata var metadata: Metadata
var coverPath: String? var coverPath: String?
var tags: [String] var tags: [String]?
var audioFiles: [AudioTrack]? var audioFiles: [AudioTrack]?
var chapters: [Chapter]? var chapters: [Chapter]?
var tracks: [AudioTrack]? var tracks: [AudioTrack]?
var size: Int64? var size: Int64?
var duration: Double? var duration: Double?
var episodes: [PodcastEpisode]?
var autoDownloadEpisodes: Bool?
} }
struct BookMetadata: Codable { struct Metadata: Codable {
var title:String var title: String
var subtitle: String? var subtitle: String?
var authors: [Author]? var authors: [Author]?
var narrators: [String]? var narrators: [String]?
@ -57,26 +59,14 @@ struct BookMetadata: Codable {
var authorNameLF: String? var authorNameLF: String?
var narratorName: String? var narratorName: String?
var seriesName: String? var seriesName: String?
}
struct Podcast: Codable {
var metadata: PodcastMetadata
var coverPath: String?
var tags: [String]
var episodes: [PodcastEpisode]
var autoDownloadEpisodes: Bool
}
struct PodcastMetadata: Codable {
var title: String
var author: String?
var feedUrl: String? var feedUrl: String?
var genres: [String]
} }
struct PodcastEpisode: 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 description: String? var description: String?
var audioFile: AudioFile? var audioFile: AudioFile?
@ -103,10 +93,10 @@ struct Chapter: Codable {
} }
struct AudioTrack: Codable { struct AudioTrack: Codable {
var index: Int? var index: Int?
var startOffset: Double 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? var metadata: FileMetadata?
// var isLocal: Bool // var isLocal: Bool

View file

@ -40,7 +40,7 @@ class AudioPlayer: NSObject {
if playbackSession.audioTracks.count != 1 || playbackSession.audioTracks[0].mimeType != "application/vnd.apple.mpegurl" { if playbackSession.audioTracks.count != 1 || playbackSession.audioTracks[0].mimeType != "application/vnd.apple.mpegurl" {
NSLog("The player only support HLS streams right now") NSLog("The player only support HLS streams right now")
self.activeAudioTrack = AudioTrack(index: 0, startOffset: -1, duration: -1, title: "", contentUrl: "", mimeType: "") self.activeAudioTrack = AudioTrack(index: 0, startOffset: -1, duration: -1, title: "", contentUrl: nil, mimeType: "", metadata: nil, serverIndex: 0)
super.init() super.init()
return return
@ -168,7 +168,7 @@ class AudioPlayer: NSObject {
"Authorization": "Bearer \(Store.serverConfig!.token)" "Authorization": "Bearer \(Store.serverConfig!.token)"
] ]
return AVURLAsset(url: URL(string: "\(Store.serverConfig!.address)\(activeAudioTrack.contentUrl)")!, options: ["AVURLAssetHTTPHeaderFieldsKey": headers]) return AVURLAsset(url: URL(string: "\(Store.serverConfig!.address)\(activeAudioTrack.contentUrl ?? "")")!, options: ["AVURLAssetHTTPHeaderFieldsKey": headers])
} }
private func initAudioSession() { private func initAudioSession() {
do { do {