CoinMarketCap Only Show Real Coins

Only show real coins on coinmarketcap. Hide fake coins. Also improves view-ability of website when javascript is disabled.

  1. // ==UserScript==
  2. // @name CoinMarketCap Only Show Real Coins
  3. // @namespace http://coinmarketcrap.com
  4. // @description Only show real coins on coinmarketcap. Hide fake coins. Also improves view-ability of website when javascript is disabled.
  5. // @include https://coinmarketcap.com/
  6. // @include https://*.coinmarketcap.com/
  7. // @version 1.4.5
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. var fakeCoins = new Array('BSV', 'USDT', 'BNB', 'UNI', 'LINK', 'USDC', 'THETA', 'KLAY', 'BTCB', 'YFI', 'MKR', 'ICP');
  12. var fakes = fakeCoins.join(' ');
  13.  
  14. var coinIndex = {"BTT":["3718","bittorrent"], "XRP":["52","xrp"], "ZEC":["1437", "zcash"], "DASH":["131", "dash"], "XMR":["328", "monero"], "DOGE":["74", "dogecoin"], "TRX":["1958", "tron"], "BCH":["1831", "bitcoin-cash"], "FIL":["2280", "filecoin"], "LTC":["2", "litecoin"], "ETC":["1321", "ethereum-classic"], "BTG":["2083","bitcoin-gold"], "XVG":["693","verge"], "NANO":["1567","nano"], "DFI":["5804","DeFiChain"], "DGB":["109","digibyte"], "RVN":["2577","ravencoin"], "ZEN":["1698","horizon"], "HOT":["2682","holo"], "DCR":["1168","decred"],};
  15.  
  16. var td2 = '<td style="text-align:right"><span style="color:var(--up-color);padding:0;border-radius:8px"><span></span></span></td><td style="text-align:right"><p font-size="1" color="text" style="white-space:nowrap"></p></td><td style="text-align:right"><div><a class="cmc-link" href="/currencies/CCCOINNAMEEE/markets/"><p color="text" font-size="1"></p></a><p style="white-space:nowrap" font-size="0" color="text2"></p></div></td><td style="text-align:right"><div><div><div><span class="icon-Info"></span></div><p color="text" font-weight="medium" font-size="1"></p></div><div width="160"><div width="128"></div></div></div></td><td style="text-align:right"><a class="cmc-link" href="/currencies/CCCOINNAMEEE/"><img src="https://s3.coinmarketcap.com/generated/sparklines/web/7d/usd/MMMAGICNUMBERRR.png" /></a></td><td><div><button class="sc-Axmtr bJMCAy sc-fzqNJr fvNIAx"><span class="icon-More-Vertical"></span></button></div>';
  17.  
  18. var T = document.getElementsByTagName('tr');
  19. for (var x = 0; x < T.length; x++) {
  20. if (T[x].getElementsByTagName('td')) {
  21. var D = T[x].getElementsByTagName('td');
  22. for (var xx = 0; xx < D.length; xx++) {
  23. var code = null;
  24. if (D[xx].getElementsByTagName('p')) {
  25. var P = D[xx].getElementsByTagName('p');
  26. for (var xxx = 0; xxx < P.length; xxx++) {
  27. var code = P[xxx].textContent.toString();
  28. code = code.match(/[A-Z]{3,5}/);
  29. if (code != null) {
  30. code1 = new RegExp(' ' + code + ' ', 'i');
  31. code2 = new RegExp('^' + code + ' ', 'i');
  32. code3 = new RegExp(' ' + code + '$', 'i');
  33. if (fakes.match(code1) || fakes.match(code2) || fakes.match(code3)) {
  34. T[x].setAttribute('style', 'display:none!important; visibility:hidden!important;')
  35. }
  36. break;
  37. }
  38. }
  39. }
  40. if (D[xx].getElementsByTagName('span')) {
  41. var SP = D[xx].getElementsByTagName('span');
  42. for (var a = 0; a < SP.length; a++) {
  43. if (SP[a].className.match(/crypto-symbol/i)) {
  44. var code = SP[a].textContent.toString();
  45. code = code.match(/[A-Z]{3,5}/);
  46. if (code != null) {
  47. code1 = new RegExp(' ' + code + ' ', 'i');
  48. code2 = new RegExp('^' + code + ' ', 'i');
  49. code3 = new RegExp(' ' + code + '$', 'i');
  50. if (fakes.match(code1) || fakes.match(code2) || fakes.match(code3)) {
  51. T[x].setAttribute('style', 'display:none!important; visibility:hidden!important;')
  52. }
  53. for (var aa = 0; aa < SP.length; aa++) {
  54. if (SP[aa].className.match(/circle/i) && code != null && coinIndex[code] != null) {
  55. var url = 'https://s2.coinmarketcap.com/static/img/coins/64x64/' + coinIndex[code][0] + '.png';
  56. SP[aa].setAttribute('style', 'background-image:url(\'' + url + '\')!important;width: 24px!important; height: 24px!important; background-repeat: no-repeat!important; background-size:24px!important;');
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. }
  64. }
  65. if (T[x].getElementsByTagName('td') [1] && T[x].getElementsByTagName('td') [1].getElementsByTagName('p') [0]) {
  66. var place = parseInt(T[x].getElementsByTagName('td') [1].getElementsByTagName('p') [0].textContent.toString());
  67. }
  68. else if (T[x].getElementsByTagName('td') [1] && T[x].getElementsByTagName('td') [1].getElementsByTagName('span') [0]) {
  69. var span0 = T[x].getElementsByTagName('td') [1].getElementsByTagName('span') [0].innerHTML;
  70. if (span0 == null || span0 == '') {
  71. if (T[x].getElementsByTagName('td') [2] && T[x].getElementsByTagName('td') [2].getElementsByTagName('a') [0] && T[x].getElementsByTagName('td') [2].getElementsByTagName('a') [0].getElementsByTagName('span') [2]) {
  72. var code = T[x].getElementsByTagName('td') [2].getElementsByTagName('a') [0].getElementsByTagName('span') [2].textContent.match(/[A-Z]{3,5}/);
  73. if (coinIndex[code]) {
  74. var newtd2 = td2.replace(/MMMAGICNUMBERRR/gm, coinIndex[code][0]).replace(/CCCOINNAMEEE/gm, coinIndex[code][1]);
  75. var newc = T[x].innerHTML + newtd2;
  76. T[x].innerHTML = newc;
  77. }
  78. }
  79. }
  80. }
  81. }