// ==UserScript== // @name 启用NGA自动向后加载 // @namespace https://yuyuyzl.github.io/ // @version 0.3 // @description 在进入NGA帖子时自动轮询最后一页的内容,并去重后添加到页面末尾 // @author yuyuyzl // @require https://code.jquery.com/jquery-3.4.0.min.js // @match http://nga.178.com/read.php?tid=*&page=* // @match http://bbs.nga.cn/read.php?tid=*&page=* // @match http://bbs.ngacn.cc/read.php?tid=*&page=* // @match http://ngabbs.com/read.php?tid=*&page=* // @grant none // @downloadURL none // ==/UserScript== jQuery.noConflict(); var jq=jQuery; var currentPage=parseInt(jq("#pagebbtm td a.invert").text().replace(".","")); (function(){ var prog,progv=0,ti,cal function init(){ prog = _$('/div','style','position:fixed;display:none;bottom:0;left:0;right:0;height:1em;background:silver;fontSize:0.3em;borderLeft:0 solid '+__COLOR.border0+';transition:border-left-width 0.3s linear 0s,0.3s') }// function progr(){ progv = 0 prog.style.borderLeftWidth=0 prog.style.display = 'none' if(cal)cal() }// commonui.progbar = function(v,o,f){//progress/% hidetimeout/ms if(!prog) init() if(v!=progv){ if(progv==0){ prog.style.display = '' cal = null } progv = v, prog.style.borderLeftWidth = (prog.offsetWidth*v/100)+'px' if(ti) clearTimeout(ti) if(v==100) ti = window.setTimeout(function(){progr()},300) else if(o) ti = window.setTimeout(function(){progr()},o) if(f) cal = f } }// })(); (function() { if (!XMLHttpRequest) return var pageStat = {}, //{页n:[贴1,2,3,...], 页n+1:[贴1,2,3,...], ...} $ = _$, HTTP = new XMLHttpRequest(), l = location, tmp, minp, //当前最小页 maxp, //当前最大页 iPo, //当前第一条 iPc, ot = 0, count = 1, //当前显示的总页数 progr = function() { commonui.loadReadHidden.lock = 0 }, progt = function(v, o) { commonui.progbar(v * 10, o ? o : 5000, v == 10 ? progr : null) }, cs = document.characterSet || document.defaultCharset || document.charset; HTTP.onerror = function(e) { error('HTTP ERROR') } HTTP.onload = HTTP.onabout = function(e) { progt(10) } HTTP.onprogress = function(e) { /* if (e.lengthComputable) progv = (e.loaded / e.total)*prog.offsetWidth else if(progv = this.getResponseHeader('X-NGA-CONTENT-LENGTH')) progv = (e.loaded / progv)*prog.offsetWidth else{ progv = e.loaded/100 if(progv>prog.offsetWidth) progv = prog.offsetWidth } */ progt(3) } var ifp = function(o, opt) { if (opt & 1024) { if (o.nodeName == 'TBODY') return 1 } else if (o.className == 'forumbox postbox') return 1 } pr = function(txt, opt) { if (opt & 1024) { //console.log(txt) var x = cut(txt, ['', '', '//topicloadallstart', '//topicloadallend', ], 0, 1) if (x.length < 2) return error('parse page error') var y = cut(x[0], ["'], 0, 0) y.push(x[1]) return [null, x[0], //内容 y//取出内容加载脚本 ] } var x = cut(txt, ['//userinfostart', '//userinfoend', '', ''], 0, 1) if (x.length < 2) return error('parse page error') //去重by yuyuyzl var newList=[]; cut(x[1], ['