/* eslint-disable no-undef */ (() => { const win = self ?? window, doc = win.document, qs = (element, selector) => { selector = selector ?? doc ?? doc.body; return selector.querySelector(element); }, delay = (ms) => { return new Promise(resolve => setTimeout(resolve, ms)); }, iframe = { write: () => { const root = qs('#jae_userscript_box > .jae-userscript',doc.body), dom = root.children[0], domDoc = ` Show Site All UserJS
`; if (dom.tagName && "iframe" == dom.tagName.toLowerCase()) { let c = dom.contentDocument ?? dom.contentWindow.document; try { c.open(); c.write(domDoc); c.close(); } catch (d) { err(`loading "${dom.name}"`); if(root) { root.innerHTML = `[ERROR] loading "${dom.name}"`; delay(2500).then(() => { root.innerHTML = ""; }); }; } } } }, sleazy = () => { let otherSite = /greasyfork\.org/.test(location.hostname) ? "sleazyfork" : "greasyfork"; qs('span.sign-in-link') ? /scripts\/\d+/.test(location.href) ? !qs("#script-info") && (otherSite == "greasyfork" || qs("div.width-constraint>section>p>a")) ? location.href = location.href.replace(/\/\/([^\.]+\.)?(greasyfork|sleazyfork)\.org/, "//$1" + otherSite + "\.org") : false : false : false; }; class FetchUserjs { constructor() { this.host = win.location.hostname.split(".").splice(-2).join("."); this.showTime = 10; this.quietKey = "jae_fetch_userjs_quiet"; this.countKey = "jae_fetch_userjs_count"; this.adultKey = "jae_fetch_userjs_adult"; this.tplBox = `
`; } getCountData(host) { let countData = GM_getResourceText('count'); countData = JSON.parse(countData); let count = countData[host]; sessionStorage.setItem(this.countKey, count); return count; } setSize(w, h) { qs('#jae_userscript_box > .jae-userscript',doc.body).setAttribute('style', `width: ${w}px;height: ${h}px;`); // $('.jae-userscript').css({ // width: w, // height: h // }); } addEventListener(eventName, handler) { qs('#jae_userscript_box').addEventListener(eventName, handler); } bindEvent() { this.timeId = setTimeout(() => { qs('#jae_userscript_box').remove(); }, this.showTime * 1000); this.addEventListener('max', () => { this.setSize(860, 492); // qs('#jae_userscript_box > .jae-userscript').classList.add('jae-userscript-shadow'); clearTimeout(this.timeId); }); this.addEventListener('min', () => { // qs('#jae_userscript_box > .jae-userscript').classList.remove('jae-userscript-shadow'); this.setSize(370, 56); // delay(500).then(() => { // this.setSize(370, 56); // }); }); this.addEventListener('close', () => { sessionStorage.setItem(this.quietKey, 1); qs('#jae_userscript_box').remove(); }); this.addEventListener('loading', () => { clearTimeout(this.timeId); }); } execFrameJs(frameWindow) { let uiJs = GM_getResourceText('uiJs'); return function (jsStr) { frameWindow.eval(jsStr); }.call(frameWindow, uiJs); } get isQuiet() { let quiet = sessionStorage.getItem(this.quietKey); return quiet ? true : false; } render() { if (!this.isQuiet) { if (this.getCountData(this.host)) { $("body").append(this.tplBox); iframe.write(); this.execFrameJs(jaeFetchUserJSFrame.window); this.bindEvent(); } } } } let fu = new FetchUserjs(); ljs.exec(['jQuery'], () => { /greasyfork\.org/.test(location.hostname) && sleazyfork_redirect ? sleazy() : false; fu.render(); }); })();