// ==UserScript== // @name AE Helper // @namespace aehelper // @description Astro Empires helper // @include http://*.astroempires.com/* // @exclude http://www.astroempires.com/ // @exclude http://forum.astroempires.com/* // @exclude http://*.astroempires.com/login.aspx* // @exclude http://*.astroempires.com/home.aspx* // @exclude http://*.astroempires.com/board.aspx* // @exclude http://*.astroempires.com/messages.aspx* // @exclude http://*.astroempires.com/profile.aspx?action=* // ==/UserScript== version = "0.5scanners"; content = ""; empirepre= "
"; empirepost = "
"; currentpage = document.location.href; m = currentpage.match(/http:\/\/([a-z]+)\.astroempires\.com\//i); if (m) { server = m[1]; } else { server = "unknown"; } //########################## EMPIRE FUNCTIONS #########################\\ function showMyTech() { x = 0; if(document.body.innerHTML.match(/advertising/i) != undefined) x++; techTable=document.getElementsByTagName("table")[3+x]; rows=techTable.getElementsByTagName("tr"); techAbbr=["E","C","A","L","M","SD","PL","WD","S","I","PH","AI","D","CN","TC"]; techString=""; for(i=2; i < rows.length; i= i+2){ techString+=techAbbr[((i-2)/2)]+rows[i].getElementsByTagName("td")[3].innerHTML+" "; } content= empirepre + techString + empirepost; finishHelping(); } function adviseCapacity() { x = 0; if(document.body.innerHTML.match(/advertising/i) != undefined) x++; rows=document.getElementsByTagName("table")[3+x].getElementsByTagName("tr") cDiff=0;pDiff=0;rDiff=0; for(i=2;i  "; } if((navigator.appName).match(/Opera/i) != undefined){ gobutton = document.getElementById("helperLink"); setTimeout("gobutton.outerHTML = ''",10); } else { setTimeout(delButton(),10); } } function adviseProstruction() { content += ""; tmpcontent.match(/Base Metal resource.\((\d{1,2})\)/i); metal = RegExp.$1; if(tmpcontent.match(/M<\/font>etal Refineries<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/R<\/font>obotic Factories<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/N<\/font>anite Factories<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/A<\/font>ndroids Factories<\/a><\/b>.*?<\/td>"; } else content += ""; content += ""; content +=""; if(tmpcontent.match(/S<\/font>hipyards<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/O<\/font>rbital Shipyards<\/a><\/b>.*?<\/td>"; } else content += ""; content += ""; content += ""; content += "
Construction/Production Statistics:(\d{1,10})/i) != undefined) { mrratio = parseInt(RegExp.$1)/metal; nextcost = parseInt(RegExp.$1); content += "
Metal cost per Construction: " + Math.floor((nextcost + avgarea + avgpop + avgpower)/metal) + " (" + Math.floor(mrratio) + ")
Metal Refineries Unavailable
(\d{1,10})/i) != undefined) { rfratio = parseInt(RegExp.$1)/2; nextcost = parseInt(RegExp.$1); content += "
Robotics cost per Construction: " + Math.floor((nextcost + avgarea + avgpop + avgpower)/2) + " (" + Math.floor(rfratio) + ")
Robotics Factories Unavailable
(\d{1,10})/i) != undefined) { nfratio = parseInt(RegExp.$1)/4; nextcost = parseInt(RegExp.$1); content += "
Nanite cost per Construction: " + Math.floor((nextcost + avgarea + avgpop + avgpower*2)/4) + " (" + Math.floor(nfratio) + ")
Nanite Factories Unavailable
(\d{1,10})/i) != undefined) { afratio = parseInt(RegExp.$1)/6; nextcost = parseInt(RegExp.$1); content += "
Androids cost per Construction: " + Math.floor((nextcost + avgarea + avgpop + avgpower*4)/6) + " (" + Math.floor(afratio) + ")
Androids Factories Unavailable
.
Shipyards:(\d{1,10})/i) != undefined) { shipyardratio = parseInt(RegExp.$1)/2; nextcost = parseInt(RegExp.$1); content += "
Shipyard cost per Production: " + Math.floor((nextcost + avgarea + avgpop + avgpower)/2) + " (" + Math.floor(shipyardratio) + ")
Shipyards Unavailable
(\d{1,10})/i) != undefined) { obshipyardratio = parseInt(RegExp.$1)/8; nextcost = parseInt(RegExp.$1); content += "
Orbital Shipyard cost Production: " + Math.floor((nextcost + avgpop + avgpower * 12)/8) + " (" + Math.floor(obshipyardratio) + ")
Orbital Shipyards Unavailable
.
Close Statistics
"; } function adviseEconomy() { content += "Economic Statistics:"; if(tmpcontent.match(/S<\/font>paceports<\/a><\/b>.*?<\/td>(\d{1,10})/i) != undefined) { spaceportratio = parseInt(RegExp.$1)/2; nextcost = parseInt(RegExp.$1); content += "Spaceport cost per econ: " + Math.floor((nextcost + avgarea + avgpop + avgpower)/2) + " (" + Math.floor(spaceportratio) + ")"; } else content += "Spaceports Unavailable"; if(tmpcontent.match(/C<\/font>rystals Mines<\/a><\/b>.*?<\/td>(\d{1,10})/i) != undefined) { crystalratio = parseInt(RegExp.$1); nextcost = crystalratio; tmpcontent.match(/Base Crystals resource.\((\d{1,2})\)/i); crystalratio = crystalratio/parseInt(RegExp.$1); content += "Crystal Mines cost per econ: " + Math.floor((nextcost + avgarea + avgpop + avgpower)/parseInt(RegExp.$1)) + " (" + Math.floor(crystalratio) + ")"; } else content += "Crystal Mines Unavailable"; if(tmpcontent.match(/E<\/font>conomic Centers<\/a><\/b>.*?<\/td>(\d{1,10})/i) != undefined) { econratio = parseInt(RegExp.$1)/3; nextcost = parseInt(RegExp.$1); content += "Economic Center cost per econ: " + Math.floor((nextcost + avgarea + avgpop + avgpower * 2)/3) + " (" + Math.floor(econratio) + ")"; } else content += "Economic Centers Unavailable"; content += "Values in () don't include area/pop/power"; content += "Other values include area/pop/power cost"; content += ""; } function advisePower() { content += ""; if(tmpcontent.match(/S<\/font>olar Plants<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/G<\/font>as Plants<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/F<\/font>usion Plants<\/a><\/b>.*?<\/td>"; } else content += ""; if(tmpcontent.match(/A<\/font>ntimatter Plants<\/a><\/b>.*?<\/td>"; } else content += ""; } function adviseMyBaseTwo() { content += ""; advisePower(); adviseEconomy(); adviseProstruction(); content = "
Energy Statistics:(\d{1,10})/i) != undefined) { solarratio = parseInt(RegExp.$1); nextcost = solarratio; tmpcontent.match(/[A-Z]\d{2}:\d{2}:\d{2}:(\d)/i); solarratio = solarratio/(5-parseInt(RegExp.$1)); content += "
Solar Plant cost per power: " + Math.floor((nextcost + avgarea + avgpop)/(5-parseInt(RegExp.$1))) + " (" + Math.floor(solarratio) + ")
Solar Plants Unavailable
(\d{1,10})/i) != undefined) { gasratio = parseInt(RegExp.$1); nextcost = gasratio; tmpcontent.match(/G<\/font>as Plants<\/a><\/b>.*?\+(\d{1,2})/i); gasratio= gasratio/parseInt(RegExp.$1); content += "
Gas Plant cost per power: " + Math.floor((nextcost + avgarea + avgpop)/parseInt(RegExp.$1)) + " (" + Math.floor(gasratio) + ")
Gas Plants Unavailable
(\d{1,10})/i) != undefined) { fusionratio = parseInt(RegExp.$1)/4; nextcost = parseInt(RegExp.$1); content += "
Fusion Plant cost per power: " + Math.floor((nextcost + avgarea + avgpop)/4) + " (" + Math.floor(fusionratio) + ")
Fusion Plants Unavailable
(\d{1,10})/i) != undefined) { antimatterratio = parseInt(RegExp.$1)/10; nextcost = parseInt(RegExp.$1); content += "
Antimatter Plant cost per power: " + Math.floor((nextcost + avgarea + avgpop)/10) + " (" + Math.floor(antimatterratio) + ")
Antimatter Plants Unavailable
"; tmpcontent = document.body.innerHTML; tmpcontent.match(/Base Fertility.\((\d{1,2})\)/i); fertility = parseInt(RegExp.$1); tmpcontent.match(/U<\/font>rban Structures<\/a><\/b> \(Level (\d{1,2})/i); urbannum = parseInt(RegExp.$1); tmpcontent.match(/[A-Z]\d{2}:\d{2}:\d{2}:(\d)/i); solarpower = 5-parseInt(RegExp.$1); tmpcontent.match(/G<\/font>as Plants<\/a><\/b>.*?\+(\d{1,2})/i); gaspower = parseInt(RegExp.$1); avgarea = 0; orbitaltmp = 0; urbantmp = 0; biomodnum = 0; biomodtmp = 0; poptotal = 0; powertotal = 0; txtholder = ""; if(tmpcontent.match(/T<\/font>erraform<\/a><\/b>.*?<\/td>"; } else txtholder += ""; if(tmpcontent.match(/M<\/font>ulti-Level Platforms<\/a><\/b>.*?<\/td>"; } else txtholder += ""; txtholder += ""; if(tmpcontent.match(/U<\/font>rban Structures<\/a><\/b>.*?<\/td>"; } else txtholder += ""; if(tmpcontent.match(/O<\/font>rbital Base<\/a><\/b>.*?<\/td>"; } else txtholder += ""; if(tmpcontent.match(/B<\/font>iosphere Modification<\/a><\/b>.*?<\/td>"; if(tmpcontent.match(/B<\/font>iosphere Modification<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { biomodnum = parseInt(RegExp.$1); } } else txtholder += ""; powerlvl = 0; if(tmpcontent.match(/S<\/font>olar Plants<\/a><\/b>.*?<\/td>"; tmpcontent.match(/[A-Z]\d{2}:\d{2}:\d{2}:\d{2}<\/a><\/td>"; tmpcontent.match(/[A-Z]\d{2}:\d{2}:\d{2}:\d{2}<\/a><\/td>"; txtholder = txtholder.replace(/Urban cost per population:/,"Urban cost per population: " + Math.floor((avgarea + urbantmp)/fertility)); txtholder = txtholder.replace(/Biomod cost per population:/,"Biomod cost per population: " + Math.floor((avgarea + biomodtmp + avgpop + avgpower * 24)/urbannum)); content += txtholder + "
Building Statistics:Area Statistics:(\d{1,10})/i) != undefined) { terraformratio = RegExp.$1/5; if(tmpcontent.match(/T<\/font>erraform<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { terraformnum = parseInt(RegExp.$1); for(i = 0; i < terraformnum; i++){ avgarea += (80*(Math.pow(1.5,i))); } } txtholder += "
Terraform cost per area: " + Math.floor(terraformratio) + "
Terraforming Unavailable
(\d{1,10})/i) != undefined) { mlpratio = RegExp.$1/10; if(tmpcontent.match(/M<\/font>ulti-Level Platforms<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { mlpnum = parseInt(RegExp.$1); for(i = 0; i < mlpnum; i++){ avgarea += (10000*(Math.pow(1.5,i))); } } txtholder += "
MLP cost per area: " + Math.floor(mlpratio) + "
Multi-Level Platforms Unavailable
Population Statistics(\d{1,10})/i) != undefined) { urbanratio = RegExp.$1/fertility; urbantmp = parseInt(RegExp.$1); for(i = 0; i < urbannum; i++){ poptotal += (1*(Math.pow(1.5,i))); } txtholder += "
Urban cost per population: (" + Math.floor(urbanratio) + ")
Urban Structures Unavailable
(\d{1,10})/i) != undefined) { orbitalratio = RegExp.$1/10; if(tmpcontent.match(/O<\/font>rbital Base<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { orbitalnum = parseInt(RegExp.$1); for(i = 0; i < orbitalnum; i++){ poptotal += (2000*(Math.pow(1.5,i))); } } txtholder += "
Orbital Base cost per population: " + Math.floor(orbitalratio) + "
Orbital Bases Unavailable
(\d{1,10})/i) != undefined) { biomodtmp = parseInt(RegExp.$1); if(tmpcontent.match(/B<\/font>iosphere Modification<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { biomodnum = parseInt(RegExp.$1); for(i = 0; i < biomodnum; i++){ poptotal += (20000*(Math.pow(1.5,i))); } } txtholder += "
Biomod cost per population: (" + Math.floor(biomodtmp/urbannum) + ")
Biomod Unavailable
(\d{1,10})/i) != undefined) { if(tmpcontent.match(/S<\/font>olar Plants<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { powerlvl += parseInt(RegExp.$1); for(i = 0; i < RegExp.$1; i++){ powertotal += (1*(Math.pow(1.5,i))); } } } if(tmpcontent.match(/G<\/font>as Plants<\/a><\/b>.*?<\/td>(\d{1,10})/i) != undefined) { if(tmpcontent.match(/G<\/font>as Plants<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { powerlvl += parseInt(RegExp.$1); for(i = 0; i < RegExp.$1; i++){ powertotal += (1*(Math.pow(1.5,i))); } } } if(tmpcontent.match(/F<\/font>usion Plants<\/a><\/b>.*?<\/td>(\d{1,10})/i) != undefined) { if(tmpcontent.match(/F<\/font>usion Plants<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { powerlvl += parseInt(RegExp.$1); for(i = 0; i < RegExp.$1; i++){ powertotal += (20*(Math.pow(1.5,i))); } } } if(tmpcontent.match(/A<\/font>ntimatter Plants<\/a><\/b>.*?<\/td>(\d{1,10})/i) != undefined) { if(tmpcontent.match(/A<\/font>ntimatter Plants<\/a><\/b> \(Level (\d{1,2})/i) != undefined) { powerlvl += parseInt(RegExp.$1); for(i = 0; i < RegExp.$1; i++){ powertotal += (2000*(Math.pow(1.5,i))); } } } tmpcontent.match(/[A-Z]\d{2}:\d{2}:\d{2}:\d{2}<\/a><\/td>\d{1,4}\/(\d{1,4})<\/td>/i); avgarea = Math.floor(avgarea/RegExp.$1); content += "
Average Area Cost: " + avgarea + "
.*?.*?\d{1,4}\/(\d{1,4})<\/td>/i); avgpop = Math.floor((poptotal + ((urbannum + biomodnum) * avgarea))/RegExp.$1); content += "
Average Population Cost: " + avgpop + " (" + Math.floor(poptotal/RegExp.$1) + ")
.*?\d{1,4}\/(\d{1,4})<\/td>/i); maxpower = parseInt(RegExp.$1); avgpower = Math.floor((powertotal + (powerlvl * (avgarea + avgpop)))/maxpower); content += "
Average Energy Cost: " + avgpower + " (" + Math.floor(powertotal/RegExp.$1) + ")
" + content + empirepost + ""; displayData(0); empireTable = document.getElementById("empireTable"); closeLink = document.getElementById("closeLink"); closeLink.addEventListener ("click", function(event) { empireTable.innerHTML = ""; empireTable.parentNode.removeChild(empireTable); }, false); } //########################## MISCELANEOUS FUNCTIONS #########################\\ function timer() { //I hate duplicate code but this needs to execute immediately.. elem=document.getElementById('date5'); s=elem.title; m=0;h=0; if(s>59){ m=Math.floor(s/60); s=s-m*60; } if(m>59){ h=Math.floor(m/60); m=m-h*60; } if(s<10){ s="0"+s; } if(m<10){ m="0"+m; } if(h>=24){ elem.title = elem.title-(24*3600); h=h-24; } elem.innerHTML=h+":"+m+":"+s; elem.title++; function counter() { elem=document.getElementById('date5'); s=elem.title; m=0;h=0; if(s>59){ m=Math.floor(s/60); s=s-m*60; } if(m>59){ h=Math.floor(m/60); m=m-h*60; } if(s<10){ s="0"+s; } if(m<10){ m="0"+m; } if(h>=24){ elem.title = elem.title-(24*3600); h=h-24; } elem.innerHTML=h+":"+m+":"+s; elem.title++; } setInterval(counter,999); } function genomeLink() { genomeLink = "http://lueshi.dontexist.net/genome/data/view/"; if(currentpage.match(/base.aspx\?base=(\d{1,10})$/) != undefined) { genomeLink += "base/" + RegExp.$1 + "/"; content = empirepre + "View Base in Genome" + empirepost; displayData(0); } else if (currentpage.match(/profile.aspx\?player=(\d{1,10})/) != undefined) { genomeLink += "player/" + RegExp.$1 + "/"; content = empirepre + "View Player in Genome" + empirepost; displayData(2); } } function estimatePillage() { tmpcontent = document.body.innerHTML; tmpcontent.match(/" + ""; document.body.appendChild(scannerframe); document.addEventListener ("click", function(event) { if(event.target == document.getElementById("scannerrequest")) { getScanners();} }, true); } function getScanners() { gal = document.getElementById("galaxies").value; galurl = "galaxy="+encodeURIComponent(gal); guilds = document.getElementById("guilds").value; guildurl = "&guild="+encodeURIComponent(guilds); enemies = document.getElementById("enemies").checked; if(!enemies) enemies = ""; url = "http://lueshi.dontexist.net/genome/data/search/scanner/?" + galurl + guildurl + enemies; exists = document.getElementById("scannerframe"); if(exists != undefined) { exists.src = url + "&brief=True"; return; } scannerframe2 = document.createElement("table"); scannerframe2.width = "800"; scannerframe2.align = "center"; scannerframe2.innerHTML = ""; document.body.appendChild(scannerframe2); } function addEmpireSortLinks() { table = document.getElementsByTagName("table")[3]; table.rows[1].cells[4].innerHTML = "Construction"; table.rows[1].cells[5].innerHTML = "Production"; table.rows[1].cells[6].innerHTML = "Research"; function listener(event) { if (event.target == document.getElementById("sortByConstructionLink")) { event.preventDefault(); sortEmpireBases(2); } else if (event.target == document.getElementById("sortByProductionLink")) { event.preventDefault(); sortEmpireBases(3); } else if (event.target == document.getElementById("sortByResearchLink")) { event.preventDefault(); sortEmpireBases(4); } } document.addEventListener("click", listener, true); } function sortEmpireBases(sortby) { table = document.getElementsByTagName("table")[3]; tbody = table.firstChild; bases = []; for (i = 2; i < table.rows.length; i += 2) { t = table.rows[i+1].cells[sortby].getAttribute("title"); if (t == undefined) t = 0; else t = parseInt(t); bases.push([table.rows[i], table.rows[i+1], t]); } bases.sort(function(a, b) { return a[2]-b[2]; }); for (i = 0; i < bases.length; i++) { tbody.appendChild(bases[i][0]); tbody.appendChild(bases[i][1]); } } function updateLocationCache(location, basename) { cache = GM_getValue(server+"_locationCache", ""); cache = cache.split(/;/); entry = [location, basename].join("/"); if (cache.indexOf(entry) == -1) { if (cache.unshift(entry) > 5) { cache.pop(); } } cache = cache.join(";"); GM_setValue(server+"_locationCache", cache); } function readLocationCache() { cache = GM_getValue(server+"_locationCache", ""); cache = cache.split(/;/); cache = cache.map(function(x) { a = x.split("/"); if (a.length == 1) a.push(''); return a; }); return cache; } function updateLocationCacheFromMapPage(location) { basename = ""; tables = document.getElementsByTagName("table"); for (i = 0; i < tables.length; i++) { t = tables[i]; if (t.rows[0].cells[0].textContent == "Base") { basename = t.rows[2].cells[0].firstChild.textContent; } } updateLocationCache(location, basename); } function updateLocationCacheFromBasePage() { location = basename = ""; tables = document.getElementsByTagName("table"); for (i = 0; i < tables.length; i++) { t = tables[i]; if (t.rows.length > 0 && t.rows[0].cells.length > 1 && t.rows[0].cells[1].textContent == "Location") { if (t.getAttribute("class") == "base_top") { location = t.rows[1].cells[0].textContent; } else { location = t.rows[1].cells[1].textContent; } } else if (t.getAttribute("class") == "base") { basename = t.rows[0].cells[1].textContent; if (basename.substr(basename.length-2) == " \u00A9") basename = basename.substr(0, basename.length-2); } } updateLocationCache(location, basename); } function addCachedLocationsMoveMenu() { cache = readLocationCache(); if (cache.length == 0) return; tables = document.getElementsByTagName("table"); t = tables[tables.length-1]; r = t.rows[t.rows.length-1]; hasOccs = (r.cells[2].textContent != ""); small = r.cells[2].firstChild; if (hasOccs) { br = document.createElement("br"); small.insertBefore(br, small.firstChild); headline = document.createTextNode("Occupations:"); small.insertBefore(headline, small.firstChild); for (i = 0; i < 3; i++) { br = document.createElement("br"); small.insertBefore(br, small.firstChild); } } for (i = cache.length-1; i >= 0; i--) { entry = cache[i]; link = document.createElement("a"); link.setAttribute("href", "javascript:fastloc('" + entry[0] + "');"); if (entry[1] == "") link.textContent = entry[0]; else link.textContent = entry[1] + " (" + entry[0] + ")"; br = document.createElement("br"); small.insertBefore(link, small.firstChild); small.insertBefore(br, small.firstChild); } headline = document.createTextNode("Recent locations:"); small.insertBefore(headline, small.firstChild); } //########################## STARTUP FUNCTIONS #########################\\ function startHelping () { if(currentpage.match(/empire.aspx\?view=technologies/)) { showMyTech(); } else if(currentpage.match(/base.aspx\?base=\d{1,20}&view=structures/)) { adviseMyBaseTwo(); } else if(currentpage.match(/base.aspx\?base=\d{2,20}&view=production/)) { adviseProduction() } else if(currentpage.match(/loc=[A-Z]\d{2}:\d{2}:\d{2}$/)) { showTheDebris(); } else if(currentpage.match(/base.aspx\?base=\d{1,20}$/) || currentpage.match(/base.aspx\?base=\d{1,20}&view=$/)) { estimatePillage(); } else if(currentpage.match(/empire.aspx\?view=bases_capacities/)) { adviseCapacity(); } } function init() { if(currentpage.match(/scanners/)) { if(currentpage.match(/alpha/)) { enhanceScanners(); } } if(currentpage.match(/account.aspx$/)) { table = document.getElementsByTagName("table"); for(x=0;x
Economy<\/td>(\d{1,4})<\/td>/i); maxecon = RegExp.$1; tmpcontent.match(/Owner Income<\/td>(\d{1,4})<\/td>/i); currecon = RegExp.$1; minpillage = Math.floor(6 * Math.pow(currecon - (maxecon * .7),2)); alert("Minimum Pillage:\n" + minpillage); } function animateTimer() { tmpcontent = document.body.innerHTML; tmpcontent.match(/(Server Time: \d{1,2}-\d{1,2}-\d{1,4})(.*?)<\/small>/i); todaysdate = RegExp.$1; todaystime = RegExp.$2; testing = document.createElement("div"); testing.innerHTML = todaysdate + "     (Page loaded at "+todaystime+")"; document.getElementsByTagName("small")[0].innerHTML = testing.innerHTML; timer(); } function showTheDebris() { tmpcontent = document.body.innerHTML; tmpcontent = tmpcontent.replace(/"); document.body.innerHTML = tmpcontent.replace(/Debris.>\*<\/span>/gi,"Debris"); } function prepHelper() { updateframe = document.createElement("div"); if(currentpage.match(/base.aspx\?base=\d{1,10}$/) || currentpage.match(/loc=[A-Z]\d{2}:\d{2}:\d{2}$/) || currentpage.match(/guild.aspx\?guild=/) || currentpage.match(/(profile|scanners)/) || currentpage.match(/ranks.aspx\?view=guilds/) || currentpage.match(/messages.aspx/) || currentpage.match(/combat.aspx\?fleet=/) || currentpage.match(/board.aspx/)) { if(currentpage.match(/alpha/)){ autoGenome(); } } updateframe.innerHTML = ""; document.body.appendChild(updateframe); } function displayData(num) { dataDisplay = document.createElement("div"); dataDisplay.innerHTML = content; document.body.insertBefore(dataDisplay, document.body.childNodes[6-num]); } function autoGenome() { genomeBlock = document.createElement("div"); genomeBlock.innerHTML = ""; if((navigator.appName).match(/Opera/i) != undefined){ if(document.location.href.match(/board/)) return; genomeframe = document.createElement("div"); genomeframe.innerHTML = ""; genomeframe.innerHTML += ""; document.body.appendChild(genomeframe); document.getElementById("genomesubmit").submit(); } else { GM_xmlhttpRequest( { method:"POST", url: "http://lueshi.dontexist.net/genome/data/input/", headers:{ "Content-Type":"application/x-www-form-urlencoded" }, data:"brief=true&url=" + encodeURIComponent(currentpage) + "&text=" + encodeURIComponent(document.body.innerHTML.replace(/\/g,"
")), onload: function(details){ if(document.location.href.match(/(map|rank|profile|guild|base|scanners)/)) { document.body.appendChild(genomeBlock); document.getElementById("genomeLink").innerHTML=details.responseText; } } }); } } function delButton() { gobutton = document.getElementById("helperLink"); gobutton.parentNode.removeChild(gobutton); } function finishHelping() { displayData(0); gobutton = document.getElementById("helperLink"); if((navigator.appName).match(/Opera/i) != undefined) { gobutton = document.getElementById("helperLink"); setTimeout("gobutton.outerHTML = ''",10); } else { setTimeout(delButton(),10); } } function toSeconds(time) { time.match(/(\d{1,2}):(\d{1,2}):(\d{1,2})/i); hours = RegExp.$1; minutes = RegExp.$2; seconds = RegExp.$3; return((hours*3600) + (minutes*60) + (seconds*1)); } function enhanceScanners() { scannerframe = document.createElement("table"); scannerframe.width = "800"; scannerframe.align = "center"; scannerframe.innerHTML += "
Enhance Scanners
Galaxies: Guilds (ID #): " + "Enemies