tmvictor-triggers-desc

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

当前为 2023-01-17 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

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

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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;
}