Greasy Fork is available in English.

tmvictor-triggers-desc

对Tmvictor的触发器增加备注框,目前没有导入导出功能,请手动复制粘贴 F12 -> Application -> storage -> Local Storage -> triggers-desc 的配置到其他浏览器

// ==UserScript==
// @name         tmvictor-triggers-desc
// @namespace    http://tampermonkey.net/
// @version      1.0.2
// @description  对Tmvictor的触发器增加备注框,目前没有导入导出功能,请手动复制粘贴 F12 -> Application -> storage -> Local Storage -> triggers-desc 的配置到其他浏览器
// @author       天使不见时
// @match        https://likexia.gitee.io/evolve/
// @grant        none
// @require      https://code.jquery.com/jquery-3.4.1.min.js
// @require      https://code.jquery.com/ui/1.12.1/jquery-ui.min.js
// ==/UserScript==

/** 数据保存的key */
const DATA_KEY = "triggers-desc";
/** 监听间隔 */
var LISTENER_TIME = 1000;

(function () {
    console.log("加载TMVictor(新)触发器备注框插件");

    let interval = setInterval(function () {

        // 整个脚本加载后才处理
        let item = $("#script_triggerSettings");
        if (!item || item.length === 0) {
            return;
        }

        // 没有生成过备注框才加载
        let descTitle = $('#script_triggerSettings tbody:first tr:last-child th').eq(-3).text();
        if (descTitle !== '备注') {
            creatTriggersDesc();
            // 销毁定时器
            window.clearTimeout(interval)
        }
    }, LISTENER_TIME)
})();

/**
 * 创建触发器的备注框
 */
function creatTriggersDesc() {

    // 创建备注标题
    let descTitle = $('<th class="has-text-warning" style="width:11%">备注</th>');
    $('#script_triggerSettings tbody:first tr:last-child th').eq(-3).after(descTitle);

    // 加载本地数据库中保存的备注数据
    let data = loadData();
    // 创建备注框
    $('#script_triggerTableBody').find('tr').each(function () {

        // 获取该行的id,用于记录对应行的备注
        let id = $(this).attr('value');

        // 构建备注框
        let triggersDesc = $('<td style="width:11%"><input type="text" class="input is-small" style="width:100%" value="' + loadById(data, id) + '"></td>');

        // 绑定onchange事件
        $(triggersDesc).find('input:last-child').on('change', function () {
            // 获取备注框中输入值
            let value = $(this).val();
            // 加载本地数据库中保存的备注数据
            let data = loadData();
            // 记录并保存备注数据
            data[id] = value;
            saveData(data);
        });

        // 插入备注框
        $(this).find('td').eq(-3).after(triggersDesc);
    });
}

/**
 * 从data中根据id获取值
 * @param data
 * @param id
 * @return {string}
 */
function loadById(data, id) {
    let value = data[id];
    return value ? value : '';
}

/**
 * 保存数据
 * @param data 需要保存的数据
 */
function saveData(data) {
    let localStorage = getLocalStorage();
    localStorage[DATA_KEY] = JSON.stringify(data);
}

/**
 * 加载数据
 * @return 数据
 */
function loadData() {
    let localStorage = getLocalStorage();
    let data = localStorage[DATA_KEY];
    // 初始化数据库key
    if (!data) {
        data = '{}';
        localStorage[DATA_KEY] = data;
    }
    return $.parseJSON(data);
}

/**
 * 获取本地存储器
 * @returns {*} 本地存储器
 */
function getLocalStorage() {

    let localStorage = window.localStorage;
    if (!localStorage) {
        alert("[tmvictor-triggers-desc]提示:浏览器不支持使用本插件,请更新您的浏览器版本至最新版本!!!");
        return;
    }

    return localStorage;
}