您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Lets you retire players in bulk.
- // ==UserScript==
- // @name Bulk Player Retirement
- // @namespace glb.warriorgeneral.com
- // @description Lets you retire players in bulk.
- // @include http://glb.warriorgeneral.com/game/home.pl
- // @copyright 2010, garrettFoster
- // @version 2014.04.22
- // ==/UserScript==
- // pabst repaired it 1/12/14
- window.setTimeout(main,1000); //needed to start greasemonkey
- function main(){
- var option = document.getElementsByTagName('option');
- if (option[14].selected){
- //add button
- var div = document.createElement('div');
- div.setAttribute('id','retireDiv');
- var button = document.createElement('input');
- button.setAttribute('type','button');
- button.setAttribute('value','Retire Selected Players');
- button.setAttribute('style','float: right;');
- button.addEventListener('click',getPass,false);
- div.appendChild(button);
- var location = document.getElementById('players');
- location.parentNode.insertBefore(div,location);
- div = document.createElement('div');
- div.setAttribute('id','hidden-div');
- div.setAttribute('style','visibility:hidden; display:none;');
- location = document.getElementById('retireDiv');
- location.parentNode.insertBefore(div,location.nextSibling);
- div = document.createElement('div');
- div.setAttribute('style','clear: both;');
- location = document.getElementById('hidden-div');
- location.parentNode.insertBefore(div,location.nextSibling);
- //add headings
- var tr = document.getElementById('playerTable').getElementsByTagName('tr');
- var th = document.createElement('th');
- var a = document.createElement('a');
- a.innerHTML = 'Retire Player?';
- a.setAttribute('style','cursor:pointer;cursor:hand;');
- a.addEventListener('click',function(){toggle('retirePlayer');},false);
- th.appendChild(a);
- tr[0].appendChild(th);
- th = document.createElement('th');
- a = document.createElement('a');
- a.innerHTML = 'Delete Name?';
- a.setAttribute('style','cursor:pointer;cursor:hand;');
- a.addEventListener('click',function(){toggle('retireName');},false);
- th.appendChild(a);
- tr[0].appendChild(th);
- //add checkboxes
- for(var i=1;i<tr.length;i++){
- var id = tr[i].getElementsByTagName('td')[1].getElementsByTagName('a')[0].href.split('player_id=')[1];
- var td = document.createElement('td');
- var chk = document.createElement('input');
- chk.setAttribute('type','checkbox');
- chk.setAttribute('value',id);
- chk.setAttribute('class','retirePlayer');
- td.appendChild(chk);
- tr[i].appendChild(td);
- td = document.createElement('td');
- chk = document.createElement('input');
- chk.setAttribute('type','checkbox');
- chk.setAttribute('value','keep_name');
- chk.setAttribute('class','retireName');
- td.appendChild(chk);
- tr[i].appendChild(td);
- }
- }
- }
- function getPass(){
- var player = document.getElementsByClassName('retirePlayer');
- var num = 0;
- for(var i=0;i<player.length;i++){
- if(player[i].checked){
- num++;
- }
- }
- var span = document.createElement('span');
- span.setAttribute('style','float: right;');
- span.innerHTML = 'Please enter your password to confirm retirement of ' + num + ' player(s): ';
- var input = document.createElement('input');
- input.setAttribute('type','password');
- input.setAttribute('id','retire_pass');
- input.setAttribute('value','');
- input.setAttribute('style','float: right;');
- var button = document.createElement('input');
- button.setAttribute('type','button');
- button.setAttribute('value','OK');
- button.setAttribute('style','float: right;');
- button.addEventListener('click',retirePlayers,false);
- var location = document.getElementById('retireDiv');
- location.innerHTML = '';
- location.appendChild(button);
- location.appendChild(input);
- location.appendChild(span);
- }
- function retirePlayers(){
- var player = document.getElementsByClassName('retirePlayer');
- var retireId = new Array();
- for(i=0;i<player.length;i++){
- if(player[i].checked){
- retireId.push(player[i].value);
- }else{
- retireId.push(0);
- }
- }
- var names = document.getElementsByClassName('retireName');
- var retireName = new Array();
- for(i=0;i<names.length;i++){
- if(names[i].checked){
- retireName.push(0);
- }else{
- retireName.push(1);
- }
- }
- var password = document.getElementById('retire_pass').value;
- var url = 'http://glb.warriorgeneral.com/game/retire_player.pl';
- document.getElementById('retireDiv').innerHTML = '<span style="color: green; float: right;">Retiring Players...</span>';
- for(var i=0;i<retireId.length;i++){
- if(retireId[i] != 0){
- params = '?player_id='+retireId[i]+'&keep_name='+retireName[i]+'&password='+password+'&action=Retire';
- var txt = get(url+params);
- if(checkError(txt)){
- break;
- }
- }
- }
- document.getElementById('retireDiv').innerHTML = '<span style="color: green; float: right;">Done!</span>';
- }
- function toggle(className){
- var chk = document.getElementsByClassName(className);
- for(var i=0;i<chk.length;i++){
- if(chk[i].checked){
- chk[i].checked = false;
- }else{
- chk[i].checked = true;
- }
- }
- }
- function get(url){
- var xmlhttp = new XMLHttpRequest();
- xmlhttp.open('GET',url,false);
- xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
- xmlhttp.send(null);
- return xmlhttp.responseText;
- }
- function checkError(txt){
- var div = document.getElementById('hidden-div');
- div.innerHTML = txt;
- var error = document.getElementsByClassName('error');
- if(error.length != 0){
- document.getElementById('retireDiv').innerHTML = '<span style="color: red; float: right;">'+error[0].innerHTML+'</span>';
- return true;
- }
- return false;
- }