mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-24 04:44:57 +02:00
Fix:Podcast download new episode check to compare both GUID and enclosure URL for existing episodes #2986
This commit is contained in:
parent
ab3a137db9
commit
6d89721371
3 changed files with 60 additions and 50 deletions
|
@ -1,4 +1,4 @@
|
|||
const uuidv4 = require("uuid").v4
|
||||
const uuidv4 = require('uuid').v4
|
||||
const { areEquivalent, copyValue } = require('../../utils/index')
|
||||
const AudioFile = require('../files/AudioFile')
|
||||
const AudioTrack = require('../files/AudioTrack')
|
||||
|
@ -47,7 +47,7 @@ class PodcastEpisode {
|
|||
this.enclosure = episode.enclosure ? { ...episode.enclosure } : null
|
||||
this.guid = episode.guid || null
|
||||
this.pubDate = episode.pubDate
|
||||
this.chapters = episode.chapters?.map(ch => ({ ...ch })) || []
|
||||
this.chapters = episode.chapters?.map((ch) => ({ ...ch })) || []
|
||||
this.audioFile = episode.audioFile ? new AudioFile(episode.audioFile) : null
|
||||
this.publishedAt = episode.publishedAt
|
||||
this.addedAt = episode.addedAt
|
||||
|
@ -74,7 +74,7 @@ class PodcastEpisode {
|
|||
enclosure: this.enclosure ? { ...this.enclosure } : null,
|
||||
guid: this.guid,
|
||||
pubDate: this.pubDate,
|
||||
chapters: this.chapters.map(ch => ({ ...ch })),
|
||||
chapters: this.chapters.map((ch) => ({ ...ch })),
|
||||
audioFile: this.audioFile?.toJSON() || null,
|
||||
publishedAt: this.publishedAt,
|
||||
addedAt: this.addedAt,
|
||||
|
@ -98,7 +98,7 @@ class PodcastEpisode {
|
|||
enclosure: this.enclosure ? { ...this.enclosure } : null,
|
||||
guid: this.guid,
|
||||
pubDate: this.pubDate,
|
||||
chapters: this.chapters.map(ch => ({ ...ch })),
|
||||
chapters: this.chapters.map((ch) => ({ ...ch })),
|
||||
audioFile: this.audioFile?.toJSON() || null,
|
||||
audioTrack: this.audioTrack?.toJSON() || null,
|
||||
publishedAt: this.publishedAt,
|
||||
|
@ -121,7 +121,9 @@ class PodcastEpisode {
|
|||
get duration() {
|
||||
return this.audioFile?.duration || 0
|
||||
}
|
||||
get size() { return this.audioFile?.metadata.size || 0 }
|
||||
get size() {
|
||||
return this.audioFile?.metadata.size || 0
|
||||
}
|
||||
get enclosureUrl() {
|
||||
return this.enclosure?.url || null
|
||||
}
|
||||
|
@ -151,9 +153,9 @@ class PodcastEpisode {
|
|||
let hasUpdates = false
|
||||
for (const key in this.toJSON()) {
|
||||
let newValue = payload[key]
|
||||
if (newValue === "") newValue = null
|
||||
if (newValue === '') newValue = null
|
||||
let existingValue = this[key]
|
||||
if (existingValue === "") existingValue = null
|
||||
if (existingValue === '') existingValue = null
|
||||
|
||||
if (newValue != undefined && !areEquivalent(newValue, existingValue)) {
|
||||
this[key] = copyValue(newValue)
|
||||
|
@ -177,7 +179,7 @@ class PodcastEpisode {
|
|||
}
|
||||
|
||||
checkEqualsEnclosureUrl(url) {
|
||||
if (!this.enclosure || !this.enclosure.url) return false
|
||||
if (!this.enclosure?.url) return false
|
||||
return this.enclosure.url == url
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue