Sprint Color Spectrum Sprint

shows colored usernames based on 40L Sprint time

  1. // ==UserScript==
  2. // @name Sprint Color Spectrum Sprint
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description shows colored usernames based on 40L Sprint time
  6. // @author Oki
  7. // @match https://*.jstris.jezevec10.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. /**************************
  12. Sprint Color Spectrum Script
  13. **************************/
  14.  
  15. (function() {
  16. window.addEventListener('load', function(){
  17.  
  18. function colorize(limit){
  19. Game["links"] = document.getElementsByTagName('a')
  20. for (var o = 0; (o < Game["links"].length) && limit; o++) {
  21. var regexp = /(https:\/\/jstris\.jezevec10\.com\/u\/)([^\/]*)(.*)/g;
  22. var parts = regexp.exec(Game["links"][o].href);
  23. if(parts && parts[2] && !parts[3]){
  24. var execEval=`limit--;
  25. var url = "https://jstris.jezevec10.com/api/u/"+parts[2]+"/records/1?mode=1"
  26. var xhr = new XMLHttpRequest();
  27. xhr.onreadystatechange = function() {
  28. if (this.readyState == 4 && this.status == 200) {
  29. var best = 25
  30. var worst = 100
  31. var a = [255,0,0] //best
  32. var b = [128,0,128] //medium
  33. var d = [0,255,255] //worst
  34. var min = JSON.parse(this.responseText).min;
  35. (min!=0&&min<best)&&(min=best);min>worst&&(min=worst);
  36. var c=2*((min-best)/(worst-best));1<=c&&(--c,a=b,b=d);
  37. var e=[parseInt(0|a[0]+(b[0]-a[0])*c,10),parseInt(0|a[1]+(b[1]-a[1])*c,10),parseInt(0|a[2]+(b[2]-a[2])*c,10)];
  38. var color = "rgb("+e[0]+","+e[1]+","+e[2]+")"
  39. min||(color='rgb(75,75,75)')
  40. Game["links"][`+o+`].style.color = color
  41. }
  42. };
  43. xhr.open("GET", url, true);
  44. xhr.send();`
  45. eval(execEval)
  46. }
  47. }
  48. }
  49.  
  50. Game["colorize"] = colorize;
  51.  
  52. if(typeof trim != "function"){var trim=a=>{a=a.slice(0,-1);a=a.substr(a.indexOf("{")+1);return a}}
  53. if(typeof getParams != "function"){var getParams=a=>{var params=a.slice(a.indexOf("(")+1);params=params.substr(0,params.indexOf(")")).split(",");return params}}
  54.  
  55. var sendChatFunc = Live['prototype']['sendChat'].toString()
  56. var params3 = getParams(sendChatFunc)
  57.  
  58.  
  59. sendChatFunc = "if(chatInput.value.startsWith('/color')){amount=chatInput.value.split(' ')[1];Game['colorize'](+amount);chatInput.value='';msg=document.createElement('div');msg.className='chl srv';msg.innerHTML='Colorizing '+amount+' username(s)';ch1.appendChild(msg);return}" + trim(sendChatFunc)
  60. Live['prototype']["sendChat"] = new Function(...params3, sendChatFunc);
  61.  
  62. });
  63. })();