// This is a very epic script.
// What it does is give you two buttons at the top of the page, which let you:
// a) format all timestamps on the page to color-code by how recent they are
// b) remove all timestamps altogether.
// - JPxG, 2021 08 31
$( function() {
timestampTextColor = "#00141a";
ranges = []; // Range of dates to measure
ranges.push(0); // <30m
ranges.push(1800000); // 30m
ranges.push(3600000); // 1h
ranges.push(7200000); // 2h
ranges.push(10800000); // 3h
ranges.push(14400000); // 4h
ranges.push(18000000); // 5h
ranges.push(21600000); // 6h
ranges.push(43200000); // 12h
ranges.push(64800000); // 18h
ranges.push(86400000); // 24h
ranges.push(129600000); // 36h
ranges.push(172800000); // 2d
ranges.push(259200000); // 3d
ranges.push(345600000); // 4d
ranges.push(432000000); // 5d
ranges.push(518400000); // 6d
ranges.push(604800000); // 1w
ranges.push(1209600000); // 2w
ranges.push(1814400000); // 3w
ranges.push(2592000000); // 1m
ranges.push(5184000000); // 2m
ranges.push(7776000000); // 3m
ranges.push(10368000000); // 4m
ranges.push(12960000000); // 5m
ranges.push(15552000000); // 6m
ranges.push(31536000000); // 1y
ranges.push(63072000000); // 2y
ranges.push(94608000000); // 3y
ranges.push(126144000000); // 4y
// Color range is as follows, using the Solarized palette:
// 1-15: LCH gradient from #d33682 (magenta) to #b58900 (yellow)
// 15-30: RGB gradient from #b58900 (yellow) to #2aa198 (cyan)
colors = [];
colors.push("#d33682"); // <30m
colors.push("#d83778"); // 30m
colors.push("#dc396e"); // 1h
colors.push("#df3e64"); // 2h
colors.push("#e0435a"); // 3h
colors.push("#e04950"); // 4h
colors.push("#df5046"); // 5h
colors.push("#dd583d"); // 6h
colors.push("#d95f34"); // 12h
colors.push("#d5662b"); // 18h
colors.push("#d06e22"); // 24h
colors.push("#cb7519"); // 36h
colors.push("#c47c10"); // 2d
colors.push("#bd8306"); // 3d
colors.push("#b58900"); // 4d
colors.push("#ac8b0a"); // 5d
colors.push("#a28c14"); // 6d
colors.push("#998e1e"); // 1w
colors.push("#908f29"); // 2w
colors.push("#879133"); // 3w
colors.push("#7d933d"); // 1m
colors.push("#749447"); // 2m
colors.push("#6b9651"); // 3m
colors.push("#62975b"); // 4m
colors.push("#589965"); // 5m
colors.push("#4f9b6f"); // 6m
colors.push("#469c7a"); // 1y
colors.push("#3d9e84"); // 2y
colors.push("#339f8e"); // 3y
colors.push("#2aa198"); // 4y
backgroundcolor = getComputedStyle(document.getElementsByClassName("mw-parser-output")[0])['background-color']
if( (window.location.href.indexOf("alk:" ) >= 0 ) || ( window.location.href.indexOf("Wikipedia:" ) >= 0 )) {
$('#firstHeading').append(' <small><small>shade:</small></small> <button id="shadeTimes">recent</button>');
$('#firstHeading').append(' <button id="shadeRemove">remove</button>');
document.getElementById("shadeTimes").style = "font-family: monospace; font-size: 50%; padding: 1px; border: 1px; background:#B58900; color:#002b36";
document.getElementById("shadeRemove").style = "font-family: monospace; font-size: 50%; padding: 1px; border: 1px; background:#B58900; color:#002b36";
function getAllComments() {
//document.querySelectorAll('h2')[7].innerHTML
// "<span class=\"mw-headline\" id=\"Poggers\" data-mw-comment=\"{"type":"heading","level":0,"id":"h-Poggers-2021-12-01T10:01:00.000Z","replies":["c-Example-2021-12-01T10:01:00.000Z-Poggers"],"headingLevel":2,"placeholderHeading":false}\"><span data-mw-comment-start=\"\" id=\"h-Poggers-2021-12-01T10:01:00.000Z\"></span>Poggers<span data-mw-comment-end=\"h-Poggers-2021-12-01T10:01:00.000Z\"></span></span><span class=\"mw-editsection\"><span class=\"mw-editsection-bracket\">[</span><a href=\"/w/index.php?title=User_talk:JPxG/Test_page&action=edit&section=7\" title=\"Edit section: Poggers\">edit</a><span class=\"mw-editsection-bracket\">]</span></span><!--__DTSUBSCRIBE__h-Example-2021-12-01T10:01:00.000Z--> <div style=\"font-size: 0.6em; font-weight: bold; float: right;\"> | <a id=\"7\" href=\"#archiverLink\" class=\"archiverLink\" title=\"Archive to: "User talk:JPxG/Archive 1"\">Archive</a></div>"
//document.querySelectorAll('p')[18].innerHTML
// "<span data-mw-comment-start=\"\" id=\"c-Example-2021-12-01T10:01:00.000Z-Poggers\"></span>Comment. <a href=\"/wiki/User:Example\" title=\"User:Example\" class=\"userlink\">Example</a> (<a href=\"/wiki/User_talk:Example\" title=\"User talk:Example\" class=\"userlink\">talk</a><span class=\"before-localcomments\">) </span><span class=\"localcomments\" style=\"font-size: 95%; white-space: nowrap;\" timestamp=\"1638352886527\" title=\"10:01, 1 December 2021 (UTC)\">2:01 am, 1 December 2021, Wednesday (10 days ago) (UTC−8)</span><span class=\"after-localcomments\"></span><span class=\"ext-discussiontools-init-replylink-buttons\"><span class=\"ext-discussiontools-init-replylink-bracket\"><!--__DTREPLYBRACKETOPEN__--></span><a class=\"ext-discussiontools-init-replylink-reply\" role=\"button\" tabindex=\"0\" data-mw-comment=\"{"type":"comment","level":1,"id":"c-Example-2021-12-01T10:01:00.000Z-Poggers","replies":["c-Example2-2021-12-02T10:01:00.000Z-Example-2021-12-01T10:01:00.000Z"],"timestamp":"2021-12-01T10:01:00.000Z","author":"Example"}\" href=\"\"><!--__DTREPLY__--></a><span class=\"ext-discussiontools-init-replylink-bracket\"><!--__DTREPLYBRACKETCLOSE__--></span></span><span data-mw-comment-end=\"c-Example-2021-12-01T10:01:00.000Z-Poggers\"></span>\n"
// document.querySelectorAll('p')[18].parentElement
}
$('#shadeTimes').click(function(e) {
//alert("Clicked");
console.log("Recents clicked");
// allComms = document.querySelectorAll('p');
// for (var c in allComms) {
// c.getElementsByTagName('span')[0].id
// // "c-221.118.156.36-2021-11-18T11:53:00.000Z-Simp"
// } // For all comments (i.e. <p>s).
tsNow = Date.now()
len = document.getElementsByClassName('localcomments').length;
console.log(len);
for (var i = 0; i < len; i++) {
ts = Date.parse(document.getElementsByClassName('localcomments')[i].title)
ts = parseInt(ts)
console.log(ts);
console.log(tsNow);
for (var j = 0; j < ranges.length; j++) {
if((tsNow - ts) > ranges[j]) {
document.getElementsByClassName('localcomments')[i].style.backgroundColor = colors[j];
//k = j + 15; if (k >= colors.length) { k = (k - colors.length); }
//document.getElementsByClassName('localcomments')[i].style.color = colors[k]
// Experimental thing that auto-selects a color distant from the background.
document.getElementsByClassName('localcomments')[i].style.color = timestampTextColor;
} // Set to whatever the color is for that range.
} // Loop over all of the ranges.
// if((tsNow - ts) > 86400) {
// console.log("Older than a day.")
// document.getElementsByClassName('localcomments')[i].style.backgroundColor = "red";
// } // Test loop: if over 86400
} // Simpler loop, with an increment, I suppose.
}); // End of button listener.
$('#shadeRemove').click(function(e) {
//alert("Clicked");
console.log("Remove clicked");
tsNow = Date.now()
len = document.getElementsByClassName('localcomments').length;
console.log(len);
for (var i = 0; i < len; i++) {
ts = Date.parse(document.getElementsByClassName('localcomments')[i].title)
ts = parseInt(ts)
console.log(ts);
console.log(tsNow);
for (var j = 0; j < ranges.length; j++) {
if((tsNow - ts) > ranges[j]) {
document.getElementsByClassName('localcomments')[i].style = "display: none;";
}
} // Loop over all of the ranges.
} // Simpler loop, with an increment, I suppose.
}); // End of button listener.
} // Add buttons and listeners if it's a talk page or a project page.
} ); // End of the line. That's all folks!