mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-08-01 08:34:33 +02:00
Book-Podcast combination, optional fixes
This commit is contained in:
parent
7189588c2b
commit
81ca757c77
2 changed files with 14 additions and 24 deletions
|
@ -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
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue