Skip to content

Instantly share code, notes, and snippets.

@zazaulola
Created October 20, 2021 03:49
Show Gist options
  • Save zazaulola/a53121317fb0fa6786dceb4c772a7767 to your computer and use it in GitHub Desktop.
Save zazaulola/a53121317fb0fa6786dceb4c772a7767 to your computer and use it in GitHub Desktop.
Stackoverflow date outdate marker
// ==UserScript==
// @name Stackoverflow dates
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Stackoverflow dates outdate marker
// @author You
// @include /^https:\/\/(.+\.)?stackoverflow\.com/
// @icon https://www.google.com/s2/favicons?domain=stackoverflow.com
// @grant none
// ==/UserScript==
(function() {
'use strict';
const style = document.createElement('style');
style.innerHTML = `
.outdate{
color: white;
font-weight: bold;
background: red;
padding: 2px 8px 2px 8px;
}
`;
document.head.appendChild(style);
const dateElements = [...document.querySelectorAll('[title]')]
.filter(el=>/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$/.test(el.getAttribute('title')))
.map(el=>{
let date = new Date(el.getAttribute('title'));
let relative = Date.now() - date.getTime();
let datetimeStr =(date.toLocaleString()).replace(/\(.*\)/,'').replace(/GMT[+-]\d{4}/,'')
let today = new Date().toLocaleDateString();
datetimeStr = datetimeStr.replace(today,'Сегодня');
if(relative> 4*60*60*1000){
el.classList.add('outdate');
}
el.innerHTML = datetimeStr;
return [el,datetimeStr];
});
setInterval(()=>dateElements.forEach(([el,val])=>(el.innerHTML=val)),10*1000);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment