+ updateMyAnonymousProfile (profile: UserUpdateMe) {
+ const supportedKeys = {
+ // local storage keys
+ nsfwPolicy: (val: NSFWPolicyType) => this.localStorageService.setItem(User.KEYS.NSFW_POLICY, val),
+ webTorrentEnabled: (val: boolean) => this.localStorageService.setItem(User.KEYS.WEBTORRENT_ENABLED, String(val)),
+ autoPlayVideo: (val: boolean) => this.localStorageService.setItem(User.KEYS.AUTO_PLAY_VIDEO, String(val)),
+ autoPlayNextVideoPlaylist: (val: boolean) => this.localStorageService.setItem(User.KEYS.AUTO_PLAY_VIDEO_PLAYLIST, String(val)),
+ theme: (val: string) => this.localStorageService.setItem(User.KEYS.THEME, val),
+ videoLanguages: (val: string[]) => this.localStorageService.setItem(User.KEYS.VIDEO_LANGUAGES, JSON.stringify(val)),
+
+ // session storage keys
+ autoPlayNextVideo: (val: boolean) =>
+ this.sessionStorageService.setItem(User.KEYS.SESSION_STORAGE_AUTO_PLAY_NEXT_VIDEO, String(val))
+ }
+
+ for (const key of Object.keys(profile)) {
+ try {
+ if (has(supportedKeys, key)) supportedKeys[key](profile[key])
+ } catch (err) {
+ console.error(`Cannot set item ${key} in localStorage. Likely due to a value impossible to stringify.`, err)
+ }
+ }
+ }
+