Greasy Fork is available in English.
记录上次查看时间。
当前为
// ==UserScript==
// @name 记录上次查看时间
// @version 0.1.2
// @include https://www.mcbbs.net/*
// @author xmdhs
// @description 记录上次查看时间。
// @namespace https://xmdhs.top
// ==/UserScript==
(function () {
let tid = document.querySelector("#postlist > table:nth-child(1) > tbody > tr > td.plc.ptm.pbn.vwthd > div > a:nth-child(1)")
try {
let temp = new URLSearchParams(tid.href)
tid = temp.get("tid")
} catch (error) { console.log(error);}
if (tid > 0) {
let date = localStorage.getItem("lastview")
if (date == null) {
date = {}
} else {
date = JSON.parse(date)
}
date[tid] = new Date().getTime()
let tempdate = {}
if (date.length > 1000) {
let now = new Date().getTime()
for (let i in date) {
if ((now - date[i]) > 432000000) {
continue;
}
tempdate[i] = date[i]
}
date = tempdate
}
localStorage.setItem("lastview", JSON.stringify(date))
} else {
let date = localStorage.getItem("lastview")
date = JSON.parse(date)
jq(".s.xst").each(function () {
let link = jq(this).attr("href")
let tid = link.match(/thread-([0-9]{1,10})-1-[0-9]{1,10}.html/)
let atime
if (tid != null && tid.length >= 2) {
tid = tid[1]
atime = date[tid]
} else {
let b = new URLSearchParams(link)
let tidtemp = b.get("tid")
if (tidtemp != "") {
atime = date[tidtemp]
}
}
if (atime > 0) {
jq(this).prepend('<font color="#000000"><b>[' + diffTime(new Date(atime), new Date()) + '] </b></font>')
}
})
}
})();
// https://www.jianshu.com/p/bdda96a1dcd8
function diffTime(startDate, endDate) {
var diff = endDate.getTime() - startDate;//.getTime();//时间差的毫秒数
//计算出相差天数
var days = Math.floor(diff / (24 * 3600 * 1000));
//计算出小时数
var leave1 = diff % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000));
//计算相差分钟数
var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000));
//计算相差秒数
var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000);
var returnStr = seconds + "秒前";
if (minutes > 0) {
returnStr = minutes + "分钟前";//+ returnStr;
}
if (hours > 0) {
returnStr = hours + "小时前";// + returnStr;
}
if (days > 0) {
returnStr = days + "天前";//+ returnStr;
}
return returnStr;
}