CatAndNew

try to take over the world!

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

You will need to install an extension such as Tampermonkey to install this script.

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==UserScript==
// @name         CatAndNew
// @namespace    https://trade.rapnet.*/
// @version      1.1
// @description  try to take over the world!
// @author       HeyLop
// @match        https://trade.rapnet.cn/*
// @match        https://trade.rapnet.com/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @license      AGPL-3.0
// @run-at       context-menu
// @grant        none
// ==/UserScript==


/**时间获取函数 */
function HM_Time() {
    let date = new Date();
    let year = date.getFullYear(); //获取完整的年份(4位)
    let mon = (date.getMonth() + 1); //获取当前月份(0-11,0代表1月)
    let day = date.getDate(); //获取当前日(1-31)
    let h = date.getHours(); //获取当前小时数(0-23)
    let m = date.getMinutes(); //获取当前分钟数(0-59)
    let s = date.getSeconds(); //获取当前秒数(0-59)
    return year + '/' + mon + '/' + day + '-' + h + ':' + m + ':' + s;
}


(function () {


    'use strict';

    //公共数组,存储当前页面刷新后列表
    var current_page = []
    var click_id_list = []
    var readied_id_list = []

    //从浏览器本地存储获取已读列表
    var storage = window.localStorage;
    //初始化浏览器本地存储数据
    if (!storage.hasOwnProperty("fly-read-label")) {
        storage.setItem("fly-read-label", "");//存储
        storage.setItem("fly-read-time", "");//存储
    }


    //判断已使用本地存储大小
    var size = 0;
    for (var item in storage) {
        if (storage.hasOwnProperty(item)) {
            size += storage.getItem(item).length;
        }
    }
    //'当前localStorage已使用容量为' + (size / 1024).toFixed(2) + 'KB'
    //如果大于当前容量的80% ,就删掉……的数据
    var localStorageUsed = (size / 1024).toFixed(2);
    console.log("MSG==========>date:" + HM_Time() + ",当前已用存储:" + localStorageUsed + "KB,浏览器本地存储使用量:" + (localStorageUsed / (1024 * 5)))
    if ((localStorageUsed / (1024 * 5)) > 0.8) {
        alert("存储使用超过80%,请重置✈️📅数据!!!!!!")
    }
    else if ((localStorageUsed / (1024 * 5)) > 0.9) {
        storage.setItem("fly-read-time", "");
        storage.setItem("fly-read-label", "");
        alert("存储使用超过90%,已重置✈️📅数据!!!!!!")
    }

    //将表格title添加空按钮,调整样式与表格结果一致
    var TableButton = document.createElement('button')
    TableButton.id = "tabelebut"
    TableButton.innerText = "✈️"
    TableButton.style.fontSize = '14px';
    TableButton.style.cursor = "pointer";
    if (document.getElementById("tabelebut") == null) {
        document.querySelector('.checkbox-header-col__HeaderCheckbox-sc-17l94kc-0.kLQRPN').before(TableButton)

    }


    //页面顶部增加查看浏览器缓存日期与浏览器缓存日期按钮
    var CatDateID = document.createElement('button')
    CatDateID.id = "CatDateID"
    CatDateID.innerText = "查看✈️📅"
    CatDateID.className = 'button__StyledButton-sc-ceuy7i-0 kUAZbV filter-open-button__FilterButton-sc-1l3yltp-0 cdoVHc'
    var RestDateButton = document.createElement('button')
    RestDateButton.id = "RestDateButton"
    RestDateButton.innerText = "重置✈️📅"
    RestDateButton.className = 'button__StyledButton-sc-ceuy7i-0 kUAZbV filter-open-button__FilterButton-sc-1l3yltp-0 cdoVHc'
    var page_end = document.querySelector('.button__StyledButton-sc-ceuy7i-0.kUAZbV.filter-open-button__FilterButton-sc-1l3yltp-0.cdoVHc')
    if (document.getElementById("CatDateID") == null) {
        page_end.after(CatDateID)
    }
    if (document.getElementById("RestDateButton") == null) {
        page_end.after(RestDateButton)
    }



    //监听查看日期按钮并添加功能
    CatDateID.addEventListener('click', (e) => {
        if (storage.getItem("fly-read-time").length < 4) {
            alert("最后保存数据日期✈️📅为空,暂无数据!!! \n==========>MSG浏览器存储使用情况<===========\n当前时间:" + HM_Time() + "\n当前已用存储:" + localStorageUsed + "KB\n存储使用百分比:" + (localStorageUsed / (1024 * 5) * 100 + "%") + "\n⚠️警告:存储使用百分比超过80%告警提示!!!\n⚠️警告:存储使用百分比超过90%将自动清除数据!!!")
        } else {
            alert("最后保存数据日期✈️📅---->" + storage.getItem("fly-read-time") + "\n==========>MSG浏览器存储使用情况<===========\n当前时间:" + HM_Time() + "\n当前已用存储:" + localStorageUsed + "KB\n存储使用百分比:" + (localStorageUsed / (1024 * 5) * 100 + "%") + "\n⚠️警告:存储使用百分比超过80%告警提示!!!\n⚠️警告:存储使用百分比超过90%将自动清除数据!!!")
        }
    })
    //监听重置日期按钮并添加功能
    RestDateButton.addEventListener('click', (e) => {
        storage.setItem("fly-read-time", "");
        storage.setItem("fly-read-label", "");
        if (storage.getItem("fly-read-time").length < 4) {
            alert("重置✈️📅成功!!!请刷新页面后重新运行查看数据!!!")
        } else {
            alert("重置✈️📅失败!!!")
        }
    })

    var reade_id_list_tmp = storage.getItem("fly-read-label")
    readied_id_list = reade_id_list_tmp.split(',')

    //底部增加按钮处理设置过期时间与清除浏览器缓存



    document.querySelectorAll('#searchResultTable-tableBody .tableRowWrapper').forEach(element => {

        //生成按钮CatButton 可能是js的bug 必须将按钮放置到函数内才可生效,否则只能最后一次循环生效
        var CatButton = document.createElement('button')
        CatButton.id = "NewButton"
        CatButton.innerText = "看"
        CatButton.style.fontSize = '14px';
        CatButton.style.cursor = "pointer";
        CatButton.style.backgroundColor = '#70DB93' //绿色



        //公共参数声明
        var CurrentId = element.firstElementChild.firstElementChild.firstElementChild.firstChild.firstElementChild.firstChild.id
        var DefaultId = "DefaultButton" + CurrentId
        var target = document.getElementById(CurrentId)
        // console.log("==========>" + DefaultId)
        //处理已读,并在页面中进行标记
        //判断当前页面到每条数据是否倍点击过
        if (readied_id_list.includes(CurrentId)) {
            target.before(CatButton)
        } else {
            //生成按钮DefaultButton(字体,背景均为透明色) 用于填补没被点击到列前,统一页面格式
            var DefaultButton = document.createElement('button')
            DefaultButton.id = DefaultId
            DefaultButton.innerText = "空"
            DefaultButton.style.fontSize = '14px';
            DefaultButton.style.cursor = "pointer";
            DefaultButton.style.color = "Transparent"
            DefaultButton.backgroundColor = "Transparent"

            target.before(DefaultButton)
        }

        //点击后将id发送到浏览器本地存储,并删除default占位按钮添加已读按钮
        element.addEventListener('click', (e) => {
            e.preventDefault()
            // console.log("点击了!!!")
            click_id_list = readied_id_list
            if (document.getElementById(DefaultId) != null) {
                document.getElementById(DefaultId).remove()
            }
            target.before(CatButton)
            click_id_list.push(CurrentId)
            storage.setItem("fly-read-label", click_id_list);//存储
            if (storage.getItem("fly-read-time").length < 4) {
                storage.setItem("fly-read-time", HM_Time());//存储
            }


        })
    });
})();