Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name eve_trd
- // @description evetard
- // @namespace evetrd
- // @match https://eve-central.com/tradetool/
- // @version 0.03
- // @run-at document-end
- // ==/UserScript==
- $ = unsafeWindow.$; //JQuery hack
- var MAX_ROUTES = 5;
- var MAX_QUERIES = 5;
- var regions = new Array();
- var routes = new Array();
- var curFrom = 0, curTo = 0;
- var complete = 0;
- function parse(arr)
- {
- var res = new Array();
- for(var i = 0; i < arr.size(); i+=5)
- {
- var route = new Object();
- route.id = i;
- route.from = arr[i].childNodes[1].innerHTML.slice(12);
- route.to = arr[i].childNodes[3].innerHTML.slice(11);
- route.jumps = parseInt(arr[i].childNodes[5].innerHTML.slice(13), 10);
- route.item = arr[i+1].childNodes[1].childNodes[2].innerHTML;
- route.profit = parseFloat(arr[i+3].childNodes[1].childNodes[1].data.slice(1).replace(/,/g, ""), 10);
- route.ppj = parseFloat(arr[i+3].childNodes[5].childNodes[1].data.slice(1).replace(/,/g, ""), 10);
- route.ppt = parseFloat(arr[i+3].childNodes[3].childNodes[1].data.slice(1).replace(/,/g, ""), 10);
- route.html = "<tr>" + arr[i].innerHTML + "</tr>" + "<tr>" + arr[i+1].innerHTML + "</tr>" + "<tr>" + arr[i+2].innerHTML + "</tr>" + "<tr>" + arr[i+3].innerHTML + "</tr>" + "<tr>" + arr[i+4].innerHTML + "</tr>";
- res.push(route);
- }
- return res;
- }
- function query(from, to)
- {
- var container = $("#cont").load("https://eve-central.com/home/tradefind_display.html?qtype=Regions&newsearch=1&fromt="+from+"&to="+to+" #bodyText", function()
- {
- complete ++;
- $("#complete").html(complete.toString());
- if(--curTo < 0)
- {
- curTo = regions.length-1;
- if(--curFrom < 0)
- return;
- }
- query(regions[curFrom], regions[curTo]);
- var arr = container.children(":first").children("table").children(":first").children();
- if(arr.size() == 0)
- return; //пустой ответ
- var rts = parse(arr);
- for(var i = 0; i < rts.length; i++)
- {
- var r = rts[i];
- if(routes.length < MAX_ROUTES)
- {
- $("#out").append(r.html);
- routes.push(r);
- }else
- {
- routes.sort(function(a, b){return b.ppt < a.ppt;});
- for(var c = 0; c < routes.length; c++)
- {
- /***************/
- if(routes[c].ppt < r.ppt) // условие более выгодной сделки. Если истина, то новый вариант (r) более выгоден
- {
- routes[c] = r;
- routes.sort(function(a, b){return b.ppt > a.ppt;});
- $("#out").empty();
- for(var i=0; i < routes.length; i++)
- {
- $("#out").append(routes[i].html);//.animate({opacity: 0.7}, 100).animate({opacity: 1}, 100);
- }
- break;
- }
- }
- }
- }
- });
- }
- $("#bodyText").prepend("<div id='log' style='display: block;'></div><div id='cont' style='display: none;'></div><table id='out'></div>");
- $("#log").append("Loading regions... ");
- $("#cont").load("https://eve-central.com/home/tradefind_search.html?qtype=Regions&fromt=&to= #bodyText", function()
- {
- $("#cont input[name='fromt']").each(function(index)
- {
- regions.push( $(this).attr('value') );
- });
- $("#log").append("Done<br/>");
- $("#log").append("Loading " +regions.length*regions.length+ " combinations, ");
- $("#log").append("<span id='complete'>0</span> complete");
- $("#cont").empty();
- var q = 0;
- for(curFrom = regions.length-1; curFrom > 0 && q < MAX_QUERIES; curFrom--)
- {
- from = regions[curFrom];
- for(curTo = regions.length-1; curTo > 0 && q < MAX_QUERIES; curTo--)
- {
- to = regions[curTo];
- q++;
- query(from, to);
- }
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement