Add Futbin button on Futhead Player page

Show Futbin Link and Price on FutHead Player page

  1. // ==UserScript==
  2. // @name Add Futbin button on Futhead Player page
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.5
  5. // @description Show Futbin Link and Price on FutHead Player page
  6. // @author Syntaxlb
  7. // @match http://www.futhead.com/17/*/*
  8. // @match http://www.futhead.com/squad-building-challenges/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15.  
  16. function processFutbin()
  17. {
  18.  
  19. var search = $('.font-16.fh-red a').text();
  20.  
  21. var rating = $('.player-cards > .playercard .playercard-rating').text();
  22. var position = $('.player-cards > .playercard .playercard-position').text();
  23. var url = 'http://xbox-store-checker.com/fr/fut/api/futbin.json';
  24. $.ajax({
  25. url: url,
  26. async: true,
  27. dataType: 'json',
  28. data: 'name=' + search + '&rating=' + rating + '&position=' + position,
  29. type: 'get',
  30. crossDomain: true,
  31. success: function (data){
  32. var buttonFutbin = $('<a></a>').attr('class', 'btn btn-futhead btn-full').attr('href', data.url).attr('target', '_blank').text(search + ' sur FUTBIN');
  33. buttonFutbin.insertBefore($('.new-topic.btn-futhead'));
  34. $('.ps-bin-band span').text(data.price_ps);
  35. $('.xb-bin-band span').text(data.price_xbox);
  36. },
  37. error: function(e, textStatus)
  38. {
  39. console.log('error');
  40. // console.log(e);
  41. // console.log(textStatus);
  42. }
  43. });
  44. }
  45.  
  46. function processFutbinPlayers()
  47. {
  48.  
  49. var players = $('.player-group-table li');
  50. var arrNames = [];
  51. var arrPositions = [];
  52. var arrRatings = [];
  53.  
  54. var url = 'http://xbox-store-checker.com/fr/fut/api/futbin.json';
  55. var nbPlayer = 0;
  56. $(players).each(function (){
  57. if ($(this).find('.player-name').text() !== '') nbPlayer = nbPlayer + 1;
  58. });
  59. $('#show-price-playerlist').text('Récupèration des prix en cours...');
  60.  
  61. $(players).each(function (){
  62. var name = $(this).find('.player-name').text();
  63. var position = $(this).find('.player-club-league-name > strong').text();
  64. var rating = $(this).find('.player-rating span').text();
  65. var player = $(this);
  66. if (name !== '')
  67. {
  68. $.ajax({
  69. url: url,
  70. async: true,
  71. dataType: 'json',
  72. data: 'name=' + name + '&rating=' + rating + '&position=' + position,
  73. type: 'get',
  74. crossDomain: true,
  75. success: function (data){
  76. nbPlayer = nbPlayer - 1;
  77. if (nbPlayer === 0)
  78. {
  79. $('#show-price-playerlist').text('Récupèration des prix terminée');
  80. }
  81. $(player).find('.price-platform-target[data-platform="xb"]').text(data.price_xbox);
  82. $(player).find('.price-platform-target[data-platform="ps"]').text(data.price_ps);
  83. },
  84. error: function(e, textStatus)
  85. {
  86. console.log('error');
  87. // console.log(e);
  88. // console.log(textStatus);
  89. }
  90. });
  91. }
  92. });
  93. }
  94. // Player Page
  95. if ($('.font-16.fh-red a').length > 0)
  96. {
  97. processFutbin();
  98. }
  99. // Squad Page
  100. if ($('#squad').length > 0)
  101. {
  102. var squadUrl = $('meta[property="og:url"]').attr('content');
  103. var squadPriceUrl = 'http://xbox-store-checker.com/fr/futhead-price?squadId='+squadUrl;
  104. var buttonSquadPrice = $('<a></a>').attr('class', 'btn btn-futhead btn-full').attr('href', squadPriceUrl).attr('target', '_blank').text('Squad Price Calculator');
  105. buttonSquadPrice.prependTo($('.main-content > .row > .col-rigid-300'));
  106. }
  107. // Players list Page
  108. if ($('.player-group-table').length > 0)
  109. {
  110. var buttonPlayersListPrice = $('<a></a>').attr('class', 'btn btn-futhead btn-full').attr('id', 'show-price-playerlist').attr('href', '#').text('Voir les prix');
  111. buttonPlayersListPrice.prependTo($('.main-content > .row > .col-rigid-300'));
  112. $('body').on('click', '#show-price-playerlist', function(e) {
  113. e.preventDefault();
  114. processFutbinPlayers();
  115. return false;
  116. });
  117. }
  118.  
  119. })();