NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name LIHKG 自動不推文 // @namespace lihkg_nopush // @version 191116 // @description 於某主題開啟或關閉不推文回覆後,會保留該設定一個月或直至你手動關閉 // @author 洛托姆圖鑑 // @license MIT // @match https://lihkg.com/* // @icon https://lihkg.com/assets/faces/pig/shocked.gif // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_listValues // @grant GM_info // ==/UserScript== (function () { "use strict"; var real_click = false; var current_version = parseInt(GM_info.script.version); var storage_version = GM_getValue('version'); if (!storage_version) { GM_setValue('version', current_version); } if (current_version > storage_version) { } const url_match = /^\/thread\/(\d+)/; const saveload = function (mode, thread) { var t = Math.round((new Date()).getTime() / 1000); var v = GM_listValues(); switch (mode){ case 'save': GM_setValue(thread, JSON.stringify([t, document.querySelector('._2k_IfadJWjcLJlSKkz_R2->span').innerText, true])); v.forEach(function (i) { if ((i != 'version') && (t - JSON.parse(GM_getValue(i))[0] >= 2592000)) { GM_deleteValue(i); } }); break; case 'load': return GM_getValue(thread)?JSON.parse(GM_getValue(thread))[2]:false; break; case 'del': GM_setValue(thread, JSON.stringify([-1, '', false])); GM_deleteValue(thread); break; case 'nuke': v.forEach(function (i) { if (i != 'version') { GM_deleteValue(i); } }); break; } }; const mousecheck = function (e) { real_click = (e.type == 'mouseover'); }; const pagecheck = function (mutationsList, observer) { for (let m of mutationsList) { switch (m.type) { case 'childList': if ((m.addedNodes.length == 1) && (url_match.test(window.location.pathname)) && (m.addedNodes[0] instanceof Element) && (m.addedNodes[0].matches('.Vo7qCfQ1zcxviGmeMySZl._2GqETuCmp5bDDgJPTevkJA'))) { var nopush_node = m.addedNodes[0].querySelector('span._337HrkzqN4vkh_p53bjhoP'); nopush_node.addEventListener("mouseover", mousecheck, false); nopush_node.addEventListener("mouseout", mousecheck, false); console.log(GM_listValues()); if (saveload('load', window.location.pathname.match(url_match)[1]) && (!nopush_node.querySelector('div._31jibBLy2jbrUM_9tsuJLF'))) { nopush_node.click(); } } break; case 'attributes': if (real_click && (url_match.test(window.location.pathname)) && (m.target.matches('._2drZNBHt6Bl5RefoNQnRuQ._1gja7VDiu2-gBZwXAb6XVN'))) { saveload(m.target.matches('._31jibBLy2jbrUM_9tsuJLF')?'save':'del', window.location.pathname.match(url_match)[1]); } break; } } }; const observer = new MutationObserver(pagecheck); observer.observe(document.querySelector('div#app'), { attributes: true, attributeOldValue: true, attributeFilter: ['class'], childList: true, characterData: false, subtree: true }); })();