mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-10 01:15:06 +02:00
Update podcasts to new library item model
This commit is contained in:
parent
4a398f6113
commit
d8823c8b1c
14 changed files with 416 additions and 281 deletions
|
@ -87,6 +87,40 @@ class PodcastEpisode extends Model {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {import('../utils/podcastUtils').RssPodcastEpisode} rssPodcastEpisode
|
||||
* @param {string} podcastId
|
||||
* @param {import('../objects/files/AudioFile')} audioFile
|
||||
*/
|
||||
static async createFromRssPodcastEpisode(rssPodcastEpisode, podcastId, audioFile) {
|
||||
const podcastEpisode = {
|
||||
index: null,
|
||||
season: rssPodcastEpisode.season,
|
||||
episode: rssPodcastEpisode.episode,
|
||||
episodeType: rssPodcastEpisode.episodeType,
|
||||
title: rssPodcastEpisode.title,
|
||||
subtitle: rssPodcastEpisode.subtitle,
|
||||
description: rssPodcastEpisode.description,
|
||||
pubDate: rssPodcastEpisode.pubDate,
|
||||
enclosureURL: rssPodcastEpisode.enclosure?.url || null,
|
||||
enclosureSize: rssPodcastEpisode.enclosure?.length || null,
|
||||
enclosureType: rssPodcastEpisode.enclosure?.type || null,
|
||||
publishedAt: rssPodcastEpisode.publishedAt,
|
||||
podcastId,
|
||||
audioFile: audioFile.toJSON(),
|
||||
chapters: [],
|
||||
extraData: {}
|
||||
}
|
||||
if (rssPodcastEpisode.guid) {
|
||||
podcastEpisode.extraData.guid = rssPodcastEpisode.guid
|
||||
}
|
||||
if (audioFile.chapters?.length) {
|
||||
podcastEpisode.chapters = audioFile.chapters.map((ch) => ({ ...ch }))
|
||||
}
|
||||
return this.create(podcastEpisode)
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize model
|
||||
* @param {import('../Database').sequelize} sequelize
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue