// ==UserScript== // @name NexusPHP魔力计算器 // @namespace http://tampermonkey.net/ // @version 1.2.7 // @description 在NexusPHP站点显示每个种子的A值。 // @author neoblackxt, LaneLau // @require https://greasyfork.org/scripts/415581-jquery%E5%BA%93/code/jquery%E5%BA%93.js?version=866373 // @match *://*.avgv.cc/torrents* // @match *://*.beitai.pt/torrents* // @match *://*.pttime.org/torrents* // @match *://*.ptsbao.club/torrents* // @match *://*.pthome.net/torrents* // @match *://kp.m-team.cc/* // @match *://*.hddolby.com/torrents* // @match *://*.leaguehd.com/torrents* // @match *://*.hdhome.org/torrents* // @match *://*.hdsky.me/torrents* // @match *://*.ourbits.club/torrents* // @match *://*.u2.dmhy.org/torrents* // @match *://*.hdzone.me/torrents* // @match *://*.hdatmos.club/torrents* // @match *://*.pt.soulvoice.club/torrents* // @match *://*.discfan.net/torrents* // @match *://*.hdtime.org/torrents* // @match *://*.nicept.net/torrents* // @match *://*.pterclub.com/torrents* // @match *://*.hdarea.co/torrents* // @match *://*.hdfans.org/torrents* // @match *://pt.btschool.club/torrents* // @match *://*.1ptba.com/torrents* // @match *://*/mybonus.php* // @license GPL License // @grant GM_setValue // @grant GM_getValue // @downloadURL none // ==/UserScript== function run() { var $ = jQuery; let host = window.location.host.match(/\b[^\.]+\.[^\.]+$/)[0] let isMybonusPage = window.location.toString().indexOf("mybonus.php")!=-1 let argsReady = true; let T0=GM_getValue(host + ".T0"); let N0=GM_getValue(host + ".N0"); let B0=GM_getValue(host + ".B0"); let L=GM_getValue(host + ".L"); if(!(T0&&N0&&B0&&L)){ argsReady = false if(!isMybonusPage){ alert("未找到魔力值参数,请打开魔力值系统说明获取(/mybonus.php)"); } } if (isMybonusPage){ T0 = parseInt($("li:has(b:contains('T0'))")[1].innerText.split(" = ")[1]); N0 = parseInt($("li:has(b:contains('N0'))")[1].innerText.split(" = ")[1]); B0 = parseInt($("li:has(b:contains('B0'))")[1].innerText.split(" = ")[1]); L = parseInt($("li:has(b:contains('L'))")[1].innerText.split(" = ")[1]); GM_setValue(host + ".T0",T0); GM_setValue(host + ".N0",N0); GM_setValue(host + ".B0",B0); GM_setValue(host + ".L",L); if(!argsReady){ if(T0&&N0&&B0&&L){ alert("魔力值参数已更新") }else{ alert("魔力值参数获取失败") } } } //var T0 = 4; //var N0 = 7; //var B0 = 50; //var L = 300; function calcA(T, S, N) { var c1 = 1 - Math.pow(10, -(T / T0)); // 当断种时,显示续种后的实际值,因为当前状态值无意义 N = N ? N : 1; // 当前状态值,加入做种后实际值会小于当前值 // TODO: 改为双行显示为当前值和实际值 var c2 = 1 + Math.pow(2, .5) * Math.pow(10, -(N - 1) / (N0 - 1)); return c1 * S * c2; } function makeA($this, i_T, i_S, i_N) { var time = $this.children('td:eq(' + i_T + ')').find("span").attr("title"); var T = (new Date().getTime() - new Date(time).getTime()) / 1e3 / 86400 / 7; var size = $this.children('td:eq(' + i_S + ')').text().trim(); var size_tp = 1; var S = size.replace(/[KMGT]B/, function (tp) { if (tp == "KB") { size_tp = 1 / 1024 / 1024; } else if (tp == "MB") { size_tp = 1 / 1024; } else if (tp == "GB") { size_tp = 1; } else if (tp == "TB") { size_tp = 1024; } return ""; }); S = parseFloat(S) * size_tp; var number = $this.children('td:eq(' + i_N + ')').text().trim(); var N = parseInt(number); var A = calcA(T, S, N).toFixed(2); var ave = (A / S).toFixed(2); if ((A > S * 2) && (N != 0)) { //标红A大于体积2倍且不断种的种子 return '' + ave + "" } else { return '' + ave + "" } } var i_T, i_S, i_N $('.torrents:last-of-type>tbody>tr').each(function (row) { var $this = $(this); if (row == 0) { $this.children('td').each(function (col) { if ($(this).find('img.time').length) { i_T = col } else if ($(this).find('img.size').length) { i_S = col } else if ($(this).find('img.seeders').length) { i_N = col } }) if (!i_T || !i_S || !i_N) { alert('未能找到数据列') return } $this.children("td:last").before("