+import { logger } from '@root-helpers/logger'
+
function getStoredVolume () {
const value = getLocalStorage('volume')
if (value !== null && value !== undefined) {
return undefined
}
-function getStoredWebTorrentEnabled (): boolean {
- const value = getLocalStorage('webtorrent_enabled')
- if (value !== null && value !== undefined) return value === 'true'
-
- // By default webtorrent is enabled
- return true
-}
-
function getStoredMute () {
const value = getLocalStorage('mute')
if (value !== null && value !== undefined) return value === 'true'
const value = getLocalStorage('theater-enabled')
if (value !== null && value !== undefined) return value === 'true'
- return undefined
+ return false
}
function saveVolumeInStore (value: number) {
}
function saveAverageBandwidth (value: number) {
+ /** used to choose the most fitting resolution */
return setLocalStorage('average-bandwidth', value.toString())
}
return getLocalStorage('last-subtitle')
}
+function saveVideoWatchHistory (videoUUID: string, duration: number) {
+ return setLocalStorage(`video-watch-history`, JSON.stringify({
+ ...getStoredVideoWatchHistory(),
+
+ [videoUUID]: {
+ duration,
+ date: `${(new Date()).toISOString()}`
+ }
+ }))
+}
+
+function getStoredVideoWatchHistory (videoUUID?: string) {
+ let data
+
+ try {
+ const value = getLocalStorage('video-watch-history')
+ if (!value) return {}
+
+ data = JSON.parse(value)
+ } catch (error) {
+ logger.error('Cannot parse video watch history from local storage/', error)
+ }
+
+ data = data || {}
+
+ if (videoUUID) return data[videoUUID]
+
+ return data
+}
+
+function cleanupVideoWatch () {
+ const data = getStoredVideoWatchHistory()
+ if (!data) return
+
+ const newData = Object.keys(data).reduce((acc, videoUUID) => {
+ const date = Date.parse(data[videoUUID].date)
+
+ const diff = Math.ceil(((new Date()).getTime() - date) / (1000 * 3600 * 24))
+
+ if (diff > 30) return acc
+
+ return {
+ ...acc,
+ [videoUUID]: data[videoUUID]
+ }
+ }, {})
+
+ setLocalStorage('video-watch-history', JSON.stringify(newData))
+}
+
// ---------------------------------------------------------------------------
export {
getStoredVolume,
- getStoredWebTorrentEnabled,
getStoredMute,
getStoredTheater,
saveVolumeInStore,
saveAverageBandwidth,
getAverageBandwidthInStore,
saveLastSubtitle,
- getStoredLastSubtitle
+ getStoredLastSubtitle,
+ saveVideoWatchHistory,
+ getStoredVideoWatchHistory,
+ cleanupVideoWatch
}
// ---------------------------------------------------------------------------