FB: Full Timestamps 2019

Shows full timestamps on Facebook posts

目前為 2019-02-18 提交的版本,檢視 最新版本

// ==UserScript==
// @name     FB: Full Timestamps 2019
// @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  https://gf.qytechs.cn/scripts/12228/code/setMutationHandler.js
// @  require  https://momentjs.com/downloads/moment.min.js
// @  require  https://momentjs.com/downloads/moment-with-locales.min.js
// @version 3.01 Beta
// @namespace https://gf.qytechs.cn/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!important; }' +
    '.full-timestamp:hover { opacity: 1.0; }' +
    '.full-timestamp:before { content: ""; }' +
    '.full-timestamp:after  { content: ""; }' +
    '.timestampContent {display: inline-block; }' +
    '.sponsored {color: #0f0;}'
);

// 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, '.q_1zif-zjsq', RecentTimestamps);
setMutationHandler(document, '.q_1zif-zjsq', RecentURLs);
setMutationHandler(document, '._5pcq', expandPostIDs);

function expandDates(nodes) {
    for ( var i = 0, abbr; (abbr = nodes[i++]); )
{
        if (abbr.querySelector('.full-timestamp')) {
            // already processed
            continue;
        }

        abbr.insertAdjacentHTML(
        'beforeend', '<span class="full-timestamp">'
        + ' on ' + moment(new Date(abbr.dataset.utime * 1000)).format('l \\at LTS')
        );
    }
}

function RecentTimestamps(nodes) {
    for ( var i = 0, abbr; (abbr = nodes[i++]); )
{
        if (abbr.querySelector('.full-timestamp')) {
            // already processed
            continue;
        }
        if (abbr.innerText.includes('mins') === true) {
        var minAdjust = abbr.innerText.match(/\d+/);
        abbr.insertAdjacentHTML(
        'beforeend', '<span class="full-timestamp">'
        + ' Javascript Injection —> ' + minAdjust + ' Mɪɴᴜᴛᴇs ᴘᴀssᴇᴅ sɪɴᴄᴇ ' + moment(new Date()).subtract(minAdjust, 'minutes').format(' LTS') + '<br>'
        );
        }
        if (abbr.innerText.includes('hrs') === true) {
            var hrAdjust = abbr.innerText.match(/[0-9]{1,2}/);
            var hrAdjustI = parseInt(hrAdjust, 10);
            abbr.insertAdjacentHTML(
                'beforeend', '<span class="full-timestamp">'
                + ' <span style="color:#afa">(' + moment(new Date())
                .subtract(hrAdjustI, 'hours').format('h a') +
                '<span style="color:#afa"> ≃ ᴀᴘᴘʀᴏxɪᴍᴀᴛᴇ)</span><br>'
                );
        }
    }
}

function RecentURLs(nodes) {
    for ( var i = 0; i < nodes.length; i++ )
    {
          var element = nodes[i];
        if(element.innerHTML.includes('<br>') === false && element.className != '_5pb8')
          {
          element.insertAdjacentHTML('beforeend', '<br>' +
          element.parentNode.parentNode.parentNode.parentNode.parentNode
                 .parentNode.parentNode.parentNode.parentNode.previousSibling.href
                 .match(/https:\/\/www\.facebook.com\/[a-z|A-Z|[0-9|\-|_|.]+.[a-zA-Z|[0-9|\-|_|.|]+[a-zA-Z|[0-9|\-|_|.|?=]+/));
          }
     }
}









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(/(\?__xts__%.+|\/\?type=\d&__xts__%.+)/gm,'')
                      .replace('permalink.php?','&nbsp;permalink.php?').replace('/groups/','Group: ')
                      .replace('/permalink/','<br>Post ID: ').slice(24,100)
                      .replace('/',''));
          }
     }
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址