CubeCraft appeal site improvements

Changes the date of the infraction to the local timezone and makes links clickable. Also adds a namemc link.

  1. // ==UserScript==
  2. // @name CubeCraft appeal site improvements
  3. // @namespace Violentmonkey Scripts
  4. // @match https://appeals.cubecraft.net/find_appeals/*
  5. // @grant none
  6. // @version 1.4.2
  7. // @author Caliditas
  8. // @description Changes the date of the infraction to the local timezone and makes links clickable. Also adds a namemc link.
  9. // ==/UserScript==
  10.  
  11. var infractions = document.getElementsByClassName("col-sm-8");
  12. var amountOfInfractions = infractions[0].children.length;
  13.  
  14. for (var i = 0; i < amountOfInfractions; i++) {
  15. replaceDate(infractions[0].children[i].firstElementChild);
  16. }
  17.  
  18. function replaceDate(element) {
  19. var contentString = element.innerHTML;
  20. dateStringOld = contentString.slice(contentString.indexOf(" at") + 3, contentString.indexOf(" for")) + " UTC";
  21. var dateOldMs = Date.parse(dateStringOld);
  22. var dateOld = new Date(dateOldMs);
  23. var contentStringChanged = contentString.slice(0, contentString.indexOf(" at ") + 4) + dateOld.toString().slice(4, 10) + "," + dateOld.toString().slice(10, 25) + initials(new Date().toString().match(/\(([A-Za-z\s].*)\)/)[1])
  24. contentStringChanged += contentString.slice(contentString.indexOf(" for"));
  25. if (contentStringChanged.includes("http")) {
  26. var evidenceLink = contentStringChanged.slice(contentStringChanged.indexOf("http"))
  27. // evidenceLink.slice
  28. var evidenceLinkShort = evidenceLink.slice(0, evidenceLink.indexOf("\t"));
  29. evidenceLinkShort = evidenceLinkShort.slice(0, evidenceLinkShort.indexOf(" "));
  30. // console.log(evidenceLinkShort)
  31. contentStringChanged = contentStringChanged.slice(0, contentStringChanged.indexOf("http")) + "<a target=\"_blank\" href=\"" + evidenceLinkShort + "\">" + evidenceLinkShort + "</a>" + contentStringChanged.slice(contentStringChanged.indexOf("http") + evidenceLinkShort.length) //evidenceLink.slice(evidenceLink.indexOf("\t"));
  32. }
  33. // console.log(contentStringChanged)
  34. element.innerHTML = contentStringChanged;
  35. }
  36.  
  37. function initials(words) {
  38. if (words.includes(" ")) {
  39. var wordsArray = words.split(" ");
  40. var initials = "";
  41. for (var i = 0; i < wordsArray.length; i++) {
  42. initials += wordsArray[i][0];
  43. }
  44. return initials;
  45. } else {
  46. return words;
  47. }
  48. }
  49.  
  50. var nameElem = document.getElementsByClassName("col-sm-4")[0];
  51. var uuid = nameElem.children[0].outerHTML.slice(nameElem.children[0].outerHTML.indexOf("user=") + 5, nameElem.children[0].outerHTML.indexOf("\" style"));
  52. var outer = nameElem.outerHTML;
  53. var newOuter = outer.slice(0, outer.indexOf(">")) + "onclick=\"window.open('https://namemc.com/profile/" + uuid + "');\" style=\"cursor: pointer;\"" + outer.slice(outer.indexOf(">"))
  54. nameElem.outerHTML = newOuter;