Greasy Fork is available in English.
The script run only on forms pages and show timestamps of messages
当前为
// ==UserScript==
// @name Popmundo Forum Post Timestamp
// @description The script run only on forms pages and show timestamps of messages
// @author Criyessei
// @version 1.0.0
// @include /^https?://\d+.popmundo.com/Forum/Popmundo.aspx/Thread/*/
// @grant unsafeWindow
// @require https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js
// @namespace http://greasyfork.icu/users/805141
// ==/UserScript==
/*globals moment*/
let $ = unsafeWindow.jQuery;
let displayPreference = {
1: "left",
2: "onTimeText"
}[2];
(async function() {
'use strict';
await sleep(100);
let messages = $('#ppm-content >div.marginWrapper >.tb:has(>.tbfblr)');
let timeText2Date = timeText=>{
let {groups:{day, month, year, hour, minute}} = timeText.trim().match(/(?<day>\d{1,2})\.(?<month>\d{1,2})\.(?<year>\d{4}),\s(?<hour>\d{1,2}):(?<minute>\d{1,2})/);
return new Date(year, month-1, day, hour, minute);
}
for(let i=0, len=messages.length; i<len; i++){
let message = messages.eq(i);
// 1
let p1 = message.find('>.tbc >div >p.em');
if(p1.length){
let timeEl1 = p1.contents().last()[0];
let label1 = moment(timeText2Date(timeEl1.textContent)).fromNow();
p1.append(` <span style="font-family:monospace; font-size:12px; vertical-allign:middle; color:maroon; white-space:nowrap;">(${label1})</span>`);
}
// 2
let p2 = message.find('>.tbfblr p:first');
let timeEl2 = p2.contents().last()[0];
let label2 = moment(timeText2Date(timeEl2.textContent)).fromNow();
//DISPLAY
if(displayPreference == "left"){
let span = $(`<span style=" position: absolute; top: 0; font-size:11px; color:maroon; writing-mode: vertical-rl; /* text-orientation: upright; */ /* z-index: 2; */ ">${label2}</span>`).appendTo(message);
message.css({'overflow':'unset', 'position':'relative'});
console.log(message.find('>div:first').height()+" - "+span.height());
span.css('top', Math.max(3, parseInt((message.find('>div:first').height()-span.height())/2)))
.css('left', -13-(span.width()-13.6));
}
else if(displayPreference == "onTimeText"){
p2.append(` <span style="font-family:monospace; font-size:12px; vertical-allign:middle; color:maroon; white-space:nowrap;">(${label2})</span>`);
}
}
})();
function sleep(ms=1e3){
return new Promise(res=> setTimeout(()=>res(), ms));
}