Greasy Fork is available in English.
Shows full timestamps on Facebook posts
当前为
// ==UserScript==
// @name FB: Full Timestamps 2018
// @match https://www.facebook.com/*
// @match https://*.facebook.com/*
// @match http://www.facebook.com/*
// @match http://*.facebook.com/*
// @run-at document-start
// @grant GM_addStyle
// @author wOxxOm & JZersche
// @require http://greasyfork.icu/scripts/12228/code/setMutationHandler.js
// @ require http://momentjs.com/downloads/moment.min.js
// @version 1.00
// @namespace http://greasyfork.icu/users/95175
// @description Shows full timestamps on Facebook posts
// ==/UserScript==
var options = { weekday: 'long', year: 'numeric', month: 'numeric', day: '2-digit' };
GM_addStyle(
'.full-timestamp { opacity: 0.95; color: #f00; }' +
'.full-timestamp:hover { opacity: 1.0; }' +
'.full-timestamp:before { content: ""; }' +
'.full-timestamp:after { content: ""; }' +
'.timestampContent {display: none; }'
);
// process the already loaded portion of the page if any
expandDates(document.querySelectorAll('abbr[data-utime]'));
// process the stuff added from now on
setMutationHandler(document, 'abbr[data-utime]', expandDates);
setMutationHandler(document, '._5pcq', expandPostIDs);
function expandDates(nodes) {
//IGNORE THIS PART
//var x = document.getElementsByClassName("_5pcq")[0]; if (x) { href = x.getAttribute("href"); }
//var y = document.querySelector("a._5pcq");
for ( var i = 0, abbr; (abbr = nodes[i++]); )
{
if (abbr.querySelector('.full-timestamp')) {
// already processed
continue;
}
abbr.insertAdjacentHTML('beforeend', '<span class="full-timestamp">' +
' on ' + abbr.title
.replace(/am|pm/,'').replace(/ AM| PM/,'')
.replace(/0\d/, number => number[1])
.replace(210,2010).replace(211,2011).replace(212,2012).replace(213,2013)
.replace(214,2014).replace(215,2015).replace(216,2016).replace(217,2017)
.replace(218,2018).replace(219,2019) +
(moment(new Date(abbr.dataset.utime * 1000)).format(':ss') + abbr.title.match('pm|PM|am|AM')) + moment(new Date(abbr.dataset.utime * 1000)).format(' Z UTC') );
}
}
function expandPostIDs(nodes) {
for ( var i = 0; i < nodes.length; i++ )
{
var element = nodes[i];
if(element.innerHTML.includes('<br>') === false && element.className === '_5pcq')
{
element.insertAdjacentHTML('beforeend', '<br>' + element.href.replace('/groups/','Group: ').replace('/permalink/','<br>Post ID: ').slice(24,100).replace('/',''));
}
}
}