mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-01 08:44:40 +02:00
Fix:Shares not working with timeouts longer than 23 days #3164
This commit is contained in:
parent
ee53086444
commit
88693d73bd
3 changed files with 64 additions and 10 deletions
|
@ -1,12 +1,14 @@
|
|||
const Database = require('../Database')
|
||||
const Logger = require('../Logger')
|
||||
const SocketAuthority = require('../SocketAuthority')
|
||||
const LongTimeout = require('../utils/longTimeout')
|
||||
const { elapsedPretty } = require('../utils/index')
|
||||
|
||||
/**
|
||||
* @typedef OpenMediaItemShareObject
|
||||
* @property {string} id
|
||||
* @property {import('../models/MediaItemShare').MediaItemShareObject} mediaItemShare
|
||||
* @property {NodeJS.Timeout} timeout
|
||||
* @property {LongTimeout} timeout
|
||||
*/
|
||||
|
||||
class ShareManager {
|
||||
|
@ -118,13 +120,13 @@ class ShareManager {
|
|||
this.destroyMediaItemShare(mediaItemShare.id)
|
||||
return
|
||||
}
|
||||
|
||||
const timeout = setTimeout(() => {
|
||||
const timeout = new LongTimeout()
|
||||
timeout.set(() => {
|
||||
Logger.info(`[ShareManager] Removing expired media item share "${mediaItemShare.id}"`)
|
||||
this.removeMediaItemShare(mediaItemShare.id)
|
||||
}, expiresAtDuration)
|
||||
this.openMediaItemShares.push({ id: mediaItemShare.id, mediaItemShare: mediaItemShare.toJSON(), timeout })
|
||||
Logger.info(`[ShareManager] Scheduled media item share "${mediaItemShare.id}" to expire in ${expiresAtDuration}ms`)
|
||||
Logger.info(`[ShareManager] Scheduled media item share "${mediaItemShare.id}" to expire in ${elapsedPretty(expiresAtDuration / 1000)}`)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -149,7 +151,7 @@ class ShareManager {
|
|||
if (!mediaItemShare) return
|
||||
|
||||
if (mediaItemShare.timeout) {
|
||||
clearTimeout(mediaItemShare.timeout)
|
||||
mediaItemShare.timeout.clear()
|
||||
}
|
||||
|
||||
this.openMediaItemShares = this.openMediaItemShares.filter((s) => s.id !== mediaItemShareId)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue