Add: route for syncing local progress from app

This commit is contained in:
advplyr 2021-11-19 20:08:03 -06:00
parent 43dc85ad81
commit 66911a4b70
6 changed files with 67 additions and 10 deletions

View file

@ -328,5 +328,30 @@ class User {
this.audiobooks[audiobookId].deleteBookmark(time)
return this.audiobooks[audiobookId]
}
syncLocalUserAudiobookData(localUserAudiobookData, audiobook) {
if (!localUserAudiobookData || !localUserAudiobookData.audiobookId) {
Logger.error(`[User] Invalid local user audiobook data`, localUserAudiobookData)
return false
}
if (!this.audiobooks[localUserAudiobookData.audiobookId]) {
this.audiobooks[localUserAudiobookData.audiobookId] = new UserAudiobookData(localUserAudiobookData)
return true
}
var userAbD = this.audiobooks[localUserAudiobookData.audiobookId]
if (userAbD.lastUpdate >= localUserAudiobookData.lastUpdate) {
// Server audiobook data is more recent
return false
}
// Local Data More recent
var wasUpdated = this.audiobooks[localUserAudiobookData.audiobookId].update(localUserAudiobookData)
if (wasUpdated) {
Logger.debug(`[User] syncLocalUserAudiobookData local data was more recent for "${audiobook.title}"`)
}
return wasUpdated
}
}
module.exports = User