Advertisement
Guest User

Untitled

a guest
Sep 16th, 2014
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. // ==UserScript==
  2. // @name eve_trd
  3. // @description evetard
  4. // @namespace evetrd
  5. // @match https://eve-central.com/tradetool/
  6. // @version 0.03
  7. // @run-at document-end
  8. // ==/UserScript==
  9.  
  10. $ = unsafeWindow.$; //JQuery hack
  11.  
  12. var MAX_ROUTES = 5;
  13. var MAX_QUERIES = 5;
  14.  
  15. var regions = new Array();
  16. var routes = new Array();
  17.  
  18. var curFrom = 0, curTo = 0;
  19. var complete = 0;
  20.  
  21. function parse(arr)
  22. {
  23. var res = new Array();
  24. for(var i = 0; i < arr.size(); i+=5)
  25. {
  26. var route = new Object();
  27. route.id = i;
  28. route.from = arr[i].childNodes[1].innerHTML.slice(12);
  29. route.to = arr[i].childNodes[3].innerHTML.slice(11);
  30. route.jumps = parseInt(arr[i].childNodes[5].innerHTML.slice(13), 10);
  31.  
  32. route.item = arr[i+1].childNodes[1].childNodes[2].innerHTML;
  33. route.profit = parseFloat(arr[i+3].childNodes[1].childNodes[1].data.slice(1).replace(/,/g, ""), 10);
  34. route.ppj = parseFloat(arr[i+3].childNodes[5].childNodes[1].data.slice(1).replace(/,/g, ""), 10);
  35. route.ppt = parseFloat(arr[i+3].childNodes[3].childNodes[1].data.slice(1).replace(/,/g, ""), 10);
  36.  
  37. 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>";
  38.  
  39. res.push(route);
  40. }
  41. return res;
  42. }
  43.  
  44. function query(from, to)
  45. {
  46. var container = $("#cont").load("https://eve-central.com/home/tradefind_display.html?qtype=Regions&newsearch=1&fromt="+from+"&to="+to+" #bodyText", function()
  47. {
  48. complete ++;
  49. $("#complete").html(complete.toString());
  50.  
  51. if(--curTo < 0)
  52. {
  53. curTo = regions.length-1;
  54. if(--curFrom < 0)
  55. return;
  56. }
  57. query(regions[curFrom], regions[curTo]);
  58.  
  59. var arr = container.children(":first").children("table").children(":first").children();
  60.  
  61. if(arr.size() == 0)
  62. return; //пустой ответ
  63.  
  64. var rts = parse(arr);
  65.  
  66. for(var i = 0; i < rts.length; i++)
  67. {
  68. var r = rts[i];
  69. if(routes.length < MAX_ROUTES)
  70. {
  71. $("#out").append(r.html);
  72. routes.push(r);
  73.  
  74. }else
  75. {
  76. routes.sort(function(a, b){return b.ppt < a.ppt;});
  77. for(var c = 0; c < routes.length; c++)
  78. {
  79. /***************/
  80. if(routes[c].ppt < r.ppt) // условие более выгодной сделки. Если истина, то новый вариант (r) более выгоден
  81. {
  82. routes[c] = r;
  83.  
  84. routes.sort(function(a, b){return b.ppt > a.ppt;});
  85.  
  86. $("#out").empty();
  87. for(var i=0; i < routes.length; i++)
  88. {
  89. $("#out").append(routes[i].html);//.animate({opacity: 0.7}, 100).animate({opacity: 1}, 100);
  90. }
  91. break;
  92. }
  93. }
  94. }
  95. }
  96. });
  97. }
  98.  
  99. $("#bodyText").prepend("<div id='log' style='display: block;'></div><div id='cont' style='display: none;'></div><table id='out'></div>");
  100. $("#log").append("Loading regions... ");
  101. $("#cont").load("https://eve-central.com/home/tradefind_search.html?qtype=Regions&fromt=&to= #bodyText", function()
  102. {
  103. $("#cont input[name='fromt']").each(function(index)
  104. {
  105. regions.push( $(this).attr('value') );
  106. });
  107. $("#log").append("Done<br/>");
  108. $("#log").append("Loading " +regions.length*regions.length+ " combinations, ");
  109. $("#log").append("<span id='complete'>0</span> complete");
  110.  
  111. $("#cont").empty();
  112.  
  113. var q = 0;
  114. for(curFrom = regions.length-1; curFrom > 0 && q < MAX_QUERIES; curFrom--)
  115. {
  116. from = regions[curFrom];
  117. for(curTo = regions.length-1; curTo > 0 && q < MAX_QUERIES; curTo--)
  118. {
  119. to = regions[curTo];
  120. q++;
  121. query(from, to);
  122. }
  123. }
  124. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement