diff --git a/52pojie-Enhanced.user.js b/52pojie-Enhanced.user.js index 940ea93..3fca8c2 100644 --- a/52pojie-Enhanced.user.js +++ b/52pojie-Enhanced.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 吾爱破解论坛增强 - 自动签到、翻页 -// @version 1.1.7 +// @version 1.1.8 // @author X.I.U // @description 自动签到、自动无缝翻页(全站) // @match *://www.52pojie.cn/* @@ -18,45 +18,29 @@ // ==/UserScript== (function() { - var menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading'); - var menu_thread_pageLoading_ID, menu_feedBack_ID; + var menu_thread_pageLoading = GM_getValue('xiu2_menu_thread_pageLoading'), + menu_delateReward = GM_getValue('xiu2_menu_delateReward'); + var menu_feedBack_ID, menu_thread_pageLoading_ID, menu_delateReward_ID; if (menu_thread_pageLoading == null){menu_thread_pageLoading = false; GM_setValue('xiu2_menu_thread_pageLoading', menu_thread_pageLoading)}; + if (menu_delateReward == null){menu_delateReward = false; GM_setValue('xiu2_menu_delateReward', menu_delateReward)}; registerMenuCommand(); - //屏蔽悬赏帖 - function delateReward(){ - // delateSwitch: 是否开启新帖区屏蔽悬赏帖,true或者false - var delateSwitch = true; - if(location.href === "https://www.52pojie.cn/forum.php?mod=guide&view=newthread" && delateSwitch){ - var table = document.querySelector("#threadlist > div.bm_c > table"); - var tbodys = table.getElementsByTagName('tbody'); - var arrs = [] - for (let i=0; i 0){ windowScroll(function (direction, e) { + //console.log('1111111') if (direction === "down") { // 下滑才准备翻页 var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop; let scrollDelta = curSite.pager.scrollDelta; @@ -204,11 +193,9 @@ // 签到后立即返回 function qianDaoBack() { - if(location.href === "https://www.52pojie.cn/home.php?mod=task&do=draw&id=2"){ - var qiandaoback = document.querySelector('#messagetext p.alert_btnleft a'); - if (qiandaoback){ - setTimeout(function(){qiandaoback.click()}, 500); - } + var qiandaoback = document.querySelector('#messagetext p.alert_btnleft a'); + if (qiandaoback){ + setTimeout(function(){qiandaoback.click()}, 500); } } @@ -229,6 +216,29 @@ } + //屏蔽悬赏贴(导读-最新发表) + function delateReward(){ + if(patt_guide_newthread.test(location.search) && menu_delateReward){ + var table = document.querySelector("#threadlist > div.bm_c > table"), + tbodys = table.getElementsByTagName('tbody'), + arrs = []; + for (let i=0; i= 0; c--) o[(a = s[c]).nodeName] && i.removeChild(a); - return t; - } - } else console.error("没有找到要转成DOM的字符串"); - }, - loadMorePage: function () { - if (curSite.pager) { - let curPageEle = getElementByXpath(curSite.pager.nextLink); - var url = this.getFullHref(curPageEle); - //console.log(`${url} ${curPageEle} ${curSite.pageUrl}`); - if(url === '') return; - if(curSite.pageUrl === url) return;// 不会重复加载相同的页面 - curSite.pageUrl = url; - // 读取下一页的数据 - curSite.pager.startFilter && curSite.pager.startFilter(); - GM_xmlhttpRequest({ - url: url, - method: "GET", - timeout: 5000, - onload: function (response) { - try { - var newBody = ShowPager.createDocumentByString(response.responseText); - let pageElems = getAllElements(curSite.pager.pageElement, newBody, newBody); - let toElement = getAllElements(curSite.pager.HT_insert[0])[0]; - if (pageElems.length >= 0) { - let addTo = "beforeend"; - if (curSite.pager.HT_insert[1] == 1) addTo = "beforebegin"; - // 插入新页面元素 - pageElems.forEach(function (one) { - toElement.insertAdjacentElement(addTo, one); - }); - // 替换待替换元素 - try { - let oriE = getAllElements(curSite.pager.replaceE); - let repE = getAllElements(curSite.pager.replaceE, newBody, newBody); - if (oriE.length === repE.length) { - for (var i = 0; i < oriE.length; i++) { - oriE[i].outerHTML = repE[i].outerHTML; - } - } - } catch (e) { - console.log(e); - } - //屏蔽悬赏帖 - delateReward(); - } - } catch (e) { - console.log(e); - } + // 自动无缝翻页,修改自 https://greasyfork.org/scripts/14178 + function showPager() { + ShowPager = { + getFullHref: function (e) { + if(e == null) return ''; + "string" != typeof e && (e = e.getAttribute("href")); + var t = this.getFullHref.a; + return t || (this.getFullHref.a = t = document.createElement("a")), t.href = e, t.href; + }, + createDocumentByString: function (e) { + if (e) { + if ("HTML" !== document.documentElement.nodeName) return (new DOMParser).parseFromString(e, "application/xhtml+xml"); + var t; + try { + t = (new DOMParser).parseFromString(e, "text/html"); + } catch (e) { } - }); - } - }, - }; + if (t) return t; + if (document.implementation.createHTMLDocument) t = document.implementation.createHTMLDocument("ADocument"); else try { + (t = document.cloneNode(!1)).appendChild(t.importNode(document.documentElement, !1)), + t.documentElement.appendChild(t.createElement("head")), t.documentElement.appendChild(t.createElement("body")); + } catch (e) { + } + if (t) { + var r = document.createRange(); + r.selectNodeContents(document.body); + var n = r.createContextualFragment(e); + t.body.appendChild(n); + for (var a, o = { + TITLE: !0, + META: !0, + LINK: !0, + STYLE: !0, + BASE: !0 + }, i = t.body, s = i.childNodes, c = s.length - 1; c >= 0; c--) o[(a = s[c]).nodeName] && i.removeChild(a); + return t; + } + } else console.error("没有找到要转成DOM的字符串"); + }, + loadMorePage: function () { + if (curSite.pager) { + let curPageEle = getElementByXpath(curSite.pager.nextLink); + var url = this.getFullHref(curPageEle); + //console.log(`${url} ${curPageEle} ${curSite.pageUrl}`); + if(url === '') return; + if(curSite.pageUrl === url) return;// 不会重复加载相同的页面 + curSite.pageUrl = url; + // 读取下一页的数据 + curSite.pager.startFilter && curSite.pager.startFilter(); + GM_xmlhttpRequest({ + url: url, + method: "GET", + timeout: 5000, + onload: function (response) { + try { + var newBody = ShowPager.createDocumentByString(response.responseText); + let pageElems = getAllElements(curSite.pager.pageElement, newBody, newBody); + let toElement = getAllElements(curSite.pager.HT_insert[0])[0]; + if (pageElems.length >= 0) { + let addTo = "beforeend"; + if (curSite.pager.HT_insert[1] == 1) addTo = "beforebegin"; + // 插入新页面元素 + pageElems.forEach(function (one) { + toElement.insertAdjacentElement(addTo, one); + }); + //删除悬赏贴 + delateReward(); + // 替换待替换元素 + try { + let oriE = getAllElements(curSite.pager.replaceE); + let repE = getAllElements(curSite.pager.replaceE, newBody, newBody); + if (oriE.length === repE.length) { + for (var i = 0; i < oriE.length; i++) { + oriE[i].outerHTML = repE[i].outerHTML; + } + } + } catch (e) { + console.log(e); + } + } + } catch (e) { + console.log(e); + } + } + }); + } + }, + }; + } function getElementByXpath(e, t, r) {