您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add player value info to GLB league pages.
当前为
// ==UserScript== // @name Player Value To League Page S48 fix // @namespace pbr // @include http://goallineblitz.com/game/league.pl?league_id=* // @include http://glb.warriorgeneral.com/game/league.pl?league_id=* // @copyright 2010, pabst // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/ // @version 13.12.29 // @description Add player value info to GLB league pages. // ==/UserScript== window.setTimeout( function() { var button = document.createElement("input"); button.setAttribute("value","Get Eff Levels"); button.setAttribute("type","button"); button.addEventListener("click", main, true); button.setAttribute("id","levelbutton"); var endorsements = document.getElementById("endorsements"); endorsements.parentNode.insertBefore(button, endorsements); }, 100); var numTeams; var data = new Array(); function main() { document.getElementById("levelbutton").disabled = "true"; var conferences = document.getElementsByClassName("conference_table"); numTeams = conferences.length*6; for (var c=0; c<conferences.length; c++) { var teams = conferences[c].getElementsByTagName("a"); for (var t=0; t<teams.length; t++) { // console.log(teams[t].href.toString()); if (teams[t].href.toString().indexOf("team.pl") != -1) { getInetPage(teams[t].href.toString().replace("team","roster"), handleTeam); } } } setTimeout(finish, 2000); } function tsort(arr, col) { for (var i=0; i<arr.length-1; i++) { for (var j=i; j<arr.length; j++) { if (parseFloat(arr[i][col]) < parseFloat(arr[j][col])) { var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } function finish() { if (data.length != numTeams) { setTimeout(finish, 2000); return; } tsort(data,4); var text = ""; var str = "<table><tbody>"; var hdr = "<tr class='nonalternating_color'>"; var titles = ["Rank","Team","Players","Age","Level","Value","Eff Level","Salary"]; for (var i=0; i<titles.length; i++) { hdr += "<td>"+titles[i]+"</td>"; } hdr += "</tr>"; var cap = document.getElementsByClassName("info_item")[0].lastChild.textContent; cap = parseFloat(cap.replace(/\$/g,"").replace(/\,/g,"")); var output = str+hdr; var t = ""; for (var i=0; i<data.length; i++) { output += "<tr class='alternating_color"+(i%2+1)+"'>"; output += "<td>"+(i+1)+"</td>"; if ((i+1) < 10) text += "."; text += (i+1)+" ... "; for (var j=0; j<data[i].length; j++) { output += "<td"; if (j == 6) { output += " style='text-align: right;"; if (parseFloat(data[i][j].replace(/\$/g,"").replace(/\,/g,"")) > cap) { output += " color:red;"; } output += "'"; } else if (j > 0) { output += " style='text-align: center'"; } output += ">"+data[i][j]+"</td>"; if (j == 0) { t = data[i][j].slice(data[i][j].indexOf(">")+1, data[i][j].indexOf("</a")); t = t.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } else { var d = [null, 2, 3, 2, 7, 2, 11]; if (isNaN(data[i][j].toString().slice(-1)) == true) data[i][j] = 0; while (data[i][j].toString().length < d[j]) data[i][j] = "."+data[i][j]; text += data[i][j] + " ... "; } if (j == 6) { text += t + " ... "; } } output += "</tr>"; text = text.slice(0,text.length-4) + "\n"; } output += "</tbody></table>"; console.log(text); var btn = document.getElementById("levelbutton"); btn.style.visibility = "hidden"; btn.style.display = "none"; var div = document.createElement("div"); div.innerHTML = output; var end = document.getElementById("endorsements"); end.parentNode.insertBefore(div,end); } var processed=0; function handleTeam(address, page) { processed++; var pr = page.responseText.replace(/<img/g,"<div").replace(/\/img/g,"/div>"); var team = pr.split('"big_head subhead_head">')[1].split("<")[0]; team = team.split("(")[0].replace(/\s+$/g,"");; var color="#ff0000"; if (processed > 16) color = "#0000ff"; team = "<a style=color:"+color+" href="+address+">"+team+"</a>"; var text = page.responseText.split("Count:")[1].split("Roster")[0]; var salary = "$"+text.split("($")[1].split("/yr)")[0]; var numPlayers = parseInt(text.split(">")[2]); var avgLevel = parseInt(text.split("Avg Lv ")[1]); var avgValue = parseFloat(text.split('margin-bottom: 6px;">')[3].split("</div>")); var effLevel = parseInt(text.split("Effective Lv ")[1]); text = page.responseText.split("content_contracts")[0]; text = text.split("content_rosters")[1]; // console.log(text); var cpuPlayers = text.split('class="cpu"').length - 1; numPlayers -= cpuPlayers; var avgAge = 0; // td class name bug here var ages = text.split("player_level\">"); if (ages.length > 0) { for (var i=2; i<ages.length; i=i+2) { var tmp = ages[i].split("<")[0]; if (isNaN(parseInt(tmp)) == false) { avgAge += parseInt(ages[i]); } } } avgAge = avgAge / numPlayers; // console.log(team+") "+numPlayers+" - "+cpuPlayers+" - "+avgLevel+" - "+avgValue+" - "+avgAge+" - "+effLevel+" - "+salary); data.push([team,numPlayers,avgAge.toFixed(0),avgLevel,avgValue.toFixed(2),effLevel,salary]); document.getElementById("levelbutton").value += "."; } function getInetPage(address, func) { // console.log("getInetPage : "+address); var req = new XMLHttpRequest(); req.open( 'GET', address, true ); req.onload = function() { if (this.status != 200) { alert("pbr gm script: Error "+this.status+" loading "+address); } else { // console.log("loaded: "+address) func(address,this); } }; req.send(null); return req; }