This commit is contained in:
Dyson 2026-02-22 23:29:09 +01:00 committed by GitHub
commit e3d8509205
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 109 additions and 0 deletions

View file

@ -603,6 +603,7 @@ class User extends Model {
*/
toOldJSONForBrowser(hideRootToken = false, minimal = false) {
const seriesHideFromContinueListening = this.extraData?.seriesHideFromContinueListening || []
const hiddenSeries = this.extraData?.hiddenSeries || []
const librariesAccessible = this.permissions?.librariesAccessible || []
const itemTagsSelected = this.permissions?.itemTagsSelected || []
const permissions = { ...this.permissions }
@ -621,6 +622,7 @@ class User extends Model {
isOldToken: this.isOldToken,
mediaProgress: this.mediaProgresses?.map((mp) => mp.getOldMediaProgress()) || [],
seriesHideFromContinueListening: [...seriesHideFromContinueListening],
hiddenSeries: [...hiddenSeries],
bookmarks: this.bookmarks?.map((b) => ({ ...b })) || [],
isActive: this.isActive,
isLocked: this.isLocked,
@ -945,6 +947,30 @@ class User extends Model {
return true
}
/**
*
* @param {string} seriesId
* @param {boolean} makeHidden
* @returns {Promise<boolean>}
*/
async hideSeries(seriesId, makeHidden) {
if (!this.extraData) this.extraData = {}
let hiddenSeries = this.extraData.hiddenSeries || []
if (makeHidden) {
if (hiddenSeries.includes(seriesId)) return false
hiddenSeries.push(seriesId)
} else {
if (!hiddenSeries.includes(seriesId)) return false
hiddenSeries = hiddenSeries.filter((sid) => sid !== seriesId)
}
this.extraData.hiddenSeries = hiddenSeries
this.changed('extraData', true)
await this.save()
return true
}
/**
* Update user permissions from external JSON
*