CubeCraft appeal site improvements

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

目前為 2020-07-10 提交的版本,檢視 最新版本

// ==UserScript==
// @name        CubeCraft appeal site improvements
// @namespace   Violentmonkey Scripts
// @match       https://appeals.cubecraft.net/find_appeals/*
// @grant       none
// @version     1.4.1
// @author      Caliditas
// @description Changes the date of the infraction to the local timezone and makes links clickable. Also adds a namemc link.
// ==/UserScript==

var infractions = document.getElementsByClassName("col-sm-8");
var amountOfInfractions = infractions[0].children.length;

for (var i = 0; i < amountOfInfractions; i++) {
  replaceDate(infractions[0].children[i].firstElementChild);
}

function replaceDate(element) {
  var contentString = element.innerHTML;
  dateStringOld = contentString.slice(contentString.indexOf(" at") + 3, contentString.indexOf(" for")) + " UTC";
  var dateOldMs = Date.parse(dateStringOld);
  var dateOld = new Date(dateOldMs);
  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])
  contentStringChanged += contentString.slice(contentString.indexOf(" for"));
  if (contentStringChanged.includes("http")) {
    var evidenceLink = contentStringChanged.slice(contentStringChanged.indexOf("http"))
    evidenceLinkShort = evidenceLink.slice(0, evidenceLink.indexOf("\t"));
    contentStringChanged = contentStringChanged.slice(0, contentStringChanged.indexOf("http")) + "<a href=\"" + evidenceLinkShort + "\">" + evidenceLinkShort + "</a>" + evidenceLink.slice(evidenceLink.indexOf("\t"));
  }
  // console.log(contentStringChanged)
  element.innerHTML = contentStringChanged;
}

function initials(words) {
  if (words.includes(" ")) {
    var wordsArray = words.split(" ");
    var initials = "";
    for (var i = 0; i < wordsArray.length; i++) {
      initials += wordsArray[i][0];
    }
    return initials;
  } else {
    return words;
  }  
}

var nameElem = document.getElementsByClassName("col-sm-4")[0];
var uuid = nameElem.children[0].outerHTML.slice(nameElem.children[0].outerHTML.indexOf("user=") + 5, nameElem.children[0].outerHTML.indexOf("\" style"));
var outer = nameElem.outerHTML;
var newOuter = outer.slice(0, outer.indexOf(">")) + "onclick=\"window.open('https://namemc.com/profile/" + uuid + "');\" style=\"cursor: pointer;\"" + outer.slice(outer.indexOf(">"))
// var newOuter = "<a class=\"text-center\" target=\"_blank\" href=\"https://namemc.com/profile/" + uuid + "\"><h3 class=\"text-center\">MarkTheScaryPig</h3></a>";
nameElem.outerHTML = newOuter;

// <div class="col-sm-4">
// <div class="col-sm-4" onclick="window.open('https://namemc.com/profile/aecd6614-bcf8-40ee-b548-5b17365d4d48');" style="cursor: pointer;">
// 						<img src="https://api.cubecraft.net/skins/index.php?a=0&amp;w=12&amp;wt=0&amp;abg=-26&amp;abd=16&amp;ajg=6&amp;ajd=-11&amp;ratio=10&amp;format=png&amp;displayHairs=true&amp;headOnly=false&amp;user=aecd6614-bcf8-40ee-b548-5b17365d4d48" style="max-height:200px" class="img-fuid d-block mx-auto">
// 			            <h3 class="text-center">MarkTheScaryPig</h3>
// 					</div>