Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Neopets Auto Haggle
  3. // @namespace http://www.neofriends.net/
  4. // @description Auto haggle in main shops
  5. // @include http://neopets.com/haggle.phtml*
  6. // @include http://www.neopets.com/haggle.phtml*
  7. // @include www.neopets.com/haggle.phtml*
  8. // @include neopets.com/haggle.phtml*
  9. // ==/UserScript==
  10.  
  11. function run_cap()
  12. {
  13. if (document.location.href.match('haggle.phtml') && (document.body.innerHTML.indexOf('captcha_show.phtml') > -1))
  14. {
  15. if(document.body.innerHTML.indexOf("I wont take less than ") > -1)
  16. {
  17. start_pos = document.body.innerHTML.indexOf("I wont take less than ") + 22;
  18. end_pos = document.body.innerHTML.indexOf(" Neopoints for it");
  19. raw_price = document.body.innerHTML.substr(start_pos,end_pos-start_pos);
  20. raw_price = raw_price.replace(",","");
  21.  
  22. document.body.innerHTML = document.body.innerHTML.replace("value=\"0\"","value=\""+haggle_price(raw_price)+"\"");
  23. }
  24.  
  25. if(document.body.innerHTML.indexOf("I want at least ") > -1)
  26. {
  27. start_pos = document.body.innerHTML.indexOf("I want at least ") + 16;
  28. end_pos = document.body.innerHTML.indexOf(" Neopoints for this great item");
  29. raw_price = document.body.innerHTML.substr(start_pos,end_pos-start_pos);
  30. raw_price = raw_price.replace(",","");
  31.  
  32. document.body.innerHTML = document.body.innerHTML.replace("value=\"0\"","value=\""+haggle_price(raw_price)+"\"");
  33. }
  34.  
  35. const baseUrl = "http://www.neopets.com"
  36. var image = document.getElementsByTagName('input')[12].getAttribute("src");
  37.  
  38. var newImg = new Image();
  39. var combined = new Image()
  40. combined.src = baseUrl + image;
  41.  
  42.  
  43. combined.onload = function(){
  44.  
  45. newImg = combined;
  46. var canvas = document.createElement('canvas');
  47. canvas.width = newImg.width;
  48. canvas.height = newImg.height;
  49.  
  50. console.log(newImg.width);
  51. var context = canvas.getContext("2d");
  52.  
  53. context.drawImage(newImg, 0, 0);
  54.  
  55. var image_data = context.getImageData(0, 0, newImg.width, newImg.height);
  56. var pix = image_data.data;
  57.  
  58. var pixel = 0;
  59. var darkest_pixel_lightness = 100;
  60. var darkest_pixel_location = 0;
  61.  
  62. for (var k = 0; k < pix.length; k += 4, pixel++)
  63. {
  64. red = pix[k];
  65. green = pix[k+1];
  66. blue = pix[k+2];
  67. alpha = pix[k+3];
  68.  
  69. if (alpha === 0) {
  70. continue;
  71. }
  72.  
  73. // console.log(Math.floor(pixel / canvas.width) + " ", k % canvas.width);
  74.  
  75. var hsl = rgbToHsl(red, green, blue);
  76. var lightness = hsl.l;
  77.  
  78. if (lightness < darkest_pixel_lightness) {
  79. darkest_pixel_lightness = lightness;
  80. darkest_pixel_location = pixel;
  81. }
  82. }
  83.  
  84. var y = Math.floor(darkest_pixel_location / canvas.width);
  85. var x = darkest_pixel_location % canvas.width;
  86. }
  87. }
  88. alert('x: '+x+' y: '+y);
  89. }
  90.  
  91. function rgbToHsl(r, g, b) {
  92. r /= 255, g /= 255, b /= 255;
  93. var max = Math.max(r, g, b),
  94. min = Math.min(r, g, b);
  95. var h, s, l = (max + min) / 2;
  96.  
  97. if (max == min) {
  98. h = s = 0;
  99. } else {
  100. var d = max - min;
  101. s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
  102. switch (max) {
  103. case r:
  104. h = (g - b) / d + (g < b ? 6 : 0);
  105. break;
  106. case g:
  107. h = (b - r) / d + 2;
  108. break;
  109. case b:
  110. h = (r - g) / d + 4;
  111. break;
  112. }
  113. h /= 6;
  114. }
  115.  
  116. return ({
  117. h: h,
  118. s: s,
  119. l: l,
  120. });
  121. }
  122.  
  123. function haggle_price(raw_price)
  124. {
  125. var iVal = new Array(2);
  126.  
  127. iVal[0] = raw_price.substr(0,1);
  128. iVal[1] = raw_price.substr(1,1);
  129.  
  130. var x = 0;
  131. var end_price = "";
  132.  
  133. for(x=0; x<raw_price.length; x++)
  134. {
  135. end_price += iVal[(x%2)];
  136. }
  137.  
  138. return end_price;
  139. }
  140.  
  141. window.addEventListener('load', run_cap, false);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement