diff --git a/fix.js b/fix.js index 5fde03e..016eb0d 100644 --- a/fix.js +++ b/fix.js @@ -1,28 +1,22 @@ function storeViewedVideos() { - if (sessionStorage.viewedItems && localStorage.dumpertPlusPlusViewedItems) { - const sessionViewedItemsArray = sessionStorage.viewedItems.split(',') - const localViewedItemsArray = localStorage.dumpertPlusPlusViewedItems.split(',') - localStorage.dumpertPlusPlusViewedItems = mergeArraysToString(sessionViewedItemsArray, localViewedItemsArray) - sessionStorage.viewedItems = localStorage.dumpertPlusPlusViewedItems + const sessionItems = sessionStorage.viewedItems + const localItems = localStorage.dumpertPlusPlusViewedItems + + if (sessionItems && localItems) { + const merged = mergeArraysToString(sessionItems.split(','), localItems.split(',')) + localStorage.dumpertPlusPlusViewedItems = merged + sessionStorage.viewedItems = merged + } else if (sessionItems) { + localStorage.dumpertPlusPlusViewedItems = sessionItems + } else if (localItems) { + sessionStorage.viewedItems = localItems } - - syncViewedItems() } function mergeArraysToString(viewItems, localItems){ return [...new Set([...viewItems, ...localItems])].toString() } -function syncViewedItems(){ - if (sessionStorage.viewedItems && !localStorage.dumpertPlusPlusViewedItems) { - localStorage.dumpertPlusPlusViewedItems = sessionStorage.viewedItems - } - - if (!sessionStorage.viewedItems && localStorage.dumpertPlusPlusViewedItems) { - sessionStorage.viewedItems = localStorage.dumpertPlusPlusViewedItems - } -} - function scrollToLocation(){ window.scroll({ top: getScrollLocation(), @@ -42,6 +36,10 @@ function getScrollLocation(){ } window.addEventListener('beforeunload', storeViewedVideos) +window.addEventListener('pagehide', storeViewedVideos) +window.addEventListener('pageshow', storeViewedVideos) +window.addEventListener('popstate', storeViewedVideos) +window.addEventListener('visibilitychange', storeViewedVideos) window.addEventListener('click', storeViewedVideos) window.addEventListener('scroll', setScrollLocation) window.addEventListener('fullscreenchange', scrollToLocation)