Greasy Fork 支持简体中文。

yande.re 历史最大页数记录

按日期记录主页最大页数,用于查看下次收图时的页数增长

// ==UserScript==
// @name         yande.re 历史最大页数记录
// @namespace    http://tampermonkey.net/
// @version      0.1.2
// @description  按日期记录主页最大页数,用于查看下次收图时的页数增长
// @author       rowink
// @match        https://yande.re/post
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_listValues
// ==/UserScript==
// @note         0.1.2 修复跳转链接错误
// @note         0.1.1 修复意外的@grant丢失错误
// @note         0.1.0 转移作者
// @note         0.9 修复日期错误排序的问题
// @note         0.8 修复错误删除了前一天记录的问题
// @note         0.7 规范化部分代码
// @note         0.6 启用严格模式
// @note         0.5 修改正确页数的正向跳转
// @note         0.4 增加历史页数差值的正向跳转
// @note         0.3 代码优化
// @note         0.2 优化显示布局,增加当前页数与历史页数的差值显示
// @note         0.1 页数记录

(function () {
    "use strict";
    //设置最大记录数
    let max = 5;
    //获取最大页数
    let pagination = document.getElementById("paginator").getElementsByClassName("pagination")[0];
    let lastPage = pagination.getElementsByTagName("a")[5].textContent;
    /**
     * 记录最大页数
     * key:年份日期
     * value:当前最大页数
     */
    let date = new Date();
    let fullDate = date.getFullYear() + "-" + (parseInt(date.getMonth()) + 1) + "-" + date.getDate();
    GM_setValue(fullDate, lastPage);
    //绘制容器
    let panel = document.createElement("div");
    panel.setAttribute("id", "panel");
    let paginator = document.getElementById("paginator");
    paginator.appendChild(panel);
    /**
     * 容器item
     * div:容器
     * a:子链接容器
     * *_span:记录项 (t日期,p页数,d差值)
     */
    let show = (date, page) => {
        let d_value = lastPage - page;
        let panel = document.getElementById("panel");
        panel.innerHTML += "<br>";
        let div = document.createElement("div");
        let a = document.createElement("a");
        let t_span = document.createElement("span");
        let p_span = document.createElement("span");
        let d_span = document.createElement("span");
        t_span.style.float = "left";
        d_span.style.float = "right";
        t_span.innerText = "日期 : " + date;
        p_span.innerText = "页数 ♡" + page;
        d_span.innerText = "差值 +" + d_value;
        a.style.border = "none";
        if (d_value != 0) {
            a.setAttribute("href", "https://yande.re/post?page=" + (d_value + 1));
        }
        a.appendChild(t_span);
        a.appendChild(p_span);
        a.appendChild(d_span);
        div.style.border = "1px white solid";
        div.style.color = "#ee8887";
        div.style.textAlign = "none";
        div.appendChild(a);
        panel.appendChild(div);
    }
    //取出所有记录,并且根据日期降序排序
    let date_k = GM_listValues();

    let sortByValue = (a, b) => {
        var valueA = GM_getValue(a);
        var valueB = GM_getValue(b);
        return valueA - valueB;
    }
    date_k.sort(sortByValue);


    //找到最小项
    let min = new Date(date_k[0]);
    let index = 0;
    for (let i = 0; i < date_k.length; i++) {
        let date_new = new Date(date_k[i]);
        if (date_new < min) {
            min = date_new;
            index = i;
        }
    }
    //根据最小项位置进行删除
    if (date_k.length > max) {
        GM_deleteValue(date_k[index]);
    }
    //显示全部页数记录
    console.log(date_k);
    for (const date of date_k) {
        let value = GM_getValue(date);
        if (value != null) {
            show(date, value);
        }
    }
})();