Created
October 20, 2021 03:49
-
-
Save zazaulola/a53121317fb0fa6786dceb4c772a7767 to your computer and use it in GitHub Desktop.
Stackoverflow date outdate marker
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==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