Save SaveMyExams

去除Save My Exams非登录用户的5次查看限制

// ==UserScript==
// @name         Save SaveMyExams
// @name:en      Save SaveMyExams
// @namespace    http://tampermonkey.net/
// @version      2025-03-15
// @description  去除Save My Exams非登录用户的5次查看限制
// @description:en Remove the 5-view limit for non-logged-in users of Save My Exams
// @author       ZZW
// @match        *://www.savemyexams.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=savemyexams.com
// @grant        none
// @license      MIT
// ==/UserScript==


(function() {
    'use strict';

    const keysToMonitor = ["SME.revision-note-views"];

    const originalSetItem = Storage.prototype.setItem;
    Storage.prototype.setItem = function(key, value) {
        if (keysToMonitor.includes(key)) {
            originalSetItem.apply(this, arguments);
            this.removeItem(key);
        } else {
            originalSetItem.apply(this, arguments);
        }
    };

    window.addEventListener('storage', function(e) {
        if (keysToMonitor.includes(e.key)) {
            localStorage.removeItem(e.key);
        }
    });

    function pollLocalStorage() {
        keysToMonitor.forEach(key => {
            if (localStorage.getItem(key) !== null) {
                localStorage.removeItem(key);
            }
        });
    }
    setInterval(pollLocalStorage, 3000);

})();