mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-07-02 01:19:56 +02:00
Fix manually setting updatedAt of mediaProgresses using progress sync lastUpdate timestamp #4366
This commit is contained in:
parent
293851d931
commit
596bddf791
@ -183,7 +183,7 @@ class MediaProgress extends Model {
|
|||||||
* @param {import('./User').ProgressUpdatePayload} progressPayload
|
* @param {import('./User').ProgressUpdatePayload} progressPayload
|
||||||
* @returns {Promise<MediaProgress>}
|
* @returns {Promise<MediaProgress>}
|
||||||
*/
|
*/
|
||||||
applyProgressUpdate(progressPayload) {
|
async applyProgressUpdate(progressPayload) {
|
||||||
if (!this.extraData) this.extraData = {}
|
if (!this.extraData) this.extraData = {}
|
||||||
if (progressPayload.isFinished !== undefined) {
|
if (progressPayload.isFinished !== undefined) {
|
||||||
if (progressPayload.isFinished && !this.isFinished) {
|
if (progressPayload.isFinished && !this.isFinished) {
|
||||||
@ -243,14 +243,23 @@ class MediaProgress extends Model {
|
|||||||
this.finishedAt = null
|
this.finishedAt = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await this.save()
|
||||||
|
|
||||||
// For local sync
|
// For local sync
|
||||||
if (progressPayload.lastUpdate) {
|
if (progressPayload.lastUpdate) {
|
||||||
this.updatedAt = progressPayload.lastUpdate
|
if (isNaN(new Date(progressPayload.lastUpdate))) {
|
||||||
Logger.info(`[MediaProgress] Manually setting updatedAt to ${this.updatedAt} (media item ${this.mediaItemId})`)
|
Logger.warn(`[MediaProgress] Invalid date provided for lastUpdate: ${progressPayload.lastUpdate} (media item ${this.mediaItemId})`)
|
||||||
this.changed('updatedAt', true)
|
} else {
|
||||||
|
const escapedDate = this.sequelize.escape(new Date(progressPayload.lastUpdate))
|
||||||
|
Logger.info(`[MediaProgress] Manually setting updatedAt to ${escapedDate} (media item ${this.mediaItemId})`)
|
||||||
|
|
||||||
|
await this.sequelize.query(`UPDATE "mediaProgresses" SET "updatedAt" = ${escapedDate} WHERE "id" = '${this.id}'`)
|
||||||
|
|
||||||
|
await this.reload()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.save({ silent: !!progressPayload.lastUpdate })
|
return this
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user