MT论坛

MT论坛效果增强,如自动签到、自动展开帖子、滚动加载评论、显示uid、屏蔽用户、手机版小黑屋、编辑器优化等

目前为 2022-09-17 提交的版本。查看 最新版本

// ==UserScript==
// @name         MT论坛
// @namespace    http://tampermonkey.net/
// @description  MT论坛效果增强,如自动签到、自动展开帖子、滚动加载评论、显示uid、屏蔽用户、手机版小黑屋、编辑器优化等
// @version      2.5.4.6
// @author       WhiteSevs
// @icon         https://bbs.binmt.cc/favicon.ico
// @match        *://bbs.binmt.cc/*
// @compatible   edge Beta/Dev/Candy 测试通过
// @compatible   Yandex 测试通过
// @compatible   Kiwi 测试通过
// @license      GPL-3.0-only
// @grant        GM_addStyle
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// @grant        GM_setClipboard
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @run-at       document-start
// @supportURL   https://github.com/893177236/Monkey_script
// @require      https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.4.1/jquery.min.js
// @require      https://unpkg.com/any-touch/dist/any-touch.umd.min.js
// @require      https://gf.qytechs.cn/scripts/449471-viewer/code/Viewer.js?version=1081056
// @require      https://gf.qytechs.cn/scripts/449512-xtiper/code/Xtiper.js?version=1081249
// @require      https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js?version=1082044
// ==/UserScript==

(function () {
    'use strict';
    const log = {
        success: (str) => {
            console.log("%c" + str, "color: #00a5ff");
        },
        error: (str) => {
            console.trace("%c" + str, "color: #f20000");
        }
    }

    function tryCatch(func, params, errorFunc) {
        /* 捕获错误 */
        let ret = null;
        try {
            if (typeof func == "string") {
                ret = window.eval(func);
            } else {
                if (params == null) {
                    ret = func();
                } else {
                    ret = func(params);
                }
            }

        } catch (error) {
            console.log("%c" + (func.name ? func.name:func + "出现错误"), "color: #f20000");
            console.log("%c" + ("错误原因:" + error), "color: #f20000");
            console.trace(func);
            window.eval(errorFunc);
        } finally{
            return ret;
        }
    }
    let mt_config = {
        dom_obj: {
            beauty_select: function () {
                /* 下拉列表对象 */
                return document.getElementsByClassName("beauty-select")[0];
            },
            combobox_switch: function () {
                /* 复选框对象 */
                return document.getElementsByClassName("whitesevcheckbox")[0];
            },
            comiis_verify: function () {
                /* 帖子内各个人的信息节点【list】 */
                return document.getElementsByClassName("comiis_verify");
            },
            comiis_formlist: function () {
                /* 导航中最新、热门、精华、恢复、抢沙发的各个帖子【list】 */
                return document.getElementsByClassName("forumlist_li");
            },
            comiis_mmlist: function () {
                return document.getElementsByClassName("comiis_mmlist");
            },
            comiis_postli: function () {
                /* 帖子内评论,包括帖子内容主体,第一个就是主体【list】 */
                return document.getElementsByClassName("comiis_postli comiis_list_readimgs nfqsqi")
            },
            post_bottom_controls: function () {
                /* 帖子底部一栏控件 */
                return document.getElementsByClassName("comiis_znalist_bottom b_t cl")

            },
            post_list_of_comments: function () {
                /* 帖子内评论列表 */
                return $jq(".comiis_postlist.kqide");
            },
            post_next_commect: function () {
                /* 帖子内评论下一页的按钮 */
                return document.querySelector("div.comiis_page.bg_f>a:nth-child(3)");
            }
        },
        rexp: {
            bbs: /bbs.binmt.cc/,
            /* 论坛 */
            search_url: /bbs.binmt.cc\/search.php/g,
            /* 搜索页 */
            chat_url: /home.php\?mod=space&do=pm&subop=view/g,
            /* 聊天页 */
            home_url: /home.php\?mod=spacecp&ac=profile&op=info/g,
            /* 个人空间页 */
            home_url_brief: /home.php\?mod=space/g,
            /* 个人空间页简略url */
            home_url_at: /bbs.binmt.cc\/space-uid-/g,
            /* 个人空间页的@点进去 */
            home_kmisign_url: /bbs.binmt.cc\/(forum.php\?mod=guide&view=hot(|&mobile=2)|k_misign-sign.html)/g,
            /* 主页和签到页链接 */
            home_space_url: /bbs\.binmt\.cc\/home\.php\?mod=space&do=profile&mycenter/g,
            /* 【我的】 个人信息页链接 */
            home_space_pc_uid_url: /space-uid-(.*?).html/,
            /* PC 个人空间链接uid */
            reply_forum: /bbs.binmt.cc\/forum.php\?mod=post&action=reply/g,
            /* 回复的界面url */
            sign_url: "",
            navigation_url: "",
            community_url: /forum.php\?forumlist/,
            /* 社区 */
            forum_post: /(bbs.binmt.cc\/thread-|bbs.binmt.cc\/forum.php\?mod=viewthread)/g,
            /* 帖子链接 */
            forum_post_pc: /.*:\/\/bbs.binmt.cc\/thread.*/,
            /* 帖子链接-PC */
            forum_guide_url: /bbs.binmt.cc\/forum.php\?mod=guide/g,
            /* 导航链接 */
            forum_post_reply: /forum.php\?mod=post&action=reply/g,
            /* 帖子中回复的链接 */
            forum_post_page: '&page=(.*)',
            /* 帖子链接的当前所在页 page */
            forum_post_pc_page: 'thread-(.*?)-',
            /* PC帖子链接的当前所在页 page */
            forum_plate_text: /休闲灌水|求助问答|逆向教程|资源共享|综合交流|编程开发|玩机教程|建议反馈/g,
            /* 各版块名称 */
            plate_url: /bbs.binmt.cc\/forum-[0-9]{1,2}-[0-9]{1,2}.html/g,
            /* 板块链接 */
            formhash: /formhash=(.*)&/,
            /* 论坛账号的凭证 */
            font_special: /<font.*?>|<\/font>|<strike>|<strong>|<i>|<u>|align=".*?"|<br>[\s]*<br>/g,
            /* 帖子内特殊字体格式 */
            forum_post_guide_url: /bbs.binmt.cc\/page-[1-5].html|bbs.binmt.cc\/forum.php\?mod=guide/g,
            /* 帖子链接和导航链接 */
            mt_uid: /uid=(\d+)/,
            nologin: /member.php\?mod=logging&action=login(|&mobile=2)/g,
            /* 未登录(不可用) */
            pc_useragent: 'Windows',
            /* pc识别 */
            k_misign_sign: "bbs.binmt.cc\/k_misign-sign.html",
            post_forum: /forum.php\?mod=post&action=newthread/,
            /* 发布帖子 */
            edit_forum: /forum.php\?mod=post&action=edit/,
            /* 编辑帖子 */
        },
        GMRunStartTime: Date.now()
    }
    /*  mt全屏遮罩调用
        popup.open('<img src="https://bbs.binmt.cc/template/comiis_app/comiis/img/imageloading.gif" class="comiis_loading comiis_noloadimage">');
        关闭方式
        popup.close()
    */
    let utils = {
        formatDateStrToStamp(datastring) {
            /* 把字符串格式的时间(完整,包括日期和时间)格式化成时间戳 */
            let date = datastring;
            date = date.substring(0, 19);
            date = date.replace(/-/g, '/');
            let timestamp = new Date(date).getTime();
            /* let newDate = new Date(timestamp); */
            return timestamp;
        },
        formatTimeStrToStamp(timestring) {
            /* 字符串格式的时间(只有时间,没有日期)格式化成时间戳 */
            let today = new Date();
            let date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate() + " " + timestring;
            date = date.substring(0, 19);
            date = date.replace(/-/g, '/');
            let timestamp = new Date(date).getTime();
            /* let newDate = new Date(timestamp); */
            return timestamp
        },
        sortListByProperty(propertyName, model) {
            /* 数组按照内部某个值的大小比对排序,如[{"time":"2022-1-1"},{"time":"2022-2-2"}] */
            return function (after_obj, before_obj) {
                var beforeValue = before_obj[propertyName]; // 前
                var aferValue = after_obj[propertyName]; // 后
                if (model.toLowerCase() === "desc") {
                    if (aferValue > beforeValue) {
                        return -1
                    } else if (aferValue < beforeValue) {
                        return 1
                    } else {
                        return 0
                    }
                } else {
                    if (aferValue < beforeValue) {
                        return -1
                    } else if (aferValue > beforeValue) {
                        return 1
                    } else {
                        return 0
                    }
                }
            }
        },
        listToStringByValue(_list_, propertyName) {
            /* 数组根据 字段(int)合并成字符串 */
            let content = "";
            Array.from(_list_).forEach((item) => {
                content = content + item[propertyName];
            })
            return content
        },
        jsonToArray(_json_){
            /* json内的值合并到数组里 */
            let retArray = [];
            Object.keys(_json_).forEach(function (key){
                retArray = retArray.concat(_json_[key]);
            })
            return retArray;
        },
        randomArr(items) {
            /* 随机数组 */
            var item = items[Math.floor(Math.random() * items.length)];
            return item;
        },
        randbix(n, m) {
            /* 随机小数点 */
            bix = Math.random().toFixed(2);
            num = Number(utils.randomNum(n, m)) + Number(bix);
            r2 = utils.randomNum(2, 10);
            return num.toFixed(r2);
        },
        randomNum(n, m) {
            /* 随机数字 */
            var rander = Math.round(Math.random() * (m - n)) + n;
            return rander;
        },
        getFormatTime(formatStr) {
            /* 获取自定义格式化时间, yyyy-MM-dd HH:mm:ss 2022-08-21 23:59:00 */
            /**
             *  yyyy 年
             *  MM 月
             *  dd 天
             *  HH 时 (24小时制)
             *  hh 时 (12小时制)
             *  mm 分
             *  ss 秒
             */
            function checkTime(i) {
                if (i < 10) return "0" + i;
                return i;
            }

            function timeSystemChange(_hour_) {
                /* 时间制修改 24小时制转12小时制 */
                return _hour_ > 12 ? _hour_ - 12 : _hour_;
            }
            var time = new Date();
            var yyyy = time.getFullYear(); /* 获取 年 */
            var MM = checkTime(time.getMonth() + 1); /* 获取 月 */
            var dd = checkTime(time.getDate()); /* 获取 日 */
            var HH = checkTime(time.getHours()); /* 获取 时 (24小时制) */
            var hh = checkTime(timeSystemChange(time.getHours())); /* 获取 时 (12小时制) */
            var mm = checkTime(time.getMinutes()); /* 获取 分 */
            var ss = checkTime(time.getSeconds()); /* 获取 秒 */
            /****当时、分、秒、小于10时,则添加0****/

            formatStr = formatStr.replace(/yyyy/g, yyyy);
            formatStr = formatStr.replace(/MM/g, MM);
            formatStr = formatStr.replace(/dd/g, dd);
            formatStr = formatStr.replace(/HH/g, HH);
            formatStr = formatStr.replace(/hh/g, hh);
            formatStr = formatStr.replace(/mm/g, mm);
            formatStr = formatStr.replace(/ss/g, ss);
            return formatStr;

        },

        checkClickInDOM(obj) {
            /* 检测点击范围是否在该元素区域内 */
            var x = Number(window.event.clientX) /* 鼠标相对屏幕横坐标 */
            var y = Number(window.event.clientY) /* 鼠标相对屏幕纵坐标 */

            var obj_x_left = Number(obj.getBoundingClientRect().left) /* obj相对屏幕的横坐标 */
            var obj_x_right = Number(
                obj.getBoundingClientRect().left + obj.clientWidth
            ) /* obj相对屏幕的横坐标+width */


            var obj_y_bottom = Number(
                obj.getBoundingClientRect().top + obj.clientHeight
            ) /* obj相对屏幕的纵坐标+height */
            var obj_y_top = Number(obj.getBoundingClientRect().top) /* obj相对屏幕的纵坐标 */
            if ((x >= obj_x_left && x <= obj_x_right && y >= obj_y_top && y <= obj_y_bottom) || obj.outerHTML.indexOf(window.event.target.innerHTML) != -1) {
                return true
            } else {
                return false
            }
        },
        asyncSetTimeOut(fnStr, delayTime) {
            /* 同步执行延时函数 */
            return new Promise(res => {
                setTimeout(() => {
                    let ret = tryCatch(fnStr);
                    res(ret);
                }, delayTime);
            })
        },
        sleep(delayTime) {
            /* 暂停执行xx毫秒,需要await */
            return new Promise(res => {
                setTimeout(() => {
                    res();
                }, delayTime);
            })
        },
    }

    function envCheck() {
        /* 脚本运行环境修复,兼容部分函数 GM_xmlhttpRequest x浏览器进行了兼容,调用方式为GM.xmlHttpRequest,但会检测是否同源请求,所以不可修改headers */
        let checkStatus = true;
        let isFailedFunction = [];
        console.log("正在检测脚本环境...");
        if (typeof $ != 'undefined') {
            window.$jq = $.noConflict(true); /* 为什么这么写,X浏览器加载jq会替换网页上的jq */
            console.log(`check: %c $jq %c √ jQuery版本:${$jq.fn.jquery}`, "background:#24272A; color:#ffffff", "color:#00a5ff");
            if ($jq.fn.jquery != "3.4.1") {
                console.log("jQuery加载错误,如果是非油猴加载本脚本方式,请放到网页加载完毕后执行");

                return false;
            }
            if (typeof jQuery != 'undefined') {
                console.log(`check: %c $ %c √ 网站的jQuery版本:${$.fn ? $.fn.jquery : jQuery.fn.jquery}`, "background:#24272A; color:#ffffff", "color:#00a5ff");
            }
        } else {
            checkStatus = false;
            isFailedFunction = isFailedFunction.concat("GM_xmlhttpRequest");
            console.log("check: %c $ %c ×", "background:#24272A; color:#ffffff", "color:#f90000");
        }
        if (typeof GM_xmlhttpRequest == "undefined") {
            if (typeof GM != "undefined" && typeof GM.xmlHttpRequest != "undefined") {
                window.GM_xmlhttpRequest_isRepair = false;
                window.GM_xmlhttpRequest = (param) => {
                    GM.xmlHttpRequest(param);
                };
                console.log("check: %c GM_xmlhttpRequest %c √ 替换成当前环境的GM中", "background:#24272A; color:#ffffff");
            } else {
                window.GM_xmlhttpRequest_isRepair = true;
                isFailedFunction = isFailedFunction.concat("GM_xmlhttpRequest");
                console.log(`check: %c GM_xmlhttpRequest %c 修复,该函数不存在,替换成ajax`, "background:#24272A; color:#ffffff", "background:#fff;");
                window.GM_xmlhttpRequest = (f) => {
                    console.log(`$jq.ajax请求 url: ${f.url}`);
                    console.log(f);
                    let headers_options = {};
                    let headers_options_key = [
                        "Accept-Charset",
                        "Accept-Encoding",
                        "Access-Control-Request-Headers",
                        "Access-Control-Request-Method",
                        "Connection",
                        "Content-Length",
                        "Cookie",
                        "Cookie2",
                        "Date",
                        "DNT",
                        "Expect",
                        "Host",
                        "Keep-Alive",
                        "Origin",
                        "Referer",
                        "TE",
                        "Trailer",
                        "Transfer-Encoding",
                        "Upgrade",
                        "User-Agent",
                        "Via"
                    ];
                    if (f.headers != null) {
                        Array.from(headers_options_key).forEach(item => {
                            delete f.headers[item]
                        })
                    } else {
                        f.headers = {};
                    }
                    $jq.ajax({
                        url: f.url,
                        type: f.method,
                        data: f.data,
                        timeout: f.timeout,
                        dataType: f.responseType,
                        headers: headers_options,
                        success: (r) => {
                            f.onload(r)
                        },
                        error: (r) => {
                            if (r.status == 200) {
                                f.onload(r)
                            } else {
                                f.onerror(r);
                            }
                        }
                    })
                }
            }
        } else {
            window.GM_xmlhttpRequest_isRepair = false;
            console.log("check: %c GM_xmlhttpRequest %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }

        var loadNetworkResource = [];
        window.GM_asyncLoadScriptContent = (url, replaceStatus) => {
            /* 异步执行跨域js资源 js */
            if (loadNetworkResource.indexOf(url) != -1) {
                console.log("已加载该js:", url);
                return
            }
            replaceStatus = replaceStatus == null ? true : replaceStatus;
            return new Promise(res => {
                GM_xmlhttpRequest({
                    url: url,
                    method: "GET",
                    async: false,
                    timeout: 10000,
                    onload: (r) => {
                        let execStatus = false;
                        let retText = r.responseText;
                        if (replaceStatus) {
                            retText = retText.replace(/\$/g, "$jq");
                            retText = retText.replace(/jQuery/g, "$jq");
                        }
                        try {
                            eval(retText);
                            execStatus = true;
                            loadNetworkResource = loadNetworkResource.concat(url);
                        } catch (error) {
                            console.log("eval执行失败" + error);
                            execStatus = false;
                        }
                        /* try {
                            window.eval(retText);
                            execStatus = true;
                            loadNetworkResource = loadNetworkResource.concat(url);
                         }catch (error) {
                            console.log("window.eval执行失败 " + error);
                            execStatus = false;
                         }*/
                        res(execStatus);
                    },
                    onerror: () => {
                        console.log("网络异常,加载JS失败", url);
                        res(false);
                    }
                })
            })
        }
        window.GM_asyncLoadScriptNode = (url) => {
            return new Promise(res => {
                let tempNode = document.createElement("script");
                tempNode.setAttribute("src", url);
                document.head.append(tempNode);
                tempNode.onload = () => {
                    res();
                }
            })
        }
        window.GM_asyncLoadStyleSheet = (url) => {
            /* 异步添加跨域css资源 */
            if (loadNetworkResource.indexOf(url) != -1) {
                console.log("已加载该css:", url);
                return
            }
            loadNetworkResource = loadNetworkResource.concat(url);
            let cssNode = document.createElement("link");
            cssNode.setAttribute("rel", "stylesheet");
            cssNode.setAttribute("href", url);
            cssNode.setAttribute("type", "text/css");
            document.head.append(cssNode);
        }
        if (typeof GM_getValue == "undefined") {
            window.GM_getValue = (key, defaultValue) => {
                let value = window.localStorage.getItem(key);
                if (typeof value == "string" && value.trim() != String()) {
                    value = JSON.parse(value);
                } else if (defaultValue != null) {
                    value = defaultValue;
                }
                return value
            };
            console.log("check: %c GM_getValue %c √ 修复", "background:#24272A; color:#ffffff", "color:#00a5ff");
        } else {
            console.log("check: %c GM_getValue %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }
        if (typeof GM_setValue == "undefined") {
            window.GM_setValue = (key, value) => {
                window.localStorage.setItem(key, JSON.stringify(value));
            };
            console.log("check: %c GM_setValue %c √ 修复", "background:#24272A; color:#ffffff", "color:#00a5ff");
        } else {
            console.log("check: %c GM_setValue %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }
        if (typeof GM_deleteValue == "undefined") {
            window.GM_deleteValue = (key) => {
                window.localStorage.removeItem(key);
            };
            console.log("check: %c GM_deleteValue %c √ 修复", "background:#24272A; color:#ffffff", "color:#00a5ff");
        } else {
            console.log("check: %c GM_deleteValue %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }
        if (typeof GM_addStyle == "undefined") {
            window.GM_addStyle = (styleText) => {
                let cssDOM = document.createElement("style");
                cssDOM.setAttribute("type", "text/css");
                cssDOM.innerHTML = styleText;
                document.head.appendChild(cssDOM);
                return cssDOM;
            };
            console.log("check: %c GM_addStyle %c √ 修复", "background:#24272A; color:#ffffff", "color:#00a5ff");
        } else {
            console.log("check: %c GM_addStyle %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }
        if (typeof GM_setClipboard == "undefined") {
            window.GM_setClipboard = (text) => {
                let clipBoardDOM = document.createElement("input");
                clipBoardDOM.type = "text";
                clipBoardDOM.setAttribute("style", "opacity:0;position:absolute;");
                clipBoardDOM.id = "whitesevClipBoardInput";
                document.body.append(clipBoardDOM);
                let clipBoardInputNode = document.getElementById("whitesevClipBoardInput");
                clipBoardInputNode.value = text;
                clipBoardInputNode.removeAttribute("disabled");
                clipBoardInputNode.select();
                document.execCommand('copy');
                clipBoardInputNode.remove();
            };
            console.log("check: %c GM_setClipboard %c √ 修复", "background:#24272A; color:#ffffff", "color:#00a5ff");
        } else {
            console.log("check: %c GM_setClipboard %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }
        if (typeof unsafeWindow == "undefined") {
            window.unsafeWindow = window;
            console.log("check: %c unsafeWindow %c √ 修复", "background:#24272A; color:#ffffff", "color:#00a5ff");
        } else {
            console.log("check: %c unsafeWindow %c √", "background:#24272A; color:#ffffff", "color:#00a5ff");
        }
        if (checkStatus) {
            console.log(`脚本环境检测结果: 通过`);
        } else {
            let isFailedStr = "";
            Array.from(isFailedFunction).forEach(item => {
                isFailedStr += (item + "、");
            })
            isFailedStr = isFailedStr.replace(/、$/, '')
            console.log(`脚本环境检测结果: ${isFailedStr}失败`);
        }


        return checkStatus;
    }

    const pc = {
        collectionForumPost() {
            /* 悬浮按钮-添加收藏帖子功能 */
            if(!window.location.href.match(mt_config.rexp.forum_post)){
                return;
            }
            var own_formhash = document.querySelector("#scform > input[type=hidden]:nth-child(1)").value;
            var collect_href_id = window.location.href.match(mt_config.rexp.forum_post_pc_page)[1];
            var collect_href = 'https:\/\/bbs.binmt.cc\/home.php?mod=spacecp&ac=favorite&type=thread&id=' + collect_href_id + '&formhash=' + own_formhash;
            var new_collect = document.createElement('span');
            var old_Suspended = document.getElementById("scrolltop");
            new_collect.innerHTML = '<a href="' + collect_href + '" id="k_favorite" onclick="showWindow(this.id, this.href, \'get\', 0);" onmouseover="this.title = $(\'favoritenumber\').innerHTML + \' 人收藏\'" ><img src="https:\/\/s1.ax1x.com\/2020\/04\/29\/JTk3lD.gif" height="26" width="26" style="position:absolute;top:10px;left:11px"><\/a>';
            old_Suspended.insertAdjacentElement('afterBegin', new_collect);
        },
        detectUserOnlineStatus() {
            /* 探测用户在线状态 */
            if (window.location.href.match(mt_config.rexp.forum_post_pc)) {
                var quanju = [];
                var cishu = 0;
                for (var sss = document.getElementsByClassName("pls favatar"), ll = 0; ll < sss.length; ll++) {
                    var sendmessage = sss[ll].getElementsByClassName("comiis_o cl")
                    if (sendmessage.length == 0) {} else {
                        var sendmessageurl = sendmessage[0].getElementsByTagName('a')[1].href;

                        let xhr = new XMLHttpRequest();
                        xhr.open("GET", sendmessageurl, false);
                        xhr.onreadystatechange = function () {
                            if (xhr.readyState == 4) {
                                let pattern = /正在.*]/g;
                                let str = xhr.responseText;
                                let newstr = str.match(pattern)[0];
                                quanju.push(newstr);
                            }
                        }
                        xhr.send();
                        let offLineStaus = quanju[cishu].match('离线') ? true : false;
                        cishu = cishu + 1;
                        var onlineStatusImage = document.createElement('img');
                        onlineStatusImage.src = offLineStaus ? 'https://cdn-bbs.mt2.cn/static/image/smiley/doge/54.png' : 'https://cdn-bbs.mt2.cn/static/image/smiley/doge/35.png';
                        onlineStatusImage.smilied = offLineStaus ? '1353' : '1384';
                        onlineStatusImage.border = "0";
                        onlineStatusImage.style = 'float:right';
                        sss[ll].insertAdjacentElement('afterbegin', onlineStatusImage);
                    }
                }
            }
        },
        latestReleaseForumPost() {
            /* 最新发表 */
            var latestReleaseNode = $jq(`<li id="latest_publication"><a href="https://bbs.binmt.cc/forum.php?mod=guide&view=newthread" hidefocus="true" title="最新发表">最新发表</a></li>`);
            $jq("#comiis_nv .wp.comiis_nvbox.cl ul").append(latestReleaseNode);
            if (window.location.href == "https://bbs.binmt.cc/forum.php?mod=guide&view=newthread") {
                $jq("#mn_forum_10").removeClass("a");
                latestReleaseNode.find("a").css("background", 'url("https://cdn-bbs.mt2.cn/template/comiis_mi/img/nv_a.png") repeat-x 50% -50px');
            }
        },
        main() {
            /* 电脑版函数按顺序加载 */
            window.popup = {
                open(text,model){
                    xtip.msg(text);
                }
            }
            tryCatch(pc.latestReleaseForumPost);
            /* tryCatch(pc.detectUserOnlineStatus); */
            tryCatch(mobile.identifyLinks);
            tryCatch(pc.collectionForumPost);
            tryCatch(pc.quickReply);
            tryCatch(pc.showUserLevel);
            tryCatch(mobile.autoSignIn,false);
        },
        quickReply() {
            /* 快捷回复 */
            if(!window.location.href.match(mt_config.rexp.forum_post)){
                return;
            }
            document.querySelector("#scrolltop > span:nth-child(2) > a").onclick = function () {
                showWindow('reply', this.href);
                setTimeout(
                    'document.querySelector("#moreconf").innerHTML=document.querySelector("#moreconf").innerHTML+\'<button type="button" id = "insertspace2" style="float: left;">一键空格<\/button>\';document.querySelector("#insertspace2").onclick=function(){document.querySelector("#postmessage").value=document.querySelector("#postmessage").value+"           ";}', 200)
            }
        },
        async repairPCNoLoadResource() {
            /* 修复电脑版未加载的js资源 */
            await GM_asyncLoadScriptNode("https://cdn-bbs.mt2.cn/static/js/smilies.js?x6L", false);
            await GM_asyncLoadScriptNode("https://cdn-bbs.mt2.cn/static/js/common.js?hsy", false);
        },
        showUserLevel() {
            /* 显示用户具体等级 */
            var user_avatar = document.getElementsByClassName("pls favatar");
            var i = 0;
            var user_level = "0级";
            for (i = 0; i < user_avatar.length; i++) {
                var user_current_level = user_avatar[i].getElementsByTagName("em")[1].outerText;
                var user_info = user_avatar[i].getElementsByTagName("tr")[0];
                var user_level_node = document.createElement("td");
                switch (user_current_level) {
                    case "幼儿园":
                        user_level = "1级";
                        break;
                    case "小学生":
                        user_level = "2级";
                        break;
                    case "初中生":
                        user_level = "3级";
                        break;
                    case "高中生":
                        user_level = "4级";
                        break;
                    case "大学生":
                        user_level = "5级";
                        break;
                    case "硕士生":
                        user_level = "6级";
                        break;
                    case "博士生":
                    case "实习版主":
                    case "版主":
                    case "审核员":
                        user_level = "7级";
                        break;
                    case "博士后":
                    case "超级版主":
                    case "网站编辑":
                        user_level = "8级";
                        break;
                    case "管理员":
                    case "信息监察员":
                        user_level = "9级";
                        break;
                }
                user_level_node.innerHTML = '<p><a class="dj">' + user_level + '<\/a><\/p>Lv';
                user_info.appendChild(user_level_node);
            }
        },


    }

    const mobile = {
        autoExpendFullTextByForumPost() {
            /* 自动展开帖子内容 */
            if (GM_getValue("v18") && location.href.match(mt_config.rexp.forum_post)) {
                GM_addStyle(`
                div.comiis_message.bg_f.view_one.b_b.cl.message > div.comiis_messages.comiis_aimg_show.cl{
                    max-height: inherit !important;
                    overflow-y: inherit !important;
                    position: inherit !important;
                }
                .comiis_lookfulltext_key,
                .comiis_lookfulltext_bg{
                    display: none !important;
                }`)
            }
        },
        autoSignIn(isMobile) {
            /* 签到 */
            function getFormHash() {
                /* 获取账号的formhash */
                return document.querySelector("input[name=formhash]") ? document.querySelector("input[name=formhash]").value : document.querySelector("div[class=sidenv_exit]>a").href.match(mt_config.rexp.formhash)[1];
            }

            function danmurun(run_time, con, line) {
                /* 弹幕 */
                function randDanmu() {
                    let icon = utils.randomArr(['', 's', 'e', 'w', 'a', 'h', 'https://cdn-bbs.mt2.cn/template/comiis_app/comiis/img/favicon.ico']);
                    let type = utils.randomArr(['w', 'b']);
                    let danmuinfo = ["已签到", "请刷新", "不要呆着了", "快点滴", "手机要爆炸了", "麻溜的", "说的就是你", "看什么看", "懂不懂自动签到的含金量啊", "别迷恋哥,哥只是个传说", "你不懂自动签到的含金量", "花会枯萎,自动签到永不凋零"];
                    if (con) {
                        danmuinfo = danmuinfo.concat("恭喜你签到获取" + con + "金币奖励");
                    }
                    if (line) {
                        danmuinfo = danmuinfo.concat("你的签到排行为: 第 " + line);
                    }
                    let randTip = utils.randomArr(danmuinfo);
                    xtip.danmu(randTip, {
                        icon: icon,
                        type: type,
                    });
                }
                return setInterval(function () {
                    randDanmu();
                }, run_time);
            }

            function signIn(_formhash_) {
                /* 签到 */
                console.log("发送签到请求");
                GM_xmlhttpRequest({
                    method: "get",
                    url: "/k_misign-sign.html?operation=qiandao&format=button&formhash=" + _formhash_ + "&inajax=1&ajaxtarget=midaben_sign",
                    headers: {
                        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"
                    },
                    timeout: 5000,
                    onload: (r) => {
                        console.log(r);
                        GM_setValue("mt_sign", parseInt(utils.getFormatTime("yyyyMMdd")));
                        if (r.lastChild || typeof r == "string") {
                            /* ajax函数版本 */
                            if (typeof r == "string") {
                                popup.open("签到: 成功", "alert");
                                var intervalId = danmurun(450);
                                setTimeout(function () {
                                    /* 10秒后关闭 */
                                    clearInterval(intervalId);
                                    popup.close();
                                }, 50000);
                                return;
                            };

                            let signInContent = r.lastChild.firstChild.nodeValue;
                            if (signInContent.indexOf("您已经被列入黑名单") != -1) {
                                popup.open("签到: 您已经被列入黑名单", "alert");
                                return
                            }
                            if (signInContent.indexOf("今日已签" != -1)) {
                                popup.open("签到: 今日已签", "alert");
                                return
                            }
                        } else {
                            /* GM_xmlhttpRequest版本 */
                            let CDATA = r.responseText.match(/<\!\[CDATA\[([\s\S]*)\]\]>/);
                            CDATA = CDATA[CDATA.length - 1];
                            let CDATA_Node = $jq("<div>" + CDATA + "</div>");
                            let content = CDATA_Node.text();
                            console.log(content);
                            if (content.indexOf("您已经被列入黑名单") != -1) {
                                popup.open("签到: 您已经被列入黑名单", "alert");
                                return
                            }
                            if (content.indexOf("今日已签") != -1) {
                                popup.open("签到: 今日已签", "alert");
                                return
                            }
                            let signIn_con = CDATA_Node.find(".con"); /* 签到奖励 */
                            let signIn_line = CDATA_Node.find(".line"); /* 签到排名 */
                            if (signIn_con.length && signIn_line.length) {
                                let con = signIn_con.text().match(/([0-9]+)金币/);
                                let line = signIn_line.text().match(/([0-9]+)/);
                                con = con[con.length - 1];
                                line = line[line.length - 1];
                                popup.open(`签到: ${con}金币,第 ${line} 名`, "alert");
                                var intervalId = danmurun(450, con, line);
                                setTimeout(function () {
                                    /* 10秒后关闭 */
                                    clearInterval(intervalId);
                                    popup.close();
                                }, 50000);
                                return
                            }
                            popup.open("签到: 未知结果,请查看控制台信息", "alert");
                        }
                        if (typeof r == "string") {
                            /* 手机版本的签到成功是没有返回值的 */
                            popup.open("签到: 成功", "alert");
                            var intervalId = danmurun(450);
                            setTimeout(function () {
                                /* 10秒后关闭 */
                                clearInterval(intervalId);
                                popup.close();
                            }, 50000);
                            return
                        }

                    },
                    onerror: (r) => {
                        console.log(r);
                        console.log("签到: 网络异常");
                        popup.open("签到: 网络异常", "alert");
                    }
                })

            }

            if (!GM_getValue("v17")) {
                return;
            }
            if(isMobile){
                if ((document.querySelector("div[class=comiis_dlq]>a") ||
                !document.querySelector(".sidenv_user") ||
                document.querySelector(".sidenv_user").getAttribute("href").match(mt_config.rexp.nologin)) ) {
                console.log("当前尚未登录(不可用)账号");
                popup.open("当前尚未登录(不可用)账号", "alert");
                return;
                }
            }else{
                if(document.querySelector("#comiis_nv .comiis_dlq")){
                    console.log("当前尚未登录(不可用)账号");
                    popup.open("当前尚未登录(不可用)账号", "alert");
                    return;
                }
            }
            
            let formhash = getFormHash();
            if (formhash == null) {
                console.log("获取账号formhash失败");
                popup.open("获取账号formhash失败", "alert");
                return;
            }

            if (utils.getFormatTime("HH") == "23" && parseInt(utils.getFormatTime("mm")) >= 55) {
                /* 倒计时开启 */
                console.log("开启倒计时自动签到");
                let intervalId = setInterval(() => {
                    let current_time = utils.getFormatTime("HH:mm:ss");
                    if (utils.getFormatTime("hh:mm") == "00:00") {
                        signIn(formhash);
                        clearInterval(intervalId);
                    } else {
                        popup.open(`倒计时: ${current_time}`, "alert");
                    }
                }, 1000);
                return;
            }
            if (GM_getValue("mt_sign") == parseInt(utils.getFormatTime("yyyyMMdd"))) {
                return;
            } else {
                signIn(formhash);
            }
        },
        blackHome: {
            showBlackHomeView: async () => {
                /* 显示小黑屋界面 */
                if (typeof $jq.NZ_MsgBox == "undefined") {
                    popup.open("加载NZMsgBox.js中", "alert");
                    await GM_asyncLoadScriptNode("https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js");
                    if (typeof $jq.NZ_MsgBox == "undefined") {
                        popup.open("网络异常,加载NZMsgBox.js失败", "alert");
                        return;
                    } else {
                        console.log("成功加载NZMsgBox.js");
                    }
                }
                $jq.NZ_MsgBox.alert({
                    title: "小黑屋名单",
                    content: "获取中",
                    type: "",
                    location: "center",
                    buttons: {
                        confirm: {
                            text: "确定"
                        }
                    }
                });
                let blacklistret = await mobile.blackHome.getBlackList('');
                if (blacklistret == null) {
                    $jq(".msgcon").html("获取小黑屋名单失败,请重新获取");
                    return
                };
                let blackListJSON = window.eval('(' + blacklistret + ')')["data"];
                let blackContent = '';

                function jsonToArrayWithAddPropertyTime(data) {
                    let _list_ = [];
                    let _no_time_list_ = [];
                    console.log(data);
                    $jq.each(data, function (index, value) {
                        let date = value["dateline"].match(/([0-9]{4}-[0-9]{1,2}-[0-9]{1,2}[\s]*[0-9]{1,2}:[0-9]{1,2})/g);
                        if (date == null) {
                            let noTimedata = value["dateline"].match(/([0-9]+)[\s\S]*(秒|分钟|小时|天)前/);
                            if(!noTimedata){
                                /* 匹配为空,可能是昨天&nbsp;09:34 这种类型的 */
                                noTimedata = value["dateline"].match(/([昨|前])天[\s\S]*(\d{2}):(\d{2})/);
                                let _num_ = parseFloat(noTimedata[1].replace(/昨/g,1).replace(/前/g,2));
                                let percentage = (parseInt(noTimedata[2])*60 + parseInt(noTimedata[3])) / 1440;
                                _num_ = _num_ +  percentage;
                                noTimedata = [noTimedata[0],_num_.toString(),"天"]
                            }
                            let num =  noTimedata[1];
                            let unit = noTimedata[2].replace("秒",1).replace("分钟",10).replace("小时",100).replace("天",1000);
                            
                            num = num.replace(/半/g,0.5);
                            num = parseFloat(num);
                            noTimedata = num * 10 * unit;
                            value["sortTime"] = noTimedata;
                            _no_time_list_ = _no_time_list_.concat(value);
                            return
                        } else {
                            date = date[0]
                        };
                        value["time"] = utils.formatDateStrToStamp(date);
                        _list_ = _list_.concat(value);
                    });

                    _list_.sort(utils.sortListByProperty("time", "desc"));

                    if(_no_time_list_.length){
                        _no_time_list_.sort(utils.sortListByProperty("sortTime","asc"));
                    }
                    _list_ = _no_time_list_.concat(_list_);
                    return _list_;
                }

                let newBlacklist = jsonToArrayWithAddPropertyTime(blackListJSON);
                console.log(newBlacklist);
                $jq.each(newBlacklist, function (index, value) {
                    let blackreson = (value["reason"] == "") ? "无" : value["reason"];
                    blackContent = blackContent + `
                    <tbody id="autolist">
                        <tr>
                            <td class="k_misign_lu" style="text-align: center;overflow-wrap: break-word;width: 76px;">
                                <a href="home.php?mod=space&uid=` + value["uid"] + `&do=profile">
                                    <img src="https://avatar-bbs.mt2.cn/uc_server/avatar.php?uid=` + value["uid"] + `&amp;size=small">
                                </a>
                                <div class="f_c" style="display: flex;justify-content: center;margin-top: 5px;word-break: break-word;">
                                    <h4>
                                        <a href="home.php?mod=space&uid=` + value["uid"] + `&do=profile">` + value["username"] + `</a>
                                    </h4>
                                </div>
                            </td>
                            <td class="k_misign_ll" style="width: 10px;">
                                <span></span>
                            </td>
                            <td class="k_misign_lc" style="max-width: 200px;">
                                <div class="f_c" style="display: flex;justify-content: space-between;">
                                    <h4>
                                        <div class="y">操作时间: ` + value["dateline"] + `</div>
                                    </h4>
                                </div>
                                <div class="f_c" style="display: flex;justify-content: space-between;">
                                    <p class="f_0">操作行为: ` + value["action"] + `</p>
                                </div>
                                <div class="f_c" style="display: flex;justify-content: space-between;">
                                    <p class="f_0">过期时间: ` + value["groupexpiry"] + `</p>
                                </div>
                                <div class="f_c" style="display: flex;justify-content: space-between;">
                                    <p class="f_0" style="color: #fc2a2a !important;">操作人员: ` + value["operator"] + `</p>
                                </div>
                                <div class="f_c" style="display: flex;justify-content: space-between;">操作理由: ` + blackreson + `</div>
                                
                            </td>
                        </tr>
                        <tr style="height:15px;"></tr>
                    </tbody>
                    `;
                    /* console.log(value); */
                })
                let mainBlackContent = '<table id="misign_list" style="overflow: auto;height: inherit;margin: 15px 0px;width: 100%;">' + blackContent + "</table>";
                $jq(".msgcon").html(mainBlackContent);
                $jq(".NZ-MsgBox-alert.NZ-MsgBox--motion").css("top", "100px");
                $jq(".msgcon").css("height", "400px");

            },
            insertMobileBlackHomeButton: async function () {
                /* 插入手机版查看小黑屋的按钮 */
                if ((window.location.href.match(mt_config.rexp.bbs) != null) && (GM_getValue("v30"))) {


                    let comiis_left_Touch = document.createElement("li");
                    comiis_left_Touch.className = "comiis_left_Touch";
                    let black_home_ele = document.createElement("a");
                    black_home_ele.setAttribute("href", "javascript:;");
                    black_home_ele.className = "blacklist";
                    black_home_ele.innerHTML = `
                        <div class="styli_tit f_c">
                            <i class="comiis_font" style="color: #000;"></i>
                        </div>
                        <div class="flex">小黑屋</div>`;
                    GM_addStyle(`
                    .NZ-MsgBox-alert .msgcontainer .msgtitle {
                        text-align: center !important;
                    }
                    #autolist .k_misign_lu img {
                        width: 40px;
                        height: 40px;
                        -moz-border-radius: 20px;
                        -webkit-border-radius: 20px;
                        border-radius: 20px;
                    }
                    .k_misign_lc .f_c{
                        margin: 5px 0px;
                    }
                    tbody#autolist,
                    tbody#autolist tr {
                        width: auto;
                    }`)
                    black_home_ele.onclick = () => {
                        mobile.blackHome.showBlackHomeView();
                    }
                    /*
                     Array.from(document.querySelectorAll(".comiis_myinfo_list.bg_f.cl")).forEach((ele) => {
                         if (ele.innerText.match(/消息提醒|资料设置|我的积分|我的勋章|我的道具/)) {
                             ele.append(black_home_ele);
                             return;
                         }
                    })
                    */
                    comiis_left_Touch.append(black_home_ele);
                    $jq(".comiis_sidenv_box .sidenv_li .comiis_left_Touch.bdew").append(comiis_left_Touch);
                }
            },
            getBlackList: async (cid) => {
                /* 获取黑名单列表 */
                return new Promise(res => {
                    GM_xmlhttpRequest({
                        url: "https://bbs.binmt.cc/forum.php?mod=misc&action=showdarkroom&cid=" + cid + "&t=&ajaxdata=json",
                        timeout: 5000,
                        method: "GET",
                        async: false,
                        headers: {
                            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53",
                        },
                        onload: (r) => {
                            res(r.responseText);
                        },
                        onerror: (r) => {
                            console.log(r);
                            popup.open("网络异常,请重新获取", "alert");
                            res();
                        }
                    })
                })
            }
        },
        blacklistShieldUsersOrBlocks() {
            /* 黑名单-屏蔽用户或板块 */
            if (!window.location.href.match(mt_config.rexp.home_space_url)) {
                return
            }
            var white_space_ele = document.createElement("div");
            var black_list_ele = document.createElement("div");
            white_space_ele.className = "styli_h cl";
            black_list_ele.setAttribute("id", "blacklistallmain");
            black_list_ele.className = "comiis_myinfo_list bg_f cl";
            black_list_ele.innerHTML = `<li class="comiis_styli b_b cl">
                                                <textarea name="blacklistuid" id="blacklistuid" placeholder="输入想要屏蔽的用户的uid,多个uid用英文逗号分隔,如1234,5678,9231"></textarea>
                                                <textarea name="blacklistplate" id="blacklistplate" placeholder="输入想要屏蔽的板块,多个板块用顿号分隔,如求助问答、休闲灌水"></textarea>
                                                <a href="javascript:void(0)" id="blacklistsave" class="comiis_flex comiis_styli bg_f b_t cl">
                                                    <div class="flex">保存</div>
                                                </a>
                                            </li>`;
            GM_addStyle(`
                #blacklistallmain{
                    height: 232px;
                }
                #blacklistallmain li.comiis_styli{
                    height: 180px;
                }
                #blacklistallmain #blacklistuid{
                    width: 90%; 
                    resize: none; 
                    opacity: 0.7; 
                    height: 70% !important; 
                    line-height: inherit;
                    -webkit-appearance: none;
                    border: none !important;
                    font-size: 14px;
                    vertical-align: middle;
                    background-color: transparent;
                    border-bottom: 3px solid #efefef !important;
                }
                #blacklistallmain #blacklistplate{
                    width: 90%; 
                    resize: none; 
                    opacity: 0.7; 
                    height: 30% !important;
                    line-height: inherit;
                    -webkit-appearance: none;
                    border: none !important;
                    font-size: 14px;
                    vertical-align: middle;
                    background-color: transparent;
                }
                #blacklistsave{
                    text-align: center;
                    background: transparent !important;
                    border-color: transparent !important;
                }
                `);
            let mt_commis_menu = document.getElementsByClassName("comiis_myinfo cl")[0];
            mt_commis_menu.appendChild(white_space_ele);
            mt_commis_menu.appendChild(black_list_ele);
            mt_commis_menu.appendChild(white_space_ele);
            document.getElementById("blacklistuid").textContent = GM_getValue("blacklistuid") ? GM_getValue("blacklistuid") : "";
            document.getElementById("blacklistplate").textContent = GM_getValue("blacklistplate") ? GM_getValue("blacklistplate") : "";
            document.getElementById("blacklistsave").onclick = () => {
                let blackListUIDValue = document.getElementById("blacklistuid").value;
                let blackListPlateValue = document.getElementById("blacklistplate").value;
                GM_setValue("blacklistuid", blackListUIDValue);
                GM_setValue("blacklistplate", blackListPlateValue);
                popup.open("保存成功", "alert");
            }
        },
        chartBed: {
            ret_code: {
                200: {
                    200: "删除成功"
                },
                500: {
                    101: "重复上传",
                    400: "请求被拒绝,token错误",
                    401: "请求被拒绝",
                },
                400: {
                    100: "删除失败,图片已删除",
                    101: "重复上传",
                }
            },
            storage: {
                add: function (web, id_encoded, url, thumb_url, name) {
                    let localData = GM_getValue("chartBedsImagesHistory") ? GM_getValue("chartBedsImagesHistory") : [];
                    let saveData = localData.concat({
                        "web": web,
                        "id_encoded": id_encoded,
                        "url": url,
                        "thumb_url": thumb_url,
                        "name": name
                    });
                    GM_setValue("chartBedsImagesHistory", saveData);
                },
                delete: function (_web_, id_encoded) {
                    let localData = GM_getValue("chartBedsImagesHistory") ? GM_getValue("chartBedsImagesHistory") : [];
                    Array.from(localData).forEach((item, index) => {
                        if (item["web"] == _web_ && item["id_encoded"] == id_encoded) {
                            localData.splice(index, 1);
                            GM_setValue("chartBedsImagesHistory", localData);
                            return;
                        }
                    })
                },
                get: function () {
                    return GM_getValue("chartBedsImagesHistory") ? GM_getValue("chartBedsImagesHistory") : [];
                }
            },
            getAuthToken(url) {
                /* 获取图床的auth_token */
                return new Promise(res => {
                    GM_xmlhttpRequest({
                        url: url,
                        method: "GET",
                        headers: {
                            'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Mobile Safari/537.36 Edg/94.0.992.38'
                        },
                        onload: (r) => {
                            let token = r.responseText.match(/PF.obj.config.auth_token[\s]*=[\s]*"(.+)";/i);
                            if (token.length == 2) {
                                popup.open("auth_token成功获取", "alert");
                                res(token[1]);
                            } else {
                                console.log(r);
                                popup.open("auth_token获取失败", "alert");
                                res(null);
                            }
                        },
                        onerror: () => {
                            popup.open("网络异常", "alert");
                            res(null)
                        }
                    })
                })
            },
            login(url, user, pwd, auth_token) {
                /* 图床登录(不可用) */
                return new Promise(res => {
                    GM_xmlhttpRequest({
                        url: `${url}/login`,
                        method: "POST",
                        data: `login-subject=${user}&password=${pwd}&auth_token=${auth_token}`,
                        headers: {
                            "Content-Type": "application/x-www-form-urlencoded"
                        },
                        onload: (e) => {
                            console.log(e);
                            if (e.status == 200 && e.responseText.match("注销")) {
                                popup.open('登陆成功', 'alert');
                                res(true);
                            } else {
                                popup.open('登录(不可用)失败', 'alert');
                                res(false);
                            }
                        },
                        onerror: () => {
                            popup.open('网络异常', 'alert');
                            res(404);
                        }
                    })
                });
            },
            uploadImage(url, auth_token, imageFile) {
                /* 上传图片请求 */
                let res_data = {
                    "imageUri": null,
                    "json_data": null
                };
                let form = new FormData();
                form.append("type", "file");
                form.append("action", "upload");
                form.append("timestamp", new Date().getTime());
                form.append("auth_token", auth_token);
                form.append("nsfw", 0);
                form.append("source", imageFile);
                return new Promise(res => {
                    GM_xmlhttpRequest({
                        url: `${url}/json`,
                        method: "POST",
                        data: form,
                        async: false,
                        responseType: "json",
                        headers: {
                            "Accept": "application/json",
                            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53",
                            "Referer": `${url}/`,
                            "Origin": url,
                        },
                        onload: (r) => {
                            let json_data = JSON.parse(r.responseText);
                            console.log(json_data);
                            let status_code = json_data["status_code"];

                            if (status_code == 200) {
                                popup.open('上传成功', 'alert');
                                let file_reader = new FileReader();
                                /* FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件 */
                                file_reader.readAsDataURL(imageFile); /* 读取图片的内容生成的base64编码的图 */
                                /* 读取完成后,执行该回调函数,它会返回读取的结果result		 */
                                file_reader.onload = (function () {
                                    let imageUri = this.result; /* 此时的图片已经存储到了result中	 */
                                    res_data["imageUri"] = imageUri;
                                    res_data["json_data"] = json_data;
                                    res(res_data);
                                });
                            } else if (mobile.chartBed.ret_code[status_code] != null && mobile.chartBed.ret_code[status_code][json_data["error"]["code"]] != null) {
                                popup.open(mobile.chartBed.ret_code[status_code][json_data["error"]["code"]], 'alert');
                                res(res_data);
                            } else {
                                console.log(json_data);
                                res(res_data);
                            }

                        },
                        onerror: (r) => {
                            console.log(r.responseText);
                            popup.open("网络异常", 'alert');
                            res(res_data);
                        }
                    })
                })

            },
            deleteImage(url, auth_token, id_encoded) {
                /* 删除图片请求 */
                return new Promise(res => {
                    GM_xmlhttpRequest({
                        url: `${url}/json`,
                        method: "POST",
                        data: `auth_token=${auth_token}&action=delete&single=true&delete=image&deleting[id]=${id_encoded}`,
                        headers: {
                            "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
                        },
                        onload: (e) => {
                            let json_data = JSON.parse(e.responseText);
                            let status_code = json_data["status_code"];

                            if (status_code == 200 && json_data["success"]["code"] == 200) {
                                popup.open(mobile.chartBed.ret_code["200"]["200"], 'alert');
                                res(true);
                            } else if (status_code == 400 && json_data["error"]["code"] == 100) {
                                popup.open(mobile.chartBed.ret_code["400"]["100"], 'alert');
                                res(true);
                            } else if (mobile.chartBed.ret_code[status_code] != null && mobile.chartBed.ret_code[status_code][json_data["error"]["code"]] != null) {
                                popup.open(mobile.chartBed.ret_code[status_code][json_data["error"]["code"]], 'alert');
                                res(false);
                            } else {
                                console.log(json_data);
                                popup.open(json_data["error"]["message"], 'alert');
                                res(false);
                            }

                        },
                        onerror: () => {
                            popup.open('网络异常', 'alert');
                            res(false);
                        }
                    })
                })
            },

        },
        chatChartBed() {
            /* 聊天的图床 */
            if (!window.location.href.match(mt_config.rexp.chat_url) ||
                !GM_getValue("v40")
            ) {
                return
            };
            GM_addStyle(`
            .comiis_post_imglist li.up_btn_kggzs a,
            .comiis_post_imglist li.up_btn_hello a,
            .comiis_post_imglist li.up_btn_z4a a{
                display: block;
                width: 50px;
                height: 50px;
                line-height: 50px;
                padding: 4px;
                border-radius: 2px;
                border-style: dashed;
            }
            .comiis_post_imglist li.up_btn_kggzs a i,
            .comiis_post_imglist li.up_btn_hello a i,
            .comiis_post_imglist li.up_btn_z4a a i  {
                position: absolute;
                top: 11px;
                left: 5px;
                z-index: 8;
                font-size: 26px;
                width: 50px;
                height: 50px;
                line-height: 50px;
                text-align: center;
            }
            .comiis_post_imglist li.up_btn_kggzs a input,
            .comiis_post_imglist li.up_btn_hello a input,
            .comiis_post_imglist li.up_btn_z4a a input {
                position:absolute;
                top:11px;
                left:5px;
                height:50px;
                width:50px;
                z-index:10;
                opacity:0
            }
            .comiis_post_imglist li .delImg {
                position:absolute;
                top:-5px;
                left:-5px
            }
            .comiis_post_imglist li .delImg i {
                font-size:24px;
                background:#fff;
                border-radius:50%
            }
            .imgboxlist{
                height: 170px;
                overflow-y: auto;
            }
            .menuclicked{
                background: #fff;
            }
            #filedata_kggzs,
            #filedata_hello,
            #filedata_z4a{
                display: none;
            }
            `);

            function chatKGChartBed() {
                /* 聊天快捷图片上传康哥图床 */
                let chartBedUrl = "https://img.kggzs.cn/api/v1";
                let chartBedUser = GM_getValue("KggzsChartBedUser");
                let chartBedPwd = GM_getValue("KggzsChartBedPwd");
                let chartBedToken = null;
                let loginStatus = false; /* 登录(不可用)状态 */
                let tokenStatus = false; /* token状态 */
                let code = {
                    401: "未登录(不可用)或授权失败",
                    403: "管理员关闭了接口功能",
                    429: "超出请求配额,请求受限",
                    500: "服务端出现异常"
                }

                function getToken() {
                    return new Promise(res => {
                        let formData = new FormData();
                        formData.append("email", chartBedUser);
                        formData.append("password", chartBedPwd);
                        GM_xmlhttpRequest({
                            url: `${chartBedUrl}/tokens`,
                            method: "POST",
                            data: formData,
                            headers: {
                                "Accept": "application/json"
                            },
                            onload: (r) => {
                                if (code[r.status] != null) {
                                    popup.open(code[r.status], 'alert');
                                    res(null);
                                    return;
                                }
                                let json_data = JSON.parse(r.responseText);
                                if (json_data["status"]) {
                                    popup.open("token成功获取", "alert");
                                    res(json_data["data"]["token"]);
                                } else {
                                    popup.open(json_data["message"], "alert");
                                    res(null);
                                }
                            },
                            onerror: () => {
                                popup.open("网络异常");
                                res(null);
                            }
                        })
                    })
                }

                function uploadImage(imageFile) {
                    let res_data = {
                        "imageUri": null,
                        "json_data": null
                    };
                    let form = new FormData();
                    form.append("strategy_id", 3);
                    form.append("file", imageFile);
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: `${chartBedUrl}/upload`,
                            method: "POST",
                            data: form,
                            async: false,
                            responseType: "json",
                            headers: {
                                "Accept": "application/json",
                                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53",
                                "Referer": `${chartBedUrl}/`,
                                "Authorization": `Bearer ${chartBedToken}`,
                                "Origin": chartBedUrl,
                            },
                            onload: (r) => {
                                if (code[r.status] != null) {
                                    popup.open(code[r.status], 'alert');
                                    res(res_data);
                                    return;
                                }
                                let json_data = JSON.parse(r.responseText);
                                console.log(json_data);

                                if (json_data["status"]) {
                                    popup.open('上传成功', 'alert');
                                    let file_reader = new FileReader();
                                    /* FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件 */
                                    file_reader.readAsDataURL(imageFile); /* 读取图片的内容生成的base64编码的图 */
                                    /* 读取完成后,执行该回调函数,它会返回读取的结果result		 */
                                    file_reader.onload = (function () {
                                        let imageUri = this.result; /* 此时的图片已经存储到了result中	 */
                                        res_data["imageUri"] = imageUri;
                                        res_data["json_data"] = json_data;
                                        res(res_data);
                                    });
                                } else {
                                    console.log(json_data);
                                    popup.open(json_data["message"], 'alert');
                                    res(res_data);
                                }

                            },
                            onerror: (r) => {
                                popup.open("网络异常", 'alert');
                                res(res_data);
                            }
                        })
                    })
                }

                function deleteImage(imageKey) {
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: `${chartBedUrl}/images/:${imageKey}`,
                            method: "DELETE",
                            async: false,
                            data: JSON.stringify({
                                "key": ""
                            }),
                            responseType: "json",
                            headers: {
                                "Accept": "application/json",
                                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53",
                                "Referer": `${chartBedUrl}/`,
                                "Authorization": `Bearer ${chartBedToken}`,
                                "Origin": chartBedUrl,
                            },
                            onload: (r) => {
                                if (code[r.status] != null) {
                                    popup.open(code[r.status], 'alert');
                                    res(res_data);
                                    return;
                                }
                                let json_data = JSON.parse(r.responseText);
                                console.log(json_data);
                            },
                            onerror: (r) => {
                                popup.open("网络异常", 'alert');
                                res(res_data);
                            }
                        })
                    })
                }

                function clearData() {
                    chartBedUser = "";
                    chartBedPwd = "";
                    chartBedToken = null;
                    loginStatus = false;
                    tokenStatus = false;
                    GM_deleteValue("KggzsChartBedUser");
                    GM_deleteValue("KggzsChartBedPwd");
                }

                $jq(document).on("click", "#imglist_kggzs .up_btn a", async function () {
                    if (tokenStatus) {
                        popup.open('正在配置中...', 'alert');
                        return;
                    }
                    if (!chartBedUser || !chartBedPwd) {
                        let userInput = prompt('请输入康哥图床的用户和密码,使用空格分割');
                        if (userInput && userInput.trim()) {
                            let userInputSplit = userInput.split(" ");
                            let user = userInputSplit[0];
                            let pwd = userInputSplit[1];
                            GM_setValue("KggzsChartBedUser", user);
                            GM_setValue("KggzsChartBedPwd", pwd);
                            chartBedUser = user;
                            chartBedPwd = pwd;
                            popup.open('设置完毕,请重新点击', 'alert');
                        }
                    } else if (chartBedToken == null || !loginStatus) {
                        tokenStatus = true;
                        popup.open('正在配置token', 'alert');
                        chartBedToken = await getToken();
                        console.log("token:" + chartBedToken);
                        if (chartBedToken != null) {
                            $jq("#filedata_kggzs").click();
                        } else {
                            clearData();
                        }
                        tokenStatus = false;

                    } else {
                        $jq("#filedata_kggzs").click();
                    }
                });
                $jq(document).on("change", "#filedata_kggzs", (e) => {
                    let chooseImageFiles = e.currentTarget.files;
                    if (chooseImageFiles.length == 0) {
                        return
                    };
                    popup.open("上传图片中...请稍后", "alert");
                    console.log(`图片数量:${chooseImageFiles.length}`);
                    $jq.each(chooseImageFiles, async (i) => {
                        let imageFile = chooseImageFiles[i];
                        let uploadImageReturn = await uploadImage(imageFile);
                        if (uploadImageReturn["json_data"] != null) {
                            console.log(uploadImageReturn);
                            let image_id_encoded = uploadImageReturn["json_data"]["data"]["key"];
                            let image_url = uploadImageReturn["json_data"]["data"]["links"]["url"];
                            let image_thumb_url = uploadImageReturn["json_data"]["data"]["links"]["thumbnail_url"];
                            let image_name = uploadImageReturn["json_data"]["data"]["origin_name"];
                            let image_uri = uploadImageReturn["imageUri"];
                            let uploadImageHTML = `<li>
                                <span class="delImg" id-encode="${image_id_encoded}">
                                    <a href="javascript:;">
                                        <i class="comiis_font f_g"></i>
                                    </a>
                                </span>
                                <span class="charu f_f">插入</span>
                                <span class="p_img">
                                    <a href="javascript:;" onclick="comiis_addsmilies('[url=${image_url}][img]${image_url}[/img][/url]')">
                                        <img style="height:54px;width:54px;" title="${image_name}" src="${image_uri}" class="vm b_ok"></a>
                                </span>
                                <input type="hidden" name="">
                            </li>`;
                            $jq("#imglist_kggzs").append($jq(uploadImageHTML));
                            mobile.chartBed.storage.add("kggzs", image_id_encoded, image_url, image_thumb_url, image_name);
                        }
                    })
                    /* $jq("#filedata_kggzs").val(""); */

                });
                $jq(document).on("click", "#imglist_kggzs .delImg", async (e) => {
                    e.preventDefault();
                    e.currentTarget.parentElement.remove();
                    /* popup.open('删除中,请稍后', 'alert');
                    let id_encoded = e.currentTarget.getAttribute("id-encode");
                    if(!id_encoded){
                        popup.open('获取id_encoded失败,请自行去Hello图床删除', 'alert');
                        return;
                    }
                    let deleteStatus = await deleteImage(key);
                    if(deleteStatus){
                        e.currentTarget.parentElement.remove();
                        mobile.chartBed.storage.delete("kggzs",id_encoded);
                    } */
                })
            }

            function chatHelloChartBed() {
                /* 聊天快捷图片上传Hello图床 */
                let chartBedUrl = "https://www.helloimg.com";
                let chartBedUser = GM_getValue("HelloChartBedUser");
                let chartBedPwd = GM_getValue("HelloChartBedPwd");
                let chartBedAuthToken = null;
                let loginStatus = false; /* 登录(不可用)状态 */
                let authTokenStatus = false; /* authToken状态 */

                let clearData = () => {
                    GM_deleteValue("HelloChartBedUser");
                    GM_deleteValue("HelloChartBedPwd");
                    loginStatus = false;
                    authTokenStatus = false;
                    chartBedUser = "";
                    chartBedPwd = "";
                    chartBedAuthToken = null;
                }
                $jq(document).on("click", "#imglist_hello .up_btn a", async function () {
                    if (authTokenStatus) {
                        popup.open('正在配置中...', 'alert');
                        return;
                    }
                    if (!chartBedUser || !chartBedPwd) {
                        let userInput = prompt('请输入Hello图床的用户和密码,使用空格分割');
                        if (userInput && userInput.trim()) {
                            let userInputSplit = userInput.split(" ");
                            let user = userInputSplit[0];
                            let pwd = userInputSplit[1];
                            GM_setValue("HelloChartBedUser", user);
                            GM_setValue("HelloChartBedPwd", pwd);
                            chartBedUser = user;
                            chartBedPwd = pwd;
                            popup.open('设置完毕,请重新点击', 'alert');
                        }
                    } else if (chartBedAuthToken == null || !loginStatus) {
                        authTokenStatus = true;
                        popup.open('正在配置auth_token', 'alert');
                        chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
                        console.log("auth_token:" + chartBedAuthToken);
                        if (chartBedAuthToken != null) {
                            popup.open('正在登录(不可用)Hello图床', 'alert');
                            let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
                            if (retloginStatus) {
                                loginStatus = true;
                                $jq("#filedata_hello").click();
                            } else if (retloginStatus == false) {
                                clearData();
                            }
                        }
                        authTokenStatus = false;

                    } else {
                        $jq("#filedata_hello").click();
                    }
                })
                $jq(document).on("change", "#filedata_hello", (e) => {
                    let chooseImageFiles = e.currentTarget.files;
                    if (chooseImageFiles.length == 0) {
                        return
                    };
                    popup.open("上传图片中...请稍后", "alert");
                    $jq.each(chooseImageFiles, async (i) => {
                        let imageFile = chooseImageFiles[i];
                        let uploadImageReturn = await mobile.chartBed.uploadImage(chartBedUrl, chartBedAuthToken, imageFile);
                        if (uploadImageReturn["json_data"] != null) {
                            let image_id_encoded = uploadImageReturn["json_data"]["image"]["id_encoded"];
                            let image_url = uploadImageReturn["json_data"]["image"]["url"];
                            let image_thumb_url = uploadImageReturn["json_data"]["image"]["thumb"]["url"];
                            let image_name = uploadImageReturn["json_data"]["image"]["filename"];
                            let image_uri = uploadImageReturn["imageUri"];
                            let uploadImageHTML = `<li>
                                <span class="delImg" id-encode="${image_id_encoded}">
                                    <a href="javascript:;">
                                        <i class="comiis_font f_g"></i>
                                    </a>
                                </span>
                                <span class="charu f_f">插入</span>
                                <span class="p_img">
                                    <a href="javascript:;" onclick="comiis_addsmilies('[url=${image_url}][img]${image_url}[/img][/url]')">
                                        <img style="height:54px;width:54px;" title="${image_name}" src="${image_uri}" class="vm b_ok"></a>
                                </span>
                                <input type="hidden" name="">
                            </li>`;
                            $jq("#filedata_hello").append($jq(uploadImageHTML));
                            mobile.chartBed.storage.add("hello", image_id_encoded, image_url, image_thumb_url, image_name);
                        }
                    })
                    /* $jq("#filedata_hello").val(""); */

                })
                $jq(document).on("click", "#imglist_hello .delImg", async (e) => {
                    e.preventDefault();
                    popup.open('删除中,请稍后', 'alert');
                    let id_encoded = e.currentTarget.getAttribute("id-encode");
                    if (!id_encoded) {
                        popup.open('获取id_encoded失败,请自行去Hello图床删除', 'alert');
                        return;
                    }
                    let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
                    if (deleteStatus) {
                        e.currentTarget.parentElement.remove();
                        mobile.chartBed.storage.delete("hello", id_encoded);
                    }
                })
            }



            function chatZ4AChartBed() {
                /* 聊天快捷图片上传Z4A图床 */
                let chartBedUrl = "https://www.z4a.net";
                let chartBedUser = GM_getValue("Z4AChartBedUser");
                let chartBedPwd = GM_getValue("Z4AChartBedPwd");
                let chartBedAuthToken = null;
                let loginStatus = false; /* 登录(不可用)状态 */
                let authTokenStatus = false; /* authToken状态 */

                let clearData = () => {
                    GM_deleteValue("Z4AChartBedUser");
                    GM_deleteValue("Z4AChartBedPwd");
                    loginStatus = false;
                    authTokenStatus = false;
                    chartBedUser = "";
                    chartBedPwd = "";
                    chartBedAuthToken = null;
                }
                $jq(document).on("click", "#imglist_z4a .up_btn a", async function () {
                    if (authTokenStatus) {
                        popup.open('正在配置中...', 'alert');
                        return;
                    }
                    if (!chartBedUser || !chartBedPwd) {
                        let userInput = prompt('请输入Z4A图床的用户和密码,使用空格分割');
                        if (userInput && userInput.trim()) {
                            let userInputSplit = userInput.split(" ");
                            let user = userInputSplit[0];
                            let pwd = userInputSplit[1];
                            GM_setValue("Z4AChartBedUser", user);
                            GM_setValue("Z4AChartBedPwd", pwd);
                            chartBedUser = user;
                            chartBedPwd = pwd;
                            popup.open('设置完毕,请重新点击', 'alert');
                        }
                    } else if (chartBedAuthToken == null || !loginStatus) {
                        authTokenStatus = true;
                        popup.open('正在配置auth_token', 'alert');
                        chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
                        console.log("auth_token:" + chartBedAuthToken);
                        if (chartBedAuthToken != null) {
                            popup.open('正在登录(不可用)Z4A图床', 'alert');
                            let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
                            if (retloginStatus) {
                                loginStatus = true;
                                $jq("#filedata_z4a").click();
                            } else if (retloginStatus == false) {
                                clearData();
                            }
                        }
                        authTokenStatus = false;

                    } else {
                        $jq("#filedata_z4a").click();
                    }
                })
                $jq(document).on("change", "#filedata_z4a", (e) => {
                    let chooseImageFiles = e.currentTarget.files;
                    if (chooseImageFiles.length == 0) {
                        return
                    };
                    popup.open("上传图片中...请稍后", "alert");
                    $jq.each(chooseImageFiles, async (i) => {
                        let imageFile = chooseImageFiles[i];
                        let uploadImageReturn = await mobile.chartBed.uploadImage(chartBedUrl, chartBedAuthToken, imageFile);
                        if (uploadImageReturn["json_data"] != null) {
                            let image_id_encoded = uploadImageReturn["json_data"]["image"]["id_encoded"];
                            let image_url = uploadImageReturn["json_data"]["image"]["url"];
                            let image_thumb_url = uploadImageReturn["json_data"]["image"]["thumb"]["url"];
                            let image_name = uploadImageReturn["json_data"]["image"]["filename"];
                            let image_uri = uploadImageReturn["imageUri"];
                            let uploadImageHTML = `<li>
                                <span class="delImg" id-encode="${image_id_encoded}">
                                    <a href="javascript:;">
                                        <i class="comiis_font f_g"></i>
                                    </a>
                                </span>
                                <span class="charu f_f">插入</span>
                                <span class="p_img">
                                    <a href="javascript:;" onclick="comiis_addsmilies('[url=${image_url}][img]${image_url}[/img][/url]')">
                                        <img style="height:54px;width:54px;" title="${image_name}" src="${image_uri}" class="vm b_ok"></a>
                                </span>
                                <input type="hidden" name="">
                            </li>`;
                            $jq("#imglist_z4a").append($jq(uploadImageHTML));
                            mobile.chartBed.storage.add("z4a", image_id_encoded, image_url, image_thumb_url, image_name);
                        }
                    })
                    /* $jq("#filedata_z4a").val(""); */

                })
                $jq(document).on("click", "#imglist_z4a .delImg", async (e) => {
                    e.preventDefault();
                    popup.open('删除中,请稍后', 'alert');
                    let id_encoded = e.currentTarget.getAttribute("id-encode");
                    if (!id_encoded) {
                        popup.open('获取id_encoded失败,请自行去Z4A图床删除', 'alert');
                        return;
                    }
                    let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
                    if (deleteStatus) {
                        e.currentTarget.parentElement.remove();
                        mobile.chartBed.storage.delete("z4a", id_encoded);
                    }
                })
            }

            function chatHistoryChartBedImages() {
                /* 所有图床历史上传过的图片 */
                let historyImages = mobile.chartBed.storage.get();

                $jq.each(historyImages, (i) => {
                    let _web = historyImages[i]["web"];
                    let _url = historyImages[i]["url"];
                    let _thumb_url = historyImages[i]["thumb_url"];
                    let _name = historyImages[i]["name"];

                    let _imageHTML = `
                    <li>
                        <span class="delImg" t-index="${i}">
                            <a href="javascript:;">
                                <i class="comiis_font f_g"></i>
                            </a>
                        </span>
                        <span class="charu f_f">${_web}</span>
                        <span class="p_img">
                            <a href="javascript:;" onclick="comiis_addsmilies('[url=${_url}][img]${_url}[/img][/url]')">
                                <img style="height:54px;width:54px;" title="${_name}" src="${_thumb_url}" class="vm b_ok"></a>
                        </span>
                        <input type="hidden" name="${_name}">
                    </li>
                    `;
                    $jq("#imglist_history").append($jq(_imageHTML));

                })

                $jq("#imglist_history").on("click", ".delImg", async (e) => {
                    e.preventDefault();
                    let _t_index = e.currentTarget.getAttribute("t-index");
                    let imageItem = historyImages[_t_index];
                    let web = imageItem["web"];
                    let id_encoded = imageItem["id_encoded"];
                    e.currentTarget.parentElement.remove();
                    mobile.chartBed.storage.delete(web, id_encoded);
                })
            }
            let imgBtn = `<a href="javascript:;" class="comiis_pictitle"><i class="comiis_font"></i></a>`;
            let menu = `<div class="comiis_minibq bg_f cl" style="display: none;"><div class="imgboxlist"></div><div class="bqbox_t bg_e cl"><ul id="comiis_img_chartbed_key"></ul></div></div>`;
            $jq(".styli_tit.comiis_post_ico.f_c.cl").append($jq(imgBtn));
            $jq("#comiis_post_tab").append($jq(menu));

            let imgUploadBtn = `
            <div class="comiis_upbox kggzschartbed" style="">
                <ul id="imglist_kggzs" class="comiis_post_imglist cl">
                    <li class="up_btn_kggzs">
                        <a href="javascript:;" class="bg_e b_ok f_d" id="kggzsChartBedBtnUpload">
                            <i class="comiis_font"></i>
                            <input type="file" name="Filedata" id="kggzsfiledata" accept="image/*" multiple="multiple">
                        </a>
                    </li>				
                </ul>
            </div>
            <div class="comiis_upbox hellochartbed" style="display:none;">
                <ul id="imglist_hello" class="comiis_post_imglist cl">
                    <li class="up_btn_hello">
                        <a href="javascript:;" class="bg_e b_ok f_d" id="helloChartBedBtnUpload">
                            <i class="comiis_font"></i>
                            <input type="file" name="Filedata" id="hellofiledata" accept="image/*" multiple="multiple">
                        </a>
                    </li>				
                </ul>
            </div>
            <div class="comiis_upbox z4achartbed" style="display:none;">
                <ul id="imglist_z4a" class="comiis_post_imglist cl">
                    <li class="up_btn_z4a">
                        <a href="javascript:;" class="bg_e b_ok f_d" id="z4aChartBedBtnUpload">
                            <i class="comiis_font"></i>
                            <input type="file" name="Filedata" id="z4afiledata" accept="image/*" multiple="multiple">
                        </a>
                    </li>				
                </ul>
            </div>
            <div class="comiis_upbox chartbedhistory" style="display:none;">
                <ul id="imglist_history" class="comiis_post_imglist cl">
                
                </ul>
            </div>
            `;
            let imgMenu = `
            <li class="bg_f"><a href="javascript:;" id="menu_kggzs" class="">康哥图床</a></li>
            <li><a href="javascript:;" id="menu_hello" class="">hello图床</a></li>
            <li><a href="javascript:;" id="menu_z4a" class="">z4a图床</a></li>
            <li><a href="javascript:;" id="menu_chartbed_history" class="">历史图片</a></li>
            `;
            $jq("#comiis_img_chartbed_key").append($jq(imgMenu));
            $jq(".comiis_minibq .imgboxlist").append($jq(imgUploadBtn));

            $jq("#comiis_img_chartbed_key li").on("click", function () {
                $jq("#comiis_img_chartbed_key li").removeClass("bg_f");
                $jq(this).addClass("bg_f");
                $jq("#comiis_post_tab .imgboxlist .comiis_upbox").hide().eq($jq(this).index()).fadeIn();
            })

            if (GM_getValue("chartBedsImagesHistory") == undefined) {
                GM_setValue("chartBedsImagesHistory", []);
            }
            tryCatch(chatKGChartBed);
            tryCatch(chatHelloChartBed);
            tryCatch(chatZ4AChartBed);
            tryCatch(chatHistoryChartBedImages);

        },
        codeQuoteCopyBtn() {
            /* 代码块复制按钮 */
            if (!GM_getValue("v46") &&
                !window.location.href.match(mt_config.rexp.forum_post)
            ) {
                return
            };
            let comiis_blockcode = $jq(".comiis_blockcode.comiis_bodybg");
            $jq.each(comiis_blockcode, (index, value) => {
                if (!value.getAttribute("data-copy")) {
                    value.setAttribute("data-copy", true);
                    let tempDivNode = document.createElement("div");
                    tempDivNode.setAttribute("style", "height: 34px;margin: 14px 0px;");
                    let btnSpanNode = document.createElement("span");
                    btnSpanNode.className = "reader-copy-button";
                    btnSpanNode.setAttribute("style", "background: #000;background-size: cover;background-repeat: no-repeat;background-position: 0;color: #fff;line-height: 40px;display: block;position: absolute;text-align: center;border-radius: 5px;cursor: pointer;right: auto!important;font-size: 15px;width: 70px;user-select: none;");
                    btnSpanNode.innerHTML = `
                    <i style="display: inline-block;margin-right: 6px;width: 16px;height: 16px;background-size: cover;vertical-align: sub;user-select: none;">
                    <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
                        <title>复制按钮</title>
                        <defs>
                            <rect id="path-1" x="0" y="0" width="16" height="16"></rect>
                        </defs>
                        <g id="阅读页复制-拦截" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                            <g>
                                <mask id="mask-2" fill="white">
                                    <use xlink:href="#path-1"></use>
                                </mask>
                                <g id="矩形"></g>
                                <path d="M4.11794319,3.55555556 L9.51168644,3.55555556 C10.4768443,3.55555556 11.2592593,4.33797056 11.2592593,5.30312837 L11.2592593,13.067242 C11.2592593,14.0323998 10.4768443,14.8148148 9.51168644,14.8148148 L4.11794319,14.8148148 C3.15278537,14.8148148 2.37037037,14.0323998 2.37037037,13.067242 L2.37037037,5.30312837 C2.37037037,4.33797056 3.15278537,3.55555556 4.11794319,3.55555556 Z" id="矩形" stroke="#DFDFDF" stroke-width="1.45631068" mask="url(#mask-2)"></path>
                                <path d="M5.03703704,0.888888889 L12.1481481,0.888888889 C13.1299877,0.888888889 13.9259259,1.68482711 13.9259259,2.66666667 L13.9259259,12.7407407" id="形状" stroke="#DFDFDF" stroke-width="1.45631068" mask="url(#mask-2)"></path>
                            </g>
                        </g>
                    </svg>
                    </i>复制`;
                    tempDivNode.append(btnSpanNode);
                    tempDivNode.onclick = () => {
                        popup.open("已复制代码", "alert");
                        GM_setClipboard(value.outerText || value.innerText);
                    }
                    value.before(tempDivNode);
                } else {
                    console.log("已创建复制按钮");
                }
            })
        },
        commentsAddReviews() {
            /* 评论区添加点评功能 */
            if (GM_getValue("v6") && location.href.match(mt_config.rexp.forum_post)) {
                var hongbao = document.getElementsByClassName("bottom_zhan y");
                if (hongbao.length == 0) {} else {
                    var cishu2 = 0;
                    var replyhref = hongbao[cishu2].getElementsByTagName('a')[0].href;
                    var page = replyhref.match(mt_config.rexp.forum_post_page)[1];
                    /* console.log(page); */
                    for (cishu2 = 0; cishu2 < hongbao.length; cishu2++) {
                        if (hongbao[cishu2].children.length == 1) {
                            var rewardhref = hongbao[cishu2].getElementsByTagName('a')[0].href.replace('mod=post&', 'mod=misc&');
                            rewardhref = rewardhref.replace("action=reply&", "action=comment&");
                            var reviews_href = rewardhref + '&extra=page%3D1&page=' + page;
                            let reviews_pid = hongbao[cishu2].parentElement.parentElement.id.replace("pid", "&pid=");
                            reviews_href = reviews_href + reviews_pid;
                            /* console.log(rewardhref) */
                            var oa = document.createElement('a');
                            var ob = document.createElement('i');
                            var lm = document.getElementsByClassName("bottom_zhan y")[cishu2];
                            oa.href = reviews_href;
                            oa.className = "f_c dialog";
                            ob.style = "content: url(https://s1.ax1x.com/2020/04/26/Jcq8VU.png);height: 15px;";
                            ob.className = "comiis_font mt_review";
                            ob.innerHTML = "";
                            oa.appendChild(ob);
                            let review_username = hongbao[cishu2].parentElement.parentElement.getElementsByClassName("top_user f_b")[0].text;
                            oa.onclick = function () {
                                let click_time = Date.now();
                                var mt_interval = setInterval(function () {
                                    let run_time = parseInt((Date.now() - click_time) / 1000);
                                    if (run_time >= 5) {
                                        console.log("超时");
                                        clearInterval(mt_interval);
                                    } else if (document.querySelector("div[id=ntcmsg_popmenu]>div>span.f_c") != null) {
                                        console.log("存在,清理定时器");
                                        console.log("点评用户:", review_username);
                                        console.log("该对象出现用时:", run_time);
                                        try {
                                            document.querySelector("div[id=ntcmsg_popmenu]>div>span.f_c").innerText = "点评 " + review_username;
                                        } catch (err) {
                                            console.log("修改点评失败", err);
                                        }
                                        clearInterval(mt_interval);
                                    }
                                }, 100)
                            }
                            lm.insertAdjacentElement('afterBegin', oa);
                        } else {
                            console.log("已有点评按钮,无需再次添加");
                        }
                    }
                }
            }
        },
        editorChartBed() {
            /* 编辑器的图床 */

            function chartbedByMT() {
                /* 论坛图床-修复点击上传和点击插入功能 */
                GM_addStyle(`
                #imglist .p_img a{
                    float: left;
                    height: 36px;
                }
                #imglist .del a{
                    padding: 0;
                }  
                `);
                $jq("#imglist .up_btn").append($jq("#filedata"));
                $jq(document).on("click", "#imglist .up_btn a", function (e) {
                    $jq(this).next().click();
                })
                $jq(document).on("click", "#imglist .p_img a", function (e) {
                    let obj = $jq(this);
                    if (obj.attr("onclick") == null) {
                        let img_id = obj.find('img').attr("id").replace("aimg_", "");
                        comiis_addsmilies("[attachimg]" + img_id + "[/attachimg]");
                    }

                })

            }

            function chartbedByKggzs() {
                /* 编辑器图片上传 康哥图床 */
                GM_addStyle(`
                    #imglist_kggzs .delImg{
                        position: absolute;
                        top: -5px;
                        left: -5px;
                    }
                `);
                let chartBedUrl = "https://img.kggzs.cn/api/v1";
                let chartBedUser = GM_getValue("KggzsChartBedUser");
                let chartBedPwd = GM_getValue("KggzsChartBedPwd");
                let chartBedToken = null;
                let tokenStatus = false; /* token状态 */
                let code = {
                    401: "未登录(不可用)或授权失败",
                    403: "管理员关闭了接口功能",
                    429: "超出请求配额,请求受限",
                    500: "服务端出现异常"
                }

                function getToken() {
                    return new Promise(res => {
                        let formData = new FormData();
                        formData.append("email", chartBedUser);
                        formData.append("password", chartBedPwd);
                        GM_xmlhttpRequest({
                            url: `${chartBedUrl}/tokens`,
                            method: "POST",
                            data: formData,
                            headers: {
                                "Accept": "application/json"
                            },
                            onload: (r) => {
                                if (code[r.status] != null) {
                                    popup.open(code[r.status], 'alert');
                                    res(null);
                                    return;
                                }
                                let json_data = JSON.parse(r.responseText);
                                if (json_data["status"]) {
                                    popup.open("token成功获取", "alert");
                                    res(json_data["data"]["token"]);
                                } else {
                                    popup.open(json_data["message"], "alert");
                                    res(null);
                                }
                            },
                            onerror: () => {
                                popup.open("网络异常");
                                res(null);
                            }
                        })
                    })
                }

                function uploadImage(imageFile) {
                    let res_data = {
                        "imageUri": null,
                        "json_data": null
                    };
                    let form = new FormData();
                    form.append("strategy_id", 3);
                    form.append("file", imageFile);
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: `${chartBedUrl}/upload`,
                            method: "POST",
                            data: form,
                            async: false,
                            responseType: "json",
                            headers: {
                                "Accept": "application/json",
                                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53",
                                "Authorization": `Bearer ${chartBedToken}`,
                            },
                            onload: (r) => {
                                if (code[r.status] != null) {
                                    popup.open(code[r.status], 'alert');
                                    res(res_data);
                                    return;
                                }
                                if (r.responseText.match("502 Bad Gateway")) {
                                    popup.open("获取返回结果502失败", "alert");
                                    res(res_data);
                                    return
                                }
                                let json_data = JSON.parse(r.responseText);
                                console.log(json_data);

                                if (json_data["status"]) {
                                    popup.open('上传成功', 'alert');
                                    let file_reader = new FileReader();
                                    /* FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件 */
                                    file_reader.readAsDataURL(imageFile); /* 读取图片的内容生成的base64编码的图 */
                                    /* 读取完成后,执行该回调函数,它会返回读取的结果result		 */
                                    file_reader.onload = (function () {
                                        let imageUri = this.result; /* 此时的图片已经存储到了result中	 */
                                        res_data["imageUri"] = imageUri;
                                        res_data["json_data"] = json_data;
                                        res(res_data);
                                    });
                                } else {
                                    console.log(json_data);
                                    popup.open(json_data["message"], 'alert');
                                    res(res_data);
                                }

                            },
                            onerror: (r) => {
                                popup.open("网络异常", 'alert');
                                res(res_data);
                            }
                        })
                    })
                }

                function deleteImage(imageKey) {
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: `${chartBedUrl}/images/:${imageKey}`,
                            method: "DELETE",
                            async: false,
                            data: JSON.stringify({
                                "key": ""
                            }),
                            responseType: "json",
                            headers: {
                                "Accept": "application/json",
                                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53",
                                "Authorization": `Bearer ${chartBedToken}`,
                            },
                            onload: (r) => {
                                if (code[r.status] != null) {
                                    popup.open(code[r.status], 'alert');
                                    res(res_data);
                                    return;
                                }
                                let json_data = JSON.parse(r.responseText);
                                console.log(json_data);
                            },
                            onerror: (r) => {
                                popup.open("网络异常", 'alert');
                                res(res_data);
                            }
                        })
                    })
                }

                function clearData() {
                    chartBedUser = "";
                    chartBedPwd = "";
                    chartBedToken = null;
                    loginStatus = false;
                    tokenStatus = false;
                    GM_deleteValue("KggzsChartBedUser");
                    GM_deleteValue("KggzsChartBedPwd");
                }

                $jq(document).on("click", "#imglist_kggzs .up_btn a", async function () {
                    if (tokenStatus) {
                        popup.close();
                        popup.open('正在配置中...', 'alert');
                        return;
                    }
                    if (!chartBedUser || !chartBedPwd) {
                        let userInput = prompt('请输入康哥图床的用户和密码,使用空格分割');
                        if (userInput && userInput.trim()) {
                            let userInputSplit = userInput.split(" ");
                            let user = userInputSplit[0];
                            let pwd = userInputSplit[1];
                            GM_setValue("KggzsChartBedUser", user);
                            GM_setValue("KggzsChartBedPwd", pwd);
                            chartBedUser = user;
                            chartBedPwd = pwd;
                            popup.close();
                            popup.open('设置完毕,请重新点击', 'alert');
                        }
                    } else if (chartBedToken == null) {
                        tokenStatus = true;
                        popup.close();
                        popup.open('正在配置token', 'alert');
                        chartBedToken = await getToken();
                        console.log("token:" + chartBedToken);
                        if (chartBedToken != null) {
                            $jq("#filedata_kggzs").click();
                        } else {
                            clearData();
                        }
                        tokenStatus = false;

                    } else {
                        $jq("#filedata_kggzs").click();
                    }
                });
                $jq(document).on("change", "#filedata_kggzs", (e) => {
                    let chooseImageFiles = e.currentTarget.files;
                    if (chooseImageFiles.length == 0) {
                        return
                    };
                    popup.close();
                    popup.open("上传图片中...请稍后", "alert");
                    /* popup.open('<img src="https://bbs.binmt.cc/template/comiis_app/comiis/img/imageloading.gif" class="comiis_loading comiis_noloadimage">'); */
                    console.log(`图片数量:${chooseImageFiles.length}`);
                    $jq.each(chooseImageFiles, async (i) => {
                        let imageFile = chooseImageFiles[i];
                        let uploadImageReturn = await uploadImage(imageFile);
                        if (uploadImageReturn["json_data"] != null) {
                            console.log(uploadImageReturn);
                            let image_id_encoded = uploadImageReturn["json_data"]["data"]["key"];
                            let image_url = uploadImageReturn["json_data"]["data"]["links"]["url"];
                            let image_thumb_url = uploadImageReturn["json_data"]["data"]["links"]["thumbnail_url"];
                            let image_name = uploadImageReturn["json_data"]["data"]["origin_name"];
                            let image_uri = uploadImageReturn["imageUri"];
                            let uploadImageHTML = `<li>
                                        <span class="delImg" id-encode="${image_id_encoded}">
                                            <a href="javascript:;">
                                                <i class="comiis_font f_g"></i>
                                            </a>
                                        </span>
                                        <span class="charu f_f">插入</span>
                                        <span class="p_img">
                                            <a href="javascript:;" onclick="comiis_addsmilies('[url=${image_url}][img]${image_url}[/img][/url]')">
                                                <img style="height:54px;width:54px;" title="${image_name}" src="${image_uri}" class="vm b_ok"></a>
                                        </span>
                                        <input type="hidden" name="">
                                    </li>`;
                            $jq("#imglist_kggzs").append($jq(uploadImageHTML));
                            mobile.chartBed.storage.add("kggzs", image_id_encoded, image_url, image_thumb_url, image_name);
                        }
                    })
                    $jq("#filedata_kggzs").val("");

                });
                $jq(document).on("click", "#imglist_kggzs .delImg", async (e) => {
                    e.preventDefault();
                    e.currentTarget.parentElement.remove();
                    /* popup.open('删除中,请稍后', 'alert');
                    let id_encoded = e.currentTarget.getAttribute("id-encode");
                    if(!id_encoded){
                        popup.open('获取id_encoded失败,请自行去Hello图床删除', 'alert');
                        return;
                    }
                    let deleteStatus = await deleteImage(key);
                    if(deleteStatus){
                        e.currentTarget.parentElement.remove();
                        mobile.chartBed.storage.delete("kggzs",id_encoded);
                    } */
                })

            }

            function chartbedByHello() {
                /* 编辑器图片上传Hello图床 */
                GM_addStyle(`
                    #imglist_hello .delImg{
                        position: absolute;
                        top: -5px;
                        left: -5px;
                    }
                    `);
                let chartBedUrl = "https://www.helloimg.com";
                let chartBedUser = GM_getValue("HelloChartBedUser");
                let chartBedPwd = GM_getValue("HelloChartBedPwd");
                let chartBedAuthToken = null;
                let loginStatus = false; /* 登录(不可用)状态 */
                let authTokenStatus = false; /* authToken状态 */

                let clearData = () => {
                    GM_deleteValue("HelloChartBedUser");
                    GM_deleteValue("HelloChartBedPwd");
                    loginStatus = false;
                    authTokenStatus = false;
                    chartBedUser = "";
                    chartBedPwd = "";
                    chartBedAuthToken = null;
                }
                $jq(document).on("click", "#imglist_hello .up_btn a", async function () {
                    if (authTokenStatus) {
                        popup.close();
                        popup.open('正在配置中...', 'alert');
                        return;
                    }
                    if (!chartBedUser || !chartBedPwd) {
                        let userInput = prompt('请输入Hello图床的用户和密码,使用空格分割');
                        if (userInput && userInput.trim()) {
                            let userInputSplit = userInput.split(" ");
                            let user = userInputSplit[0];
                            let pwd = userInputSplit[1];
                            GM_setValue("HelloChartBedUser", user);
                            GM_setValue("HelloChartBedPwd", pwd);
                            chartBedUser = user;
                            chartBedPwd = pwd;
                            popup.close();
                            popup.open('设置完毕,请重新点击', 'alert');
                        }
                    } else if (chartBedAuthToken == null && !loginStatus) {
                        authTokenStatus = true;
                        popup.close();
                        popup.open('正在配置auth_token', 'alert');
                        chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
                        console.log("auth_token:" + chartBedAuthToken);
                        if (chartBedAuthToken != null) {
                            popup.close();
                            popup.open('正在登录(不可用)Hello图床', 'alert');
                            let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
                            if (retloginStatus) {
                                loginStatus = true;
                                $jq("#filedata_hello").click();
                            } else {
                                clearData();
                            }
                        }
                        authTokenStatus = false;

                    } else {
                        $jq("#filedata_hello").click();
                    }
                })
                $jq(document).on("change", "#filedata_hello", (e) => {
                    let chooseImageFiles = e.currentTarget.files;
                    if (chooseImageFiles.length == 0) {
                        return
                    };
                    popup.close();
                    popup.open("上传图片中...请稍后", "alert");
                    /* popup.open('<img src="https://bbs.binmt.cc/template/comiis_app/comiis/img/imageloading.gif" class="comiis_loading comiis_noloadimage">'); */

                    console.log(`图片数量:${chooseImageFiles.length}`);
                    $jq.each(chooseImageFiles, async (i) => {
                        let imageFile = chooseImageFiles[i];
                        let uploadImageReturn = await mobile.chartBed.uploadImage(chartBedUrl, chartBedAuthToken, imageFile);
                        if (uploadImageReturn["json_data"] != null) {
                            let image_id_encoded = uploadImageReturn["json_data"]["image"]["id_encoded"];
                            let image_url = uploadImageReturn["json_data"]["image"]["url"];
                            let image_thumb_url = uploadImageReturn["json_data"]["image"]["thumb"]["url"];
                            let image_name = uploadImageReturn["json_data"]["image"]["filename"];
                            let image_uri = uploadImageReturn["imageUri"];
                            let uploadImageHTML = `<li>
                                        <span class="delImg" id-encode="${image_id_encoded}">
                                            <a href="javascript:;">
                                                <i class="comiis_font f_g"></i>
                                            </a>
                                        </span>
                                        <span class="charu f_f">插入</span>
                                        <span class="p_img">
                                            <a href="javascript:;" onclick="comiis_addsmilies('[url=${image_url}][img]${image_url}[/img][/url]')">
                                                <img style="height:54px;width:54px;" title="${image_name}" src="${image_uri}" class="vm b_ok"></a>
                                        </span>
                                        <input type="hidden" name="">
                                    </li>`;
                            $jq("#imglist_hello").append($jq(uploadImageHTML));
                            mobile.chartBed.storage.add("hello", image_id_encoded, image_url, image_thumb_url, image_name);
                        }
                    })
                    $jq("#filedata_hello").val("");
                    /* popup.close(); */

                })
                $jq(document).on("click", "#imglist_hello .delImg", async (e) => {
                    e.preventDefault();
                    popup.open('删除中,请稍后', 'alert');
                    let id_encoded = e.currentTarget.getAttribute("id-encode");
                    if (!id_encoded) {
                        popup.close();
                        popup.open('获取id_encoded失败,请自行去Hello图床删除', 'alert');
                        return;
                    }
                    let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
                    if (deleteStatus) {
                        e.currentTarget.parentElement.remove();
                        mobile.chartBed.storage.delete("hello", id_encoded);
                    }
                })
            }


            function chartbedByZ4a() {
                /* 编辑器图片上传z4a图床 */
                GM_addStyle(`
                    #imglist_z4a .delImg{
                        position: absolute;
                        top: -5px;
                        left: -5px;
                    }
                    `);
                let chartBedUrl = "https://www.z4a.net";
                let chartBedUser = GM_getValue("Z4AChartBedUser");
                let chartBedPwd = GM_getValue("Z4AChartBedPwd");
                let chartBedAuthToken = null;
                let loginStatus = false; /* 登录(不可用)状态 */
                let authTokenStatus = false; /* authToken状态 */
                let clearData = () => {
                    GM_deleteValue("Z4AChartBedUser");
                    GM_deleteValue("Z4AChartBedPwd");
                    loginStatus = false;
                    authTokenStatus = false;
                    chartBedUser = "";
                    chartBedPwd = "";
                    chartBedAuthToken = null;
                }
                $jq(document).on("click", "#imglist_z4a .up_btn a", async function (e) {
                    if (authTokenStatus) {
                        popup.close();
                        popup.open('正在配置中...', 'alert');
                        return;
                    }
                    if (!chartBedUser || !chartBedPwd) {
                        let userInput = prompt('请输入Z4A图床的用户和密码,使用空格分割');
                        if (userInput && userInput.trim()) {
                            let userInputSplit = userInput.split(" ");
                            let user = userInputSplit[0];
                            let pwd = userInputSplit[1];
                            GM_setValue("Z4AChartBedUser", user);
                            GM_setValue("Z4AChartBedPwd", pwd);
                            chartBedUser = user;
                            chartBedPwd = pwd;
                            popup.close();
                            popup.open('设置完毕,请重新点击', 'alert');
                            return;
                        }
                    } else if (chartBedAuthToken == null && !loginStatus) {
                        authTokenStatus = true;
                        popup.close();
                        popup.open('正在配置auth_token', 'alert');
                        chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
                        console.log("auth_token:" + chartBedAuthToken);
                        if (chartBedAuthToken != null) {
                            popup.close();
                            popup.open('正在登录(不可用)Z4A图床', 'alert');
                            let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
                            if (retloginStatus) {
                                console.log("登录(不可用)成功");
                                loginStatus = true;
                                $jq("#filedata_z4a").click();
                            } else {
                                clearData();
                            }
                        }
                        authTokenStatus = false;


                    } else {
                        $jq("#filedata_z4a").click();
                    }
                })
                $jq(document).on("change", "#filedata_z4a", (e) => {
                    let chooseImageFiles = e.currentTarget.files;
                    if (chooseImageFiles.length == 0) {
                        return
                    };
                    popup.open("上传图片中...请稍后", "alert");
                    /* popup.open('<img src="https://bbs.binmt.cc/template/comiis_app/comiis/img/imageloading.gif" class="comiis_loading comiis_noloadimage">'); */
                    console.log(`图片数量:${chooseImageFiles.length}`);
                    $jq.each(chooseImageFiles, async (i) => {
                        let imageFile = chooseImageFiles[i];
                        let uploadImageReturn = await mobile.chartBed.uploadImage(chartBedUrl, chartBedAuthToken, imageFile);
                        if (uploadImageReturn["json_data"] != null) {
                            let image_id_encoded = uploadImageReturn["json_data"]["image"]["id_encoded"];
                            let image_url = uploadImageReturn["json_data"]["image"]["url"];
                            let image_thumb_url = uploadImageReturn["json_data"]["image"]["thumb"]["url"];
                            let image_name = uploadImageReturn["json_data"]["image"]["filename"];
                            let image_uri = uploadImageReturn["imageUri"];
                            let uploadImageHTML = `<li>
                                        <span class="delImg" id-encode="${image_id_encoded}">
                                            <a href="javascript:;">
                                                <i class="comiis_font f_g"></i>
                                            </a>
                                        </span>
                                        <span class="charu f_f">插入</span>
                                        <span class="p_img">
                                            <a href="javascript:;" onclick="comiis_addsmilies('[url=${image_url}][img]${image_url}[/img][/url]')">
                                                <img style="height:54px;width:54px;" title="${image_name}" src="${image_uri}" class="vm b_ok"></a>
                                        </span>
                                        <input type="hidden" name="">
                                    </li>`;
                            $jq("#imglist_z4a").append($jq(uploadImageHTML));
                            mobile.chartBed.storage.add("z4a", image_id_encoded, image_url, image_thumb_url, image_name);
                        }
                    })
                    $jq("#filedata_z4a").val("");

                    popup.close();

                })
                $jq(document).on("click", "#imglist_z4a .delImg", async (e) => {
                    e.preventDefault();
                    popup.open('删除中,请稍后', 'alert');
                    let id_encoded = e.currentTarget.getAttribute("id-encode");
                    if (!id_encoded) {
                        popup.open('获取id_encoded失败,请自行去Z4A图床删除', 'alert');
                        return;
                    }
                    let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
                    if (deleteStatus) {
                        e.currentTarget.parentElement.remove();
                        mobile.chartBed.storage.delete("z4a", id_encoded);
                    }
                })
            }

            function chartbedByHistory() {
                /* 所有图床历史上传过的图片 */
                GM_addStyle(`
                .comiis_post_imglist li .delImg {
                    position: absolute;
                    top: -5px;
                    left: -5px;
                }
                `);
                if (GM_getValue("chartBedsImagesHistory") == undefined) {
                    GM_setValue("chartBedsImagesHistory", []);
                }
                let historyImages = mobile.chartBed.storage.get();
                let isAdd = false;
                if (historyImages == []) {
                    return;
                }
                $jq(document).on("click", "#comiis_pictitle_tab_n_5", function (e) {
                    if (isAdd) {
                        $jq(document).off("click", "#comiis_pictitle_tab_n_5");
                        return;
                    }
                    isAdd = true;
                    $jq.each(historyImages, (i) => {
                        let _web = historyImages[i]["web"];
                        let _url = historyImages[i]["url"];
                        let _thumb_url = historyImages[i]["thumb_url"];
                        let _name = historyImages[i]["name"];

                        let _imageHTML = `
                        <li>
                            <span class="delImg" t-index="${i}">
                                <a href="javascript:;">
                                    <i class="comiis_font f_g"></i>
                                </a>
                            </span>
                            <span class="charu f_f">${_web}</span>
                            <span class="p_img">
                                <a href="javascript:;" onclick="comiis_addsmilies('[url=${_url}][img]${_url}[/img][/url]')">
                                    <img style="height:54px;width:54px;" title="${_name}" src="${_thumb_url}" class="vm b_ok"></a>
                            </span>
                            <input type="hidden" name="${_name}">
                        </li>
                        `;
                        $jq("#imglist_history").append($jq(_imageHTML));
                    })

                });

                $jq(document).on("click", "#imglist_history .delImg", (e) => {
                    e.preventDefault();
                    let _t_index = e.currentTarget.getAttribute("t-index");
                    let imageItem = historyImages[_t_index];
                    let web = imageItem["web"];
                    let id_encoded = imageItem["id_encoded"];
                    e.currentTarget.parentElement.remove();
                    mobile.chartBed.storage.delete(web, id_encoded);
                })
            }
            let imgBtn = `<a href="javascript:;" class="comiis_pictitle"><i class="comiis_font"><em>图片</em></i></a>`;
            let menu = `
            <div class="bg_f b_b cl gm_plugin_chartbed" style="display: none;">
                <div class="comiis_over_box comiis_input_style">
                    <div class="comiis_upbox comiis_allowpostimg bg_f cl">
                    </div>
                </div> 
            </div>
            `;
            GM_addStyle(`
            #filedata,
            #filedata_kggzs,
            #filedata_hello,
            #filedata_z4a{
                display: none;
            }
            `);
            let jqMenu = $jq(menu);
            jqMenu.find(".comiis_upbox.comiis_allowpostimg").append($jq(".comiis_wzpost.comiis_input_style .comiis_upbox.comiis_allowpostimg").children());

            $jq(".swiper-wrapper.comiis_post_ico").append(imgBtn);
            $jq("#comiis_post_tab").append(jqMenu);
            tryCatch(chartbedByMT);
            tryCatch(chartbedByKggzs);
            tryCatch(chartbedByHello);
            tryCatch(chartbedByZ4a);
            tryCatch(chartbedByHistory);
        },
        editorOptimization() {
            /* 编辑器优化-简略 */
            if (!GM_getValue("v49") ||
                !window.location.href.match(mt_config.rexp.forum_post)
            ) {
                return
            };
            GM_addStyle(`
            #comiis_foot_menu_beautify{
                position: fixed;
                display: inline-flex;
                z-index: 90;
                left: 0;
                right: 0;
                bottom: 0;
                width: 100%;
                height: 48px;
                overflow: hidden;
                align-content: center;
                justify-content: center;
                align-items: center;
            }
            #comiis_foot_menu_beautify_big{
                position: fixed;
                display: inline-flex;
                flex-direction: column;
                z-index: 90;
                left: 0;
                right: 0;
                bottom: 0;
                width: 100%;
                min-height: 120px;
                overflow: hidden;
                align-content: center;
                justify-content: center;
                align-items: center;
            }
            #comiis_foot_menu_beautify input.bg_e.f_c::-webkit-input-placeholder {
                padding-left:10px;
                color:#999999;
            }
            #comiis_foot_menu_beautify .reply_area ul li a{
                display: block;
                width: 22px;
                height: 22px;
                padding: 4px 8px;
                margin: 8px 0;
                position: relative;
            }
            #comiis_foot_menu_beautify .reply_area ul{
                display: inline-flex;
                align-content: center;
                align-items: center;
                justify-content: center;
            }
            #comiis_foot_menu_beautify .reply_area li a i {
                width: 22px;
                height: 22px;
                line-height: 22px;
                font-size: 22px;
            }
            #comiis_foot_menu_beautify .reply_area li a span {
                position: absolute;
                display: block;
                font-size: 10px;
                height: 14px;
                line-height: 14px;
                padding: 0 6px;
                right: -8px;
                top: 4px;
                overflow: hidden;
                border-radius: 20px;
            }
            #comiis_foot_menu_beautify li[data-attr="回帖"] input{
                border: transparent;
                border-radius: 15px;
                height: 30px;
                width:220px;
            }
            #comiis_foot_menu_beautify_big .reply_area{
                margin: 10px 0px 5px 0px;
            }
            #comiis_foot_menu_beautify_big .reply_area ul{
                display: inline-flex;
                align-content: center;
                justify-content: center;
                align-items: flex-end;
            }
            #comiis_foot_menu_beautify_big li[data-attr="回帖"]{
                width: 75vw;
                margin-right: 15px;
            }
            #comiis_foot_menu_beautify_big .reply_user_content{
                width: 75vw;
                word-wrap: break-word;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
                margin: 8px 10px;
            }
            #comiis_foot_menu_beautify_big li[data-attr="发表"]{
    
            }
            #comiis_foot_menu_beautify_big li[data-attr="发表"] .fastpostform_new{
                text-align: center;
                margin-bottom: 28px;
            }
            #comiis_foot_menu_beautify_big li[data-attr="发表"] .fastpostform_new i{
                font-size: 22px;
            }
            #comiis_foot_menu_beautify_big li[data-attr="发表"] input{
                width: 60px;
                height: 30px;
                border: transparent;
                color: #ffffff;
                background: #d1c9fc;
                border-radius: 30px;
                margin-bottom: 6px;
            }
            #comiis_foot_menu_beautify_big li[data-attr="发表"] input[data-text='true']{
                background: #7a61fb;
            }
            #comiis_foot_menu_beautify_big li[data-attr="回帖"] textarea{
                padding: 10px 10px 10px 10px;
                border: transparent;
                border-radius: 6px;
                min-height: 70px;
                max-height: 180px;
                background: #e9e8ec;
                overflow-y: auto;
                width: -webkit-fill-available;
            }
            #comiis_foot_menu_beautify .reply_area li[data-attr="回帖"]{
                width:250px;
                text-align: center;
            }
    
            #comiis_foot_menu_beautify_big .other_area{
                width: 100%;
                text-align: center;
            }
            #comiis_foot_menu_beautify_big .other_area .menu_icon a{
                margin: 0px 20px;
            }
            #comiis_foot_menu_beautify_big .other_area i{
                font-size: 24px;
            }
            #comiis_foot_menu_beautify_big .other_area #comiis_insert_ubb_tab i{
                font-size: 16px;
            }
            #comiis_foot_menu_beautify_big .other_area .menu_body{
                background: #f4f4f4;
    
            }
            #comiis_foot_menu_beautify_big .other_area .menu_body .comiis_smiley_box .comiis_optimization{
                max-height: 140px;
                overflow-y: auto;
                flex-direction: column;
            }
            #comiis_foot_menu_beautify_big .other_area .menu_body .comiis_smiley_box .bqbox_t{
                background: #fff;
                
            }
            #comiis_foot_menu_beautify_big .other_area .menu_body .comiis_smiley_box .bqbox_t ul#comiis_smilies_key li a.bg_f.b_l.b_r{
                background: #f4f4f4 !important;
            }
            #comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab #comiis_pictitle_key{
                display: flex;
                top: 0px;
                left: 0px;
                height: 42px;
                line-height: 42px;
                overflow: hidden;        
            }
            #comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab #comiis_pictitle_key li{
                padding: 0px 10px;
            }
            #comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab .comiis_upbox,
            #comiis_foot_menu_beautify_big .menu_body #comiis_insert_ubb_tab .comiis_input_style{
                height: 140px;
                overflow-y: auto;
                flex-direction: column;
            }
            #comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab #filedata_kggzs,
            #comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab #filedata_hello,
            #comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab #filedata_z4a{
                display:none;
            }
            `);
            let pl = $jq("#comiis_foot_memu .comiis_flex li")[1];
            let dz = $jq("#comiis_foot_memu .comiis_flex li")[2];
            let sc = $jq("#comiis_foot_memu .comiis_flex li")[3];
            let form_action = $jq('#fastpostform').attr('action');
            let form_serialize = $jq('#fastpostform').serialize();
            let form_url = $jq("#fastpostform .header_y a").attr("href");
            $jq("#needmessage[name='message']").remove();
            $jq("#imglist").remove();
            $jq("#fastpostsubmitline").remove();
            $jq("#fastpostsubmit").remove();
            $jq("#comiis_foot_memu").hide();
            $jq("#comiis_foot_memu").after($jq(`
            <div id="comiis_foot_menu_beautify" class="bg_f b_t">
                <div class="reply_area">
                    <ul>
                        <li data-attr="回帖"><input type="text" class="bg_e f_c" placeholder="发帖千百度,文明第一步" readonly="readonly"></li>
                        <li data-attr="评论数量">${pl.innerHTML}</li>
                        <li data-attr="点赞">${dz.innerHTML}</li>
                        <li data-attr="收藏">${sc.innerHTML}</li>
                    </ul>
                </div>
            </div>
            <div id="comiis_foot_menu_beautify_big" data-model="comment" class="bg_f b_t" style="display:none;">
                <div class="reply_area">
                    <div class="reply_user_content" style="display:none;"></div>
                    <ul>
                        <li data-attr="回帖"><textarea id="needmessage" placeholder="发帖千百度,文明第一步"></textarea></li>
                        <li data-attr="发表">
                            <div class="fastpostform_new"><a href="${form_url}" data-comment-url="${form_url}" target="_blank"><i class="comiis_font f_d"></i></a></div>
                            <div id="fastpostsubmitline"><input data-comment-url="${form_url}" data-comment-action="${form_action}" data-comment-serialize="${form_serialize}" data-text="false" type="button" value="发表" name="replysubmit" id="fastpostsubmit" comiis="handle"></div>
                        </li>
                    </ul>
                </div>
                <div class="other_area">
                    <div class="menu_icon">
                        <a href="javascript:;" class="comiis_pictitle"><i class="comiis_font"></i></a>
                        <a href="javascript:;" class="comiis_smile"><i class="comiis_font"></i></a>
                        <a href="javascript:;" class="commis_insert_bbs"><i class="comiis_font"></i></a>
                    </div>
                    <div class="menu_body">
                        <div id="comiis_pictitle_tab">
                            <div class="comiis_upbox bg_f cl">
                                <ul id="imglist" class="comiis_post_imglist cl">
                                    <li class="up_btn">
                                        <a href="javascript:;" class="bg_e b_ok f_d">
                                            <i class="comiis_font"></i>
                                        </a>
                                        <input type="file" name="Filedata" id="filedata" accept="image/*">
                                    </li>				
                                </ul>
                             </div>
                             <div class="comiis_upbox bg_f cl" style="display: none;">
                                <ul id="imglist_kggzs" class="comiis_post_imglist cl">
                                    <li class="up_btn">
                                        <a href="javascript:;" class="bg_e b_ok f_d">
                                            <i class="comiis_font"></i>
                                            
                                        </a>
                                        <input type="file" name="Filedata" id="filedata_kggzs" accept="image/*" multiple="multiple">
                                    </li>				
                                </ul>
                             </div>
                             <div class="comiis_upbox bg_f cl" style="display: none;">
                                <ul id="imglist_hello" class="comiis_post_imglist cl">
                                    <li class="up_btn">
                                        <a href="javascript:;" class="bg_e b_ok f_d">
                                            <i class="comiis_font"></i>
                                            
                                        </a>
                                        <input type="file" name="Filedata" id="filedata_hello" accept="image/*" multiple="multiple">
                                    </li>				
                                </ul>
                             </div>
                             <div class="comiis_upbox bg_f cl" style="display: none;">
                                <ul id="imglist_z4a" class="comiis_post_imglist cl">
                                    <li class="up_btn">
                                        <a href="javascript:;" class="bg_e b_ok f_d">
                                            <i class="comiis_font"></i>
                                            
                                        </a>
                                        <input type="file" name="Filedata" id="filedata_z4a" accept="image/*" multiple="multiple">
                                    </li>				
                                </ul>
                             </div>
                             <div class='comiis_upbox bg_f cl' style='display: none;'>
                                <ul id="imglist_history" class="comiis_post_imglist cl">
                                        
                                </ul>
                             </div>
                             <div class="bqbox_t">
                                <ul id="comiis_pictitle_key">
                                    <li class="bg_f" id="comiis_pictitle_tab_n_1"><a href="javascript:;" class="">论坛</a></li>
                                    <li class="" id="comiis_pictitle_tab_n_2"><a href="javascript:;" class="">康哥图床</a></li>
                                    <li class="" id="comiis_pictitle_tab_n_3"><a href="javascript:;" class="">Hello图床</a></li>
                                    <li class="" id="comiis_pictitle_tab_n_4"><a href="javascript:;" class="">Z4A图床</a></li>
                                    <li class="" id="comiis_pictitle_tab_n_5"><a href="javascript:;" class="">历史图片</a></li>
                                </ul>
                            </div>
                        </div>
                        <div id="comiis_post_tab" class="comiis_bqbox">
                            <div class="comiis_smiley_box swiper-container-horizontal swiper-container-android">
                                <div class="swiper-wrapper bqbox_c comiis_optimization">
                                    <div class="swiper-slide">
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[呵呵]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq001.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[撇嘴]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq002.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[色]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq003.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[发呆]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq004.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[得意]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq005.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[流泪]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq006.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[害羞]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq007.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[闭嘴]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq008.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[睡]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq009.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[大哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq010.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[尴尬]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq011.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[发怒]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq012.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[调皮]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq013.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[呲牙]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq014.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[惊讶]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq015.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[难过]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq016.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[酷]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq017.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[冷汗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq018.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[抓狂]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq019.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[吐]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq020.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[偷笑]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq021.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[可爱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq022.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[白眼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq023.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[傲慢]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq024.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[饥饿]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq025.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[困]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq026.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[惊恐]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq027.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[流汗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq028.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[憨笑]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq029.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[装逼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq030.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[奋斗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq031.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[咒骂]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq032.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[疑问]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq033.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[嘘]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq034.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[晕]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq035.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[折磨]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq036.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[衰]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq037.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[骷髅]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq038.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[敲打]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq039.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[再见]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq040.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[擦汗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq041.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[抠鼻]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq042.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[鼓掌]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq043.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[糗大了]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq044.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[坏笑]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq045.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[左哼哼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq046.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[右哼哼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq047.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[哈欠]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq048.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[鄙视]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq049.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[委屈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq050.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[快哭了]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq051.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[阴脸]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq052.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[亲亲]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq053.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[吓]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq054.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[可怜]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq055.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[眨眼睛]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq056.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[笑哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq057.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[dogeQQ]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq058.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[泪奔]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq059.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[无奈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq060.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[托腮]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq061.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[卖萌]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq062.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[斜眼笑]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq063.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[喷血]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq064.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[惊喜]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq065.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[骚扰]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq066.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[小纠结]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq067.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[我最美]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq068.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[菜刀]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq069.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[西瓜]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq070.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[啤酒]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq071.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[篮球]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq072.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[乒乓]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq073.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[咖啡]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq074.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[饭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq075.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[猪]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq076.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[玫瑰]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq077.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[凋谢]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq078.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[示爱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq079.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[爱心]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq080.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[心碎]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq081.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[蛋糕]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq082.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[闪电]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq083.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[炸弹]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq084.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[刀]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq085.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[足球]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq086.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[瓢虫]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq087.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[便便]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq088.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[月亮]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq089.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[太阳]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq090.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[礼物]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq091.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[抱抱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq092.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[喝彩]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq93.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[祈祷]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq94.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[棒棒糖]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq95.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[药]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq96.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[赞]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq097.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[差劲]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq098.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[握手]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq099.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[胜利]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq100.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[抱拳]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq101.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[勾引]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq102.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[拳头]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq103.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[差劲]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq104.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[爱你]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq105.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[NO]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq106.gif" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[OK]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq107.gif" class="vm"></a></li>
                                    
                                    </div>
    
                                    <div class="swiper-slide" style="display: none;">
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#呵呵]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_1.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#滑稽]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_10.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#吐舌]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_3.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#哈哈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_2.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#啊]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_23.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#酷]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_22.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#怒]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_13.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#开心]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_39.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#汗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_14.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#泪]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_16.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#黑线]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_15.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#鄙视]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_21.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#不高兴]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_12.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#真棒]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_17.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#钱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_40.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#疑问]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_26.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#阴险]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_20.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#吐]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_34.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#咦]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_41.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#委屈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_29.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#花心]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_6.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#呼~]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_42.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#激动]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_5.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#冷]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_43.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#可爱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_4.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#What?]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_25.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#勉强]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_38.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#狂汗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_24.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#酸爽]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_27.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#乖]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_8.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#雅美蝶]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_28.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#睡觉]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_31.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#惊哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_19.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#哼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_44.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#笑尿]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_32.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#惊讶]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_30.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#小乖]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_7.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#喷]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_18.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#抠鼻]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_33.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#捂嘴笑]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_9.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#你懂的]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_11.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#犀利]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_35.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#小红脸]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_36.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#懒得理]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_37.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#爱心]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_45.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#心碎]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_46.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#玫瑰]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_47.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#礼物]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_48.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#彩虹]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_49.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#太阳]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_50.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#月亮]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_51.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#钱币]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_52.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#咖啡]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_53.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#蛋糕]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_54.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#大拇指]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_55.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#胜利]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_56.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#爱你]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_57.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#OK]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_58.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#弱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_59.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#沙发]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_60.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#纸巾]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_61.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#香蕉]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_62.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#便便]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_63.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#药丸]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_64.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#红领巾]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_65.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#蜡烛]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_66.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#三道杠]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_67.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#音乐]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_68.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[#灯泡]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_69.png" class="vm"></a></li>
                                    </div>
                                    
                                    <div class="swiper-slide" style="display: none;">
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/1.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge思考]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/2.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge再见]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/3.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge生气]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/4.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge气哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/5.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge笑哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/7.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge调皮]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/6.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge啊哈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/8.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[doge原谅TA]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/9.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[miao]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/10.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[miao思考]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/11.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[miao拜拜]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/12.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[miao生气]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/13.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[miao气哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/14.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[二哈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/15.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[摊手]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/19.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w并不简单]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/20.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w滑稽]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/21.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w色]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/22.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w爱你]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/23.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w拜拜]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/24.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w悲伤]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/25.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w鄙视]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/26.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w馋嘴]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/27.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w冷汗]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/28.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w打哈欠]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/29.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w打脸]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/30.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w敲打]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/31.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w生病]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/32.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w闭嘴]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/33.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w鼓掌]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/34.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w哈哈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/35.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w害羞]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/36.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w呵呵]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/37.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w黑线]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/38.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w哼哼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/39.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w调皮]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/40.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w可爱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/41.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w可怜]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/42.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w酷]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/43.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w困]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/44.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w懒得理你]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/45.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w流泪]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/46.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w怒]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/47.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w怒骂]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/48.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w钱]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/49.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w亲亲]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/50.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w傻眼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/51.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w便秘]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/52.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w失望]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/53.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w衰]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/54.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w睡觉]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/55.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w思考]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/56.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w开心]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/57.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w色舔]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/58.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w偷笑]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/59.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w吐]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/60.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w抠鼻]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/61.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w委屈]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/62.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w笑哭]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/63.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w嘻嘻]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/64.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w嘘]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/65.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w阴险]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/66.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w疑问]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/67.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w抓狂]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/70.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w晕]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/69.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w右哼哼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/68.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w左哼哼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/71.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w肥皂]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/77.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w奥特曼]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/78.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w草泥马]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/79.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w兔子]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/80.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w熊猫]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/81.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w猪头]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/82.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w→_→]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/83.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w给力]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/84.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w囧]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/85.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w萌]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/86.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w神马]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/87.png" class="vm"></a></li>
                                        <li><a href="javascript:;" onclick="comiis_addsmilies('[w威武]');"><img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/88.png" class="vm"></a></li>
                                    </div>
                                </div>
                                <div class="bqbox_t">
                                    <ul id="comiis_smilies_key">
                                        <li>
                                            <a href="javascript:;" id="comiis_smilies_tab_n_1" class="bg_f b_l b_r">
                                                <img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq063.gif" class="vm">
                                            </a>
                                        </li>
                                        <li>
                                            <a href="javascript:;" id="comiis_smilies_tab_n_2" class="">
                                                <img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_10.png" class="vm">
                                            </a>
                                        </li>
                                        <li>
                                            <a href="javascript:;" id="comiis_smilies_tab_n_3" class="">
                                                <img data-src="https://cdn-bbs.mt2.cn/static/image/smiley/doge/21.png" class="vm">
                                            </a>
                                        </li>
                                    </ul>
                                </div>
                            </div>
                        </div>
                        <div id="comiis_insert_ubb_tab" style="display: none;">
                            <div class="bg_f comiis_input_style">
                                <div class="comiis_post_urlico b_b">
                                    <ul>
                                        
                                    </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            `));
            $jq("#comiis_foot_menu_beautify .comiis_recommend_addkey").on("click", function (e) {
                /* 点赞按钮事件 */
                if (comiis_recommend_key == 0) {
                    comiis_recommend_key = 1;
                    $jq.ajax({
                        type: 'GET',
                        url: $jq(this).attr('href') + '&inajax=1',
                        dataType: 'xml',
                        success: (s) => {
                            var s = s.lastChild.firstChild.nodeValue;
                            if (s.indexOf("您已评价过本主题") >= 0) {
                                $jq.ajax({
                                    type: 'GET',
                                    url: 'plugin.php?id=comiis_app&comiis=re_recommend&tid=' + tid + '&inajax=1',
                                    dataType: 'xml',
                                    success: (v) => {
                                        var recommend_num = Number($jq('#comiis_recommend_num').text());
                                        if ($jq(".comiis_recommend_list_a").length > 0) {
                                            $jq('#comiis_recommend_list_a' + uid).remove();
                                        }
                                        if ($jq(".comiis_recommend_list_s").length > 0) {
                                            $jq('#comiis_recommend_list_s' + uid).remove();
                                        }
                                        if ($jq(".comiis_recommend_list_t").length > 0) {
                                            $jq('#comiis_recommend_list_t' + uid).remove();
                                        }
                                        if (recommend_num > 1) {
                                            $jq('.comiis_recommend_num').text((recommend_num - Number(allowrecommend)));
                                            $jq('.comiis_recommend_nums').text('+' + (recommend_num - Number(allowrecommend)));
                                        } else {
                                            $jq('#comiis_recommend_num').remove();
                                            $jq('.comiis_recommend_nums').text('');

                                            if ($jq(".comiis_recommend_list_a").length > 0) {
                                                $jq('.comiis_recommend_list_a').empty().removeClass('comiis_recommend_list_on');
                                            }
                                            if ($jq(".comiis_recommend_list_t").length > 0) {
                                                $jq('.comiis_recommend_list_t').removeClass('comiis_recommend_list_on');
                                            }
                                        }
                                        $jq('.comiis_recommend_addkey i').html('&#xe63b;');
                                        $jq('.comiis_recommend_color').removeClass('f_a').addClass("f_b");
                                        if ($jq(".comiis_recommend_list_s").length > 0) {
                                            if ($jq(".comiis_recommend_list_s li").length < 7) {
                                                $jq('.txshow_more').hide();
                                            } else {
                                                $jq('.txshow_more').show();
                                            }
                                        }
                                        popup.open('已取消点赞', 'alert');
                                    }
                                })
                            } else if (s.indexOf("您不能评价自己的帖子") >= 0) {
                                popup.open('不能点赞自己的帖子', 'alert');
                            } else if (s.indexOf("今日评价机会已用完") >= 0) {
                                popup.open('您今日的点赞机会已用完', 'alert');
                            } else if (s.indexOf("'recommendv':'+" + allowrecommend + "'") >= 0) {
                                var b = [],
                                    r;
                                r = s.match(/\'recommendc\':\'(.*?)\'/);
                                if (r != null) {
                                    b['recommendc'] = r[1];
                                } else {
                                    b['recommendc'] = 0;
                                }
                                r = s.match(/\'daycount\':\'(.*?)\'/);
                                if (r != null) {
                                    b['daycount'] = r[1];
                                } else {
                                    b['daycount'] = 0;
                                }
                                if ($jq('.comiis_recommend_new span').length < 1) {
                                    $jq('.comiis_recommend_new').append('<span class="bg_del f_f comiis_kmvnum comiis_recommend_num" id="comiis_recommend_num">0</span>');
                                }
                                var comiis_recommend_num = Number($jq('#comiis_recommend_num').text());
                                if ($jq(".comiis_recommend_list_a").length > 0) {
                                    $jq('.comiis_recommend_list_a').removeClass('comiis_recommend_list_on').addClass("comiis_recommend_list_on").prepend(($jq(".comiis_recommend_list_a li").length > 0 ? '' : '<li style="float:right;margin-right:0;"><a href="misc.php?op=recommend&tid= ' + tid + '&mod=faq&mobile=2"><span class="bg_b f_c"><em class="comiis_recommend_num">' + comiis_recommend_num + '</em>赞</span></a></li>') + '<li id="comiis_recommend_list_a' + uid + '"><a href="home.php?mod=space&uid=' + uid + '"><img src="uc_server/avatar.php?uid=' + uid + '&size=small"></a></li>');
                                }
                                if ($jq('.comiis_recommend_list_t').length > 0) {
                                    $jq('.comiis_recommend_list_t').removeClass('comiis_recommend_list_on').addClass("comiis_recommend_list_on").prepend('<span id="comiis_recommend_list_t' + uid + '"><a href="home.php?mod=space&uid=' + uid + '" class="f_c">' + username + '</a>' + ($jq(".comiis_recommend_list_t a").length > 0 ? '<span class="f_d"> , </span>' : '') + '</span>');
                                }
                                if ($jq(".comiis_recommend_list_s").length > 0) {
                                    $jq('.comiis_recommend_list_s').removeClass('comiis_recommend_list_on').addClass("comiis_recommend_list_on").prepend(($jq(".comiis_recommend_list_s li").length > 0 ? '' : '') + '<li id="comiis_recommend_list_s' + uid + '"><a href="home.php?mod=space&uid=' + uid + '"><img src="uc_server/avatar.php?uid=' + uid + '&size=small"></a></li>');
                                }
                                $jq('.comiis_recommend_num').text(comiis_recommend_num + Number(allowrecommend));
                                $jq('.comiis_recommend_nums').text('+' + (comiis_recommend_num + Number(allowrecommend)));
                                $jq('.comiis_recommend_addkey i').html('&#xe654;');
                                $jq('.comiis_recommend_color').removeClass('f_b').addClass("f_a");
                                if ($jq(".comiis_recommend_list_s").length > 0) {
                                    if ($jq(".comiis_recommend_list_s li").length < 7) {
                                        $jq('.txshow_more').hide();
                                    } else {
                                        $jq('.txshow_more').show();
                                    }
                                }
                                popup.open('点赞成功' + (b['daycount'] ? ', 您今天还能点赞 ' + (b['daycount'] - 1) + ' 次' : ''), 'alert');
                            } else if (s.indexOf("window.location.href = 'member.php?mod=logging&action=login&mobile=2'") >= 0) {
                                window.location.href = 'member.php?mod=logging&action=login&mobile=2';
                            } else {
                                popup.open('没有点赞权限或帖子不存在', 'alert');
                            }
                            setTimeout(function () {
                                comiis_recommend_key = 0;
                            }, 500);
                        },
                        error: () => {
                            window.location.href = obj.attr('href');
                            popup.close();
                            setTimeout(function () {
                                comiis_recommend_key = 0;
                            }, 500);
                        }
                    })
                }
                return false;
            })
            textarea_scrollHeight = () => {};
            let btn_fabiao = $jq('#comiis_foot_menu_beautify_big li[data-attr="发表"] input');
            if (typeof unsafeWindow.comiis_addsmilies == "function") {
                /* 替换全局函数添加图片到里面触发input */
                unsafeWindow.comiis_addsmilies = (a) => {
                    unsafeWindow.$('#needmessage').comiis_insert(a);
                    unsafeWindow.$("#needmessage")[0].dispatchEvent(new Event('propertychange'));
                }
            }
            $jq("#comiis_foot_menu_beautify_big textarea").on("input propertychange", function (e) {
                /* 输入框内容改变,高度也改变事件 */
                e.preventDefault();
                let inputValue = e.target.value;
                if (inputValue != "") {
                    btn_fabiao.attr("data-text", "true");
                    $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").attr("placeholder", "[草稿待发送]");
                } else {
                    btn_fabiao.attr("data-text", "false");
                    $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").attr("placeholder", "发帖千百度,文明第一步");
                }
                $jq(this).css("height", "70px");
                $jq(this).css("height", e.target.scrollHeight - 20 + "px");

            })

            let error_code = {
                1: {
                    "error_match": "抱歉,您填写的内容包含敏感词而无法提交",
                    "popup_text": "抱歉,您填写的内容包含敏感词而无法提交"
                },
                2: {
                    "error_match": "抱歉,管理员设置了本版块发表于 30 天以前的主题自动关闭,不再接受新回复",
                    "popup_text": "抱歉,管理员设置了本版块发表于 30 天以前的主题自动关闭,不再接受新回复"
                },
                3: {
                    "error_match": "抱歉,本主题已关闭,不再接受新内容",
                    "popup_text": "抱歉,本主题已关闭,不再接受新内容"
                },
                4: {
                    "error_match": "抱歉,管理员设置了本版块发表于 30 天以前的主题自动关闭,不再接受新回复",
                    "popup_text": "抱歉,管理员设置了本版块发表于 30 天以前的主题自动关闭,不再接受新回复"
                },
                5: {
                    "error_match": "抱歉,您的帖子小于 10 个字符的限制",
                    "popup_text": "抱歉,您的帖子小于 10 个字符的限制"
                }
            }

            function handle_error(s) {
                let return_status = false;
                let messagetext = $jq(s.lastChild.firstChild.nodeValue).find("#messagetext").text();
                if (messagetext.trim() == "") {
                    return return_status;
                }
                console.log(messagetext);
                $jq.each(error_code, (i, v) => {
                    if (messagetext.indexOf(v["error_match"]) != -1) {
                        if (messagetext.indexOf(`typeof errorhandle_=='function'`) != -1) {
                            /* 奇怪的返回值,在该帖子是关闭状态,点击回复会出现抱歉,本主题已关闭,不再接受新内容,正常是errorhandle_fastpost */
                            popup.open(v["popup_text"], "alert");
                        }
                        return_status = true;
                        return;
                    }
                })
                return return_status;
            }
            $jq('#fastpostsubmit').on('click', function () {
                /* 发表按钮|回复按钮点击事件 */
                if ($jq("#needmessage").val() == null || $jq("#needmessage").val() == '') {
                    return;
                }
                popup.open('<img src="https://bbs.binmt.cc/template/comiis_app/comiis/img/imageloading.gif" class="comiis_loading">');
                if ($jq("#fastpostsubmit").val() == "发表") {
                    var msgobj = $jq('#needmessage');
                    let url = form_action + 'reply&handlekey=fastpost&loc=1&inajax=1';
                    let data = form_serialize + msgobj.val();
                    $jq.each($jq("#imglist input[type='hidden']"), (i, v) => {
                        data = data + "&" + v.getAttribute("name") + "=";
                    })
                    $jq.ajax({
                        type: 'POST',
                        url: url,
                        data: data,
                        timeout: 5000,
                        dataType: 'xml',
                        success: function (s) {
                            console.log(s.lastChild.firstChild.nodeValue);
                            evalscript(s.lastChild.firstChild.nodeValue);
                            if (handle_error(s)) {
                                return;
                            }
                            $jq(document).scrollTop($jq(document).height());
                            $jq("#needmessage").val("");
                            $jq("#comiis_head").click();
                            $jq("#comiis_foot_menu_beautify_big .reply_user_content").hide();
                            $jq('#comiis_foot_menu_beautify_big li[data-attr="发表"] input').attr("data-text", "false");
                            $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").attr("placeholder", "发帖千百度,文明第一步");
                        },
                        error: function (e) {
                            console.log(e);
                            /* window.location.href = form_action; */
                            popup.close();
                            popup.open("连接超时,网络异常", "alert");
                        }
                    });
                } else {
                    /* 回复 */
                    var msgobj = $jq('#needmessage');
                    let data = $jq('#comiis_foot_menu_beautify_big .reply_user_content').attr('data-reply-serialize') + msgobj.val();
                    $jq.each($jq("#imglist input[type='hidden']"), (i, v) => {
                        data = data + "&" + v.getAttribute("name") + "=";
                    })
                    $jq.ajax({
                        type: 'POST',
                        url: $jq('#comiis_foot_menu_beautify_big .reply_user_content').attr('data-reply-action') + '&handlekey=fastposts&loc=1&inajax=1',
                        data: data,
                        timeout: 5000,
                        dataType: 'xml',
                        success: function (s) {
                            console.log(s.lastChild.firstChild.nodeValue);
                            evalscript(s.lastChild.firstChild.nodeValue);
                            if (handle_error(s)) {
                                return;
                            }
                            $jq(s.lastChild.firstChild.nodeValue).click();
                            $jq("#needmessage").val("");
                            $jq("#comiis_head").click();
                            $jq('#comiis_foot_menu_beautify_big li[data-attr="发表"] input').val("发表");
                            $jq('#comiis_foot_menu_beautify_big li[data-attr="发表"] input').attr("data-text", "false");
                            $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").attr("placeholder", "发帖千百度,文明第一步");
                            $jq(document).scrollTop($jq(document).height());


                        },
                        error: (e) => {
                            console.log(e);
                            /*  window.location.href = $jq('#comiis_foot_menu_beautify_big .reply_user_content').attr('data-reply-action'); */
                            popup.close();
                            popup.open("连接超时,网络异常", "alert");
                        }
                    })
                }

                return false;
            });

            $jq(document).on('click', ".comiis_postli_times .dialog_reply[datahref*=reply]", function (e) {
                /* 回复按钮新事件 */
                var obj = $jq(this);
                $jq("#comiis_foot_menu_beautify_big").attr("data-model", "reply");
                popup.open('<img src="' + IMGDIR + '/imageloading.gif" class="comiis_loading">');
                console.log($jq(this));
                $jq.ajax({
                    type: 'GET',
                    url: obj.attr('datahref') + '&inajax=1',
                    dataType: 'xml',
                    timeout: 5000,
                    success: function (s) {
                        popup.close();
                        console.log(s.lastChild.firstChild.nodeValue);
                        if (handle_error(s)) {
                            return;
                        }
                        let requestDOM = $jq("<div>" + s.lastChild.firstChild.nodeValue + "</div>");
                        let reply_url = requestDOM.find(".comiis_tip .tip_tit a").attr("href");
                        let reply_user = requestDOM.find(".comiis_tip span.f_0").text();
                        let reply_content = requestDOM.find("input[name='noticeauthormsg']").val();
                        let reply_action = requestDOM.find("#postforms").attr('action');
                        let reply_serialize = requestDOM.find("#postforms").serialize();
                        $jq("#comiis_foot_menu_beautify_big .reply_user_content").text(`回复 ${reply_user}: ${reply_content}`);
                        $jq("#comiis_foot_menu_beautify_big .reply_user_content").show();
                        $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").click();
                        $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").focus();
                        $jq("#fastpostsubmitline input").val("回复");
                        $jq("#comiis_foot_menu_beautify_big .fastpostform_new a").attr("href", reply_url);
                        $jq("#comiis_foot_menu_beautify_big .reply_user_content").attr("data-reply-url", reply_url);
                        $jq("#comiis_foot_menu_beautify_big .reply_user_content").attr("data-reply-action", reply_action);
                        $jq("#comiis_foot_menu_beautify_big .reply_user_content").attr("data-reply-serialize", reply_serialize);
                        window.tempReplyBtnNode = obj;
                        $jq("#needmessage").val(obj.attr("data-text") ? obj.attr("data-text") : "");
                    },
                    error: (e) => {
                        console.log(e);
                        /* window.location.href = obj.attr('datahref'); */
                        popup.close();
                        popup.open("连接超时,网络异常", "alert");
                    }
                })

                return false;
            });

            $jq(document).on("click", function (e) {
                /* 全局点击事件 */
                if (document.querySelector("#comiis_foot_menu_beautify li[data-attr='回帖']").outerHTML.indexOf(e.target.outerHTML) != -1) {
                    /* 显示回帖内容 */
                    $jq("#comiis_foot_menu_beautify").hide();
                    $jq("#comiis_foot_menu_beautify_big").show();
                    $jq("#needmessage").focus();
                } else if (window.event && !utils.checkClickInDOM(document.querySelector("#comiis_foot_menu_beautify_big"))) {
                    /* 不在区域内 */
                    $jq("#comiis_foot_menu_beautify").show();
                    $jq("#comiis_foot_menu_beautify_big").hide();
                    if ($jq("#comiis_foot_menu_beautify_big").attr("data-model") == "reply") {
                        /* 当前编辑框模式为回复某人评论 */
                        $jq("#comiis_foot_menu_beautify_big").attr("data-model", "comment");
                        $jq("#fastpostsubmitline input").val("发表");
                        $jq("#comiis_foot_menu_beautify_big .fastpostform_new a").attr("href", form_url);
                        $jq("#comiis_foot_menu_beautify_big .reply_area .reply_user_content").text("");
                        $jq("#comiis_foot_menu_beautify_big .reply_area .reply_user_content").hide();
                        $jq("#comiis_foot_menu_beautify_big .reply_area .reply_user_content").attr("data-reply-url", "");
                        $jq("#comiis_foot_menu_beautify_big .reply_area .reply_user_content").attr("data-reply-action", "");
                        $jq("#comiis_foot_menu_beautify_big .reply_area .reply_user_content").attr("data-reply-serialize", "");
                        if (window.tempReplyBtnNode) {
                            window.tempReplyBtnNode.attr("data-text", $jq("#needmessage").val());
                            $jq("#needmessage").val("");
                            $jq('#comiis_foot_menu_beautify_big li[data-attr="发表"] input').attr("data-text", "false");
                            $jq("#comiis_foot_menu_beautify li[data-attr='回帖'] input").attr("placeholder", "发帖千百度,文明第一步");
                        }
                    }
                }
            })
            $jq("#comiis_foot_menu_beautify_big .menu_body").hide();
            $jq("#comiis_foot_menu_beautify_big .menu_icon a").on("click", function (e) {
                /* 菜单图标点击事件 */
                if ($jq(this).attr("class") && $jq(this).attr("class").indexOf("f_0") != -1) {
                    $jq("#comiis_foot_menu_beautify_big .menu_body").hide();
                    $jq("#comiis_foot_menu_beautify_big .menu_icon a").removeClass("f_0");

                } else {
                    $jq("#comiis_foot_menu_beautify_big .menu_body").show();
                    $jq("#comiis_foot_menu_beautify_big .menu_icon a").removeClass("f_0");
                    $jq(this).addClass("f_0");
                }

            })

            $jq("#comiis_foot_menu_beautify_big .menu_icon a.comiis_pictitle").on("click", function (e) {
                /* 菜单-图片点击事件 */
                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_post_tab").hide();
                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_insert_ubb_tab").hide();

                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab").show();


            })
            $jq("#comiis_foot_menu_beautify_big .menu_icon a.comiis_smile").on("click", function (e) {
                /* 菜单-表情点击事件 */
                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab").hide();
                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_insert_ubb_tab").hide();

                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_post_tab").show();
                let smileDOM = $jq("#comiis_foot_menu_beautify_big .menu_body .comiis_bqbox");
                if (smileDOM.attr("data-isLoaded") != 1) {
                    smileDOM.attr("data-isLoaded", 1)
                    $jq.each(smileDOM.find("img"), (i, v) => {
                        let data_src = v.getAttribute("data-src");
                        if (data_src) {
                            v.setAttribute("src", data_src);
                        }
                    })
                }
            })
            $jq("#comiis_foot_menu_beautify_big .menu_icon a.commis_insert_bbs").on("click", function (e) {
                /* 菜单-插入点击事件 */
                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_post_tab").hide();
                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_pictitle_tab").hide();

                $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_insert_ubb_tab").show();
                let insertBBSDOM = $jq("#comiis_foot_menu_beautify_big .menu_body #comiis_bbs_tab");

            })
            $jq("#comiis_foot_menu_beautify_big #comiis_smilies_key li").on("click", function (e) {
                /* 菜单-表情-点击事件 */
                $jq("#comiis_foot_menu_beautify_big #comiis_smilies_key li a").removeClass();
                $jq(this).find("a").addClass("bg_f b_l b_r");
                $jq("#comiis_post_tab div.swiper-wrapper.bqbox_c.comiis_optimization .swiper-slide").hide().eq($jq(this).index()).fadeIn();
            })

            $jq("#comiis_foot_menu_beautify_big #comiis_pictitle_tab #comiis_pictitle_key li").on("click", function (e) {
                /* 菜单-图片-点击事件 */
                /* let currentDOM = $jq(this); */
                $jq("#comiis_foot_menu_beautify_big #comiis_pictitle_tab #comiis_pictitle_key li").removeClass("bg_f");
                $jq(this).addClass("bg_f");
                $jq("#comiis_foot_menu_beautify_big #comiis_pictitle_tab div.comiis_upbox").hide().eq($jq(this).index()).fadeIn();
            })

            tryCatch(mobile.editorChartBed);
            tryCatch(mobile.quickUBB.insertQuickReplyUBB);
            tryCatch(mobile.editorOptimizationOffDefaultBottomReplyBtnClickEvent);
        },
        editorOptimizationFull() {
            /* 编辑器优化-完整版 */
            if (!GM_getValue("v50") ||
                !window.location.href.match(mt_config.rexp.post_forum) &&
                !window.location.href.match(mt_config.rexp.edit_forum) &&
                !window.location.href.match(mt_config.rexp.reply_forum)
                /* !window.location.href.match(mt_config.rexp.forum_post) */
            ) {
                return
            };
            tryCatch(mobile.editorChartBed);
            tryCatch(mobile.previewPostForum);
            tryCatch(mobile.quickUBB.insertReplayUBB);
            GM_addStyle(`
            #postform #comiis_mh_sub{
                height: 60px;
                display: flex;
                align-items: center;
            }
            #postform #comiis_post_tab{
                display: inherit;
                width: 100%;
            }
            #postform .comiis_sendbtn{
                padding:0 12px;
            }
            #postform .f_f{
                color: #ffffff !important;
            }
            #postform #comiis_post_tab .bg_f.b_b.cl:nth-child(2) .comiis_atlist a:link, 
            #postform #comiis_post_tab .bg_f.b_b.cl:nth-child(2) .comiis_atlist a:visited,
            #postform #comiis_post_tab .bg_f.b_b.cl:nth-child(2) .comiis_atlist a:hover{
                color: #333333 !important;
            }
            #postform .comiis_post_from .comiis_post_ico.comiis_minipost_icot{
                position: fixed;
                display: inline-table;
                z-index: 90;
                left: 0;
                right: 0;
                bottom: 0;
                width: 100%;
                overflow: hidden;
                padding: 0;
            }
            #postform .comiis_post_from #comiis_post_tab .comiis_bqbox{
                height:200px;
            }
            #postform .comiis_post_from #comiis_post_tab .comiis_smiley_box{
                height:150px;
            }
            /* #postform .comiis_post_from #comiis_post_tab .comiis_input_style.cl:nth-child(1){
                height:345px;
            } */
            #postform .comiis_post_from #comiis_post_tab .comiis_input_style .comiis_post_urlico{
                overflow-y: auto;
                height: 155px;
            }
            #postform .comiis_post_from #comiis_post_tab .comiis_smiley_box .comiis_optimization{
                display: block;
                overflow-y: auto;
                height: 100%;
            }
            #postform #comiis_post_tab .comiis_input_style .comiis_xifont{   
                width: -webkit-fill-available;
            }
            #postform #comiis_post_tab .comiis_input_style .comiis_xifont i.comiis_font{   
                font-size: 16px;
                line-height: inherit;
                padding-top: 0px;
            }
            #postform #comiis_post_tab .comiis_input_style .styli_h10{
                display:none;
            }
            .gm_plugin_chartbed .comiis_chartbed_luntan,
            .gm_plugin_chartbed .comiis_chartbed_kggzs,
            .gm_plugin_chartbed .comiis_chartbed_hello,
            .gm_plugin_chartbed .comiis_chartbed_z4a,
            .gm_plugin_chartbed .comiis_chartbed_history{
                height: 140px;
                overflow-y: auto;
                flex-direction: column;
            }
            #comiis_pictitle_key {
                display: flex;
                top: 0px;
                left: 0px;
                height: 42px;
                line-height: 42px;
                overflow: hidden;
                background: #f8f8f8;
            }
            #comiis_pictitle_key a {
                color: #333 !important;
            }
            #comiis_mh_sub{
                height: auto !important;
            }
            #comiis_mh_sub .swiper-wrapper.comiis_post_ico{
                flex-flow: wrap;
            }
            #comiis_mh_sub a{
                margin:5px 0px;
            }
            `);
            let comiis_post_tab = $jq("#postform .comiis_post_from #comiis_post_tab");
            $jq("#postform .comiis_post_from .comiis_post_ico").append(comiis_post_tab);
            comiis_post_tab.remove();
            textarea_scrollHeight = () => {};
            $jq(".comiis_btnbox").hide();


            let btn_del = $jq(".comiis_btnbox .comiis_btn.bg_del");
            let btn_save = $jq(".comiis_btnbox button#postsubmit:contains('保存')");
            let btn_post = $jq(".comiis_btnbox button#postsubmit:contains('发表')");
            let btn_save_caogao = $jq(".comiis_btnbox button#postsubmit em:contains('保存草稿')");
            let btn_reply = $jq(".comiis_btnbox button#postsubmit:contains('回复')");
            GM_addStyle(`
                #comiis_head .header_y{
                    display: flex;
                    align-content: center;
                    align-items: center;
                    justify-content: flex-end;
                    height: 100%;
                }
                #comiis_head .header_y input{
                    border: transparent;
                    background: transparent;
                    text-align: center;
                    margin: 0px 5px;
                }
                #comiis_head .header_y input[value="删除"]{
                    color: #dd0000;
                }
                #comiis_head .header_y input[value="保存"]{
                    color: #b0ff6a;
                }
                #comiis_head .header_y input[value="保存草稿"]{
                    color: #FF9900;
                }
                #comiis_head .header_y input[value="发表"]{
                    color: #b0ff6a;
                }
                #comiis_head .header_y input[value="回复"]{
                    color: #b0ff6a;
                }
                #comiis_post_tab{
                    color:rgb(0,0,0);
                }
                .gm_plugin_chartbed .delImg a,
                .gm_plugin_chartbed .p_img a{
                    padding: 0;
                }
                .gm_plugin_chartbed .delImg a i{
                    line-height: inherit;
                }
                #filedata,
                #filedata_kggzs,
                #filedata_hello,
                #filedata_kggzs{
                    display:none;
                }
            `);
            if (btn_del.length) {
                $jq("#comiis_head .header_y").append($jq(`<input class="new_btn_del" type="button" value="删除">`));
                $jq("#comiis_head .header_y .new_btn_del").on("click", function () {
                    popup.open('是否删除帖子?', 'confirm', 'javascript:comiis_delthread();');
                });
            }
            if (btn_save_caogao.length) {
                $jq("#comiis_head .header_y").append($jq(`<input class="new_btn_save_temp" type="button" value="保存草稿">`));
                $jq("#comiis_head .header_y .new_btn_save_temp").on("click", function () {
                    btn_save_caogao.click();
                });
            }
            if (btn_save.length) {
                $jq("#comiis_head .header_y").append($jq(`<input class="new_btn_save" type="button" value="保存">`));
                $jq("#comiis_head .header_y .new_btn_save").on("click", function () {
                    btn_save.click();
                });
            }
            if (btn_post.length) {
                $jq("#comiis_head .header_y").append($jq(`<input class="new_btn_post" type="button" value="发表">`));
                $jq("#comiis_head .header_y .new_btn_post").on("click", function () {
                    $jq("#postsave").val(1);
                    btn_post.click();
                });
            }
            if (btn_reply.length) {
                $jq("#comiis_head .header_y").append($jq(`<input class="new_btn_reply" type="button" value="回复">`));
                $jq("#comiis_head .header_y .new_btn_reply").on("click", function () {
                    btn_reply.click();
                });
            }
            var $tar = document.querySelector("#postform > div > div.comiis_post_ico.comiis_minipost_icot");
            var MutationObserver = window.MutationObserver || window.webkitMutationObserver || window.MozMutationObserver;

            var recordHeight = 0;
            var mutationObserver = new MutationObserver(function (mutations) {
                let height = window.getComputedStyle($tar).getPropertyValue('height');
                if (height === recordHeight) {
                    return;
                }
                recordHeight = height;

                let needMessageSeeHeight = window.screen.height - document.querySelector("#postform > div > div.comiis_post_ico.comiis_minipost_icot").getBoundingClientRect().height - document.querySelector("#needmessage").getBoundingClientRect().top;
                if (needMessageSeeHeight - 5 < 100) {
                    $jq("#needmessage").css("height", "100px");
                } else {
                    $jq("#needmessage").css("height", needMessageSeeHeight - 5 + "px");
                }
                /* 之后更新外部容器等操作 */
            })

            mutationObserver.observe($tar, {
                childList: true,
                /* 子节点的变动(新增、删除或者更改) */
                attributes: true,
                /* 属性的变动 */
                characterData: true,
                /* 节点内容或节点文本的变动 */
                subtree: true /* 是否将观察器应用于该节点的所有后代节点 */
            })
            $jq(window).on("resize", function (e) {
                let needMessageSeeHeight = window.screen.height - document.querySelector("#postform > div > div.comiis_post_ico.comiis_minipost_icot").getBoundingClientRect().height - document.querySelector("#needmessage").getBoundingClientRect().top;
                if (needMessageSeeHeight - 5 < 100) {
                    $jq("#needmessage").css("height", "100px");
                } else {
                    $jq("#needmessage").css("height", needMessageSeeHeight - 5 + "px");
                }
            })
            let before_image_luntan = $jq(".gm_plugin_chartbed .comiis_over_box.comiis_input_style #imglist");
            $jq(".gm_plugin_chartbed").append($jq(`
                <div class='comiis_upbox comiis_chartbed_luntan'></div>
                <div class='comiis_upbox comiis_chartbed_kggzs' style='display: none;'>
                    <ul id="imglist_kggzs" class="comiis_post_imglist cl">
                        <li class="up_btn">
                            <a href="javascript:;" class="bg_e b_ok f_d">
                                <i class="comiis_font"></i>
                            </a>
                            <input type="file" name="Filedata" id="filedata_kggzs" accept="image/*" multiple="multiple">
                        </li>				
                    </ul>
                </div>
                <div class='comiis_upbox comiis_chartbed_hello' style='display: none;'>
                    <ul id="imglist_hello" class="comiis_post_imglist cl">
                        <li class="up_btn">
                            <a href="javascript:;" class="bg_e b_ok f_d">
                                <i class="comiis_font"></i>
                                
                            </a>
                            <input type="file" name="Filedata" id="filedata_hello" accept="image/*" multiple="multiple">
                        </li>				
                    </ul>
                </div>
                <div class='comiis_upbox comiis_chartbed_z4a' style='display: none;'>
                    <ul id="imglist_z4a" class="comiis_post_imglist cl">
                        <li class="up_btn">
                            <a href="javascript:;" class="bg_e b_ok f_d">
                                <i class="comiis_font"></i>
                                
                            </a>
                            <input type="file" name="Filedata" id="filedata_z4a" accept="image/*" multiple="multiple">
                        </li>				
                    </ul>
                </div>
                <div class='comiis_upbox comiis_chartbed_history' style='display: none;'>
                    <ul id="imglist_history" class="comiis_post_imglist cl">
                               
                    </ul>
                </div>
                <div class="bqbox_t">
                    <ul id="comiis_pictitle_key">
                        <li class="bg_f" id="comiis_pictitle_tab_n_1"><a href="javascript:;" class="">论坛</a></li>
                        <li class="" id="comiis_pictitle_tab_n_2"><a href="javascript:;" class="">康哥图床</a></li>
                        <li class="" id="comiis_pictitle_tab_n_3"><a href="javascript:;" class="">Hello图床</a></li>
                        <li class="" id="comiis_pictitle_tab_n_4"><a href="javascript:;" class="">Z4A图床</a></li>
                        <li class="" id="comiis_pictitle_tab_n_5"><a href="javascript:;" class="">历史图片</a></li>
                    </ul>
                </div>`));
            $jq(".gm_plugin_chartbed .comiis_chartbed_luntan").append(before_image_luntan);

            $jq(".gm_plugin_chartbed .comiis_over_box.comiis_input_style").remove();
            $jq("#comiis_pictitle_key li").on("click", function () {
                /* 图床-各个菜单点击事件 */
                $jq("#comiis_pictitle_key li").removeClass("bg_f");
                $jq(this).addClass("bg_f");
                $jq(".gm_plugin_chartbed .comiis_upbox").hide().eq($jq(this).index()).fadeIn();
            })


            let top_height = $jq("#comiis_head").length ? parseInt($jq("#comiis_head").css("height")) : 0;
            let fatie_toupiao = $jq("#comiis_sub").length ? parseInt($jq("#comiis_sub").css("height")) : 0;
            let extra_margin_bottom = $jq("#pollm_c_1").length ? 60 : 0;
            let title_height = $jq(".comiis_styli.comiis_flex").length ? parseInt($jq(".comiis_styli.comiis_flex").css("height")) : 0;
            let nav_bottom_height = $jq(".comiis_post_ico.comiis_minipost_icot").length ? parseInt($jq(".comiis_post_ico.comiis_minipost_icot").css("height")) : 0;
            $jq("#needmessage").css("height", `${window.screen.height-top_height-fatie_toupiao-48-title_height-nav_bottom_height-10}px`);
            $jq("#needmessage").css("margin-bottom", extra_margin_bottom + "px");
            if ($jq("#imglist li").length != 1) {
                $jq(".comiis_pictitle i").before($jq(`<span class="icon_msgs bg_del" style="border-radius: 15px;display:block;">${$jq("#imglist li").length-1}</span>`))
            }

            tryCatch(mobile.selectPostingSection);
        },
        editorOptimizationOffDefaultBottomReplyBtnClickEvent() {
            /* 取消绑定回复底部回复按钮的默认事件 */
            $jq.each($jq(".comiis_postli_times .dialog[href*=reply]"), (i, v) => {
                /* 把回复按钮的href改成JavaScript:; */
                let href = v.getAttribute("href");
                if (href != "javascript:;") {
                    v.setAttribute("class", "f_c dialog_reply");
                    v.setAttribute("datahref", href);
                    v.setAttribute("href", "javascript:;");
                }
            })
        },
        identifyLinks() {
            /* 识别链接 */
            if (!GM_getValue("v2")) {
                return
            }
            /*TEXT link to Clickable Hyperlink*/
            var clearLink, excludedTags, filter, linkMixInit, linkPack, linkify, observePage, observer, setLink, url_regexp, xpath;
            url_regexp = /((https?:\/\/|www\.)[\x21-\x7e]+[\w\/]|(\w[\w._-]+\.(com|cn|org|net|info|tv|cc))(\/[\x21-\x7e]*[\w\/])?|ed2k:\/\/[\x21-\x7e]+\|\/|thunder:\/\/[\x21-\x7e]+=)/gi;
            clearLink = function (a) {
                var b;
                a = null != (b = a.originalTarget) ? b : a.target;
                if (null != a && "a" === a.localName && -1 !== a.className.indexOf("texttolink") && (b = a.getAttribute("href"), 0 !== b.indexOf("http") && 0 !== b.indexOf("ed2k://") && 0 !== b.indexOf("thunder://"))) return a.setAttribute("href", "http://" + b)
            };
            document.addEventListener("mouseover", clearLink);
            setLink = function (a) {
                /* Uncaught TypeError: a.parentNode.className.indexOf is not a function */
                if (typeof a != "object") {
                    return
                } /* 看不得报错,增加判断 */
                if (null != a && -1 === a.parentNode.className.indexOf("texttolink") && "#cdata-section" !== a.nodeName) {
                    var b = a.textContent.replace(url_regexp, '<a href="$1" target="_blank" class="texttolink">$1</a>');
                    if (a.textContent.length !== b.length) {

                        var c = document.createElement("span");
                        c.innerHTML = b;
                        console.log(`识别: ${c.querySelector("a")}`);
                        return a.parentNode.replaceChild(c, a)
                    }
                }
            };
            excludedTags = "a svg canvas applet input button area pre embed frame frameset head iframe img option map meta noscript object script style textarea code".split(" ");
            xpath = "//text()[not(ancestor::" + excludedTags.join(") and not(ancestor::") + ")]";
            filter = new RegExp("^(" + excludedTags.join("|") + ")$", "i");
            linkPack = function (a, b) {
                var c, d;
                if (b + 1E4 < a.snapshotLength) {
                    var e = c = b;
                    for (d = b + 1E4; b <= d ? c <= d : c >= d; e = b <= d ? ++c : --c) setLink(a.snapshotItem(e));
                    setTimeout(function () {
                        return linkPack(a, b + 1E4)
                    }, 15)
                } else
                    for (e = c = b, d = a.snapshotLength; b <= d ? c <= d : c >= d; e = b <= d ? ++c : --c) setLink(a.snapshotItem(e))
            };
            linkify = function (a) {
                a = document.evaluate(xpath, a, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
                return linkPack(a, 0)
            };
            observePage = function (a) {
                for (a = document.createTreeWalker(a, NodeFilter.SHOW_TEXT, {
                        acceptNode: function (a) {
                            if (!filter.test(a.parentNode.localName)) return NodeFilter.FILTER_ACCEPT
                        }
                    }, !1); a.nextNode();) setLink(a.currentNode)
            };
            observer = new window.MutationObserver(function (a) {
                var b, c;
                var d = 0;
                for (b = a.length; d < b; d++) {
                    var e = a[d];
                    if ("childList" === e.type) {
                        var g = e.addedNodes;
                        var f = 0;
                        for (c = g.length; f < c; f++) e = g[f], observePage(e)
                    }
                }
            });
            linkMixInit = function () {
                /* if (window === window.top && "" !== window.document.title) return linkify(document.body), observer.observe(document.body, {
                    childList: !0,
                    subtree: !0
                })
                修改为可在iframe内执行 */
                return linkify(document.body), observer.observe(document.body, {
                    childList: !0,
                    subtree: !0
                })
            };
            var clearlinkF = function (a) {
                    var url = a.getAttribute("href");
                    if (0 !== url.indexOf("http") && 0 !== url.indexOf("ed2k://") && 0 !== url.indexOf("thunder://")) return a.setAttribute("href", "http://" + url)
                },
                clearlinkE = function () {
                    for (var a = document.getElementsByClassName("texttolink"), b = 0; b < a.length; b++) clearlinkF(a[b])
                };
            setTimeout(clearlinkE, 1500);
            setTimeout(linkMixInit, 100);
        },
        lanzouFunction() {
            /* 蓝奏功能(登录(不可用)、上传、查看历史上传、删除) */
            if (!GM_getValue("v47") ||
                !window.location.href.match(mt_config.rexp.bbs)
            ) {
                return
            };
            var lanZouViewShowLock = false;
            GM_addStyle(`
            .xtiper_content.xmin .loginbox{
                padding: 15px;
                font-size: 14px;
            }
            .xtiper_content.xmin .loginbox div{
                padding-bottom: 10px;
            }
            .xtiper_content.xmin .loginbox .xinput.xful{
                width: 100%;
                resize: none;
                -webkit-appearance: none;
                border-radius: 0;
                height: 34px;
                padding: 0 8px;
                transition-property: box-shadow,border-color;
                -webkit-transition: 0.2s ease-in;
                transition: 0.2s ease-in;
                border: 1px solid #bebebe;
                box-sizing: border-box;
                font-size: 14px;
                color: #333;
            }
            .xtiper_content.xmin .loginbox .xbutton.xful.xblue{
                background-image: none;
                color: #fff;
                border: 1px solid #0e73e9;
                background-color: #0e73e9;
                width: 100%;
                box-shadow: inset 0px 0px 2px #fff;
                -webkit-box-shadow: inset 0px 0px 2px #fff;
                -moz-box-shadow: inset 0px 0px 2px #fff;
                padding: 0 18px;
                height: 38px;
                cursor: pointer;
                font-size: 14px;
                -webkit-border-radius: 0;
                -moz-border-radius: 0;
                border-radius: 0;
            }
            .xtiper_content.xmin .loginbox .xinput.xful:focus,
            .xtiper_content.xmin .loginbox .xinput.xful:hover{
                border-color: #7a9cd3;
                box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%), 0 0 8px rgb(122 156 211 / 60%);
            }
            .xtiper_content.xmin .loginbox .xbutton.xful.xblue,
            .xtiper_content.xmin .loginbox .xbutton.xful.xblue:hover{
                background-color: #005ecd;
            }
            .xtiper_content.xmin .loginbox .xbutton.xful.xblue:active {
                box-shadow: inset 0px 0px 3px rgb(0 0 0 / 30%);
                -o-box-shadow: inset 0px 0px 3px rgba(0,0,0,0.3);
                -webkit-box-shadow: inset 0px 0px 3px rgb(0 0 0 / 30%);
                -moz-box-shadow: inset 0px 0px 3px rgba(0,0,0,0.3);
            }
            `);
            const lanzou = {
                storage: {
                    getUser() {
                        return GM_getValue("lanzouFunctionUser") ? GM_getValue("lanzouFunctionUser") : "";
                    },
                    getPwd() {
                        return GM_getValue("lanzouFunctionPwd") ? GM_getValue("lanzouFunctionPwd") : "";
                    },
                    getFormhash() {
                        return GM_getValue("lanzouFunctionFormhash") ? GM_getValue("lanzouFunctionFormhash") : undefined;
                    },
                    getUploadFiles() {
                        return GM_getValue("lanzouFunctionUploadFiles") ? GM_getValue("lanzouFunctionUploadFiles") : [];
                    },
                    setUser(user) {
                        GM_setValue("lanzouFunctionUser", user);
                    },
                    setPwd(pwd) {
                        GM_setValue("lanzouFunctionPwd", pwd);
                    },
                    setFormhash(formhash) {
                        GM_setValue("lanzouFunctionFormhash", formhash);
                    },
                    setUploadFiles(fileInfo) {
                        GM_setValue("lanzouFunctionUploadFiles", fileInfo);
                    },
                    delUser() {
                        GM_deleteValue("lanzouFunctionUser");
                    },
                    delPwd() {
                        GM_deleteValue("lanzouFunctionPwd");
                    },
                    delFormhash() {
                        GM_deleteValue("lanzouFunctionFormhash");
                    },
                    delUploadFiles(f_id) {
                        let _data_ = lanzou.storage.getUploadFiles();
                        Array.from(_data_).forEach((item, index) => {
                            if (item["f_id"] == f_id) {
                                _data_.splice(index, 1);
                                lanzou.storage.setUploadFiles(_data_);
                                return
                            }
                        })
                    },
                },
                login_getFormHash(user, pwd) {
                    /* 获取账号的formhash */
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: "https://up.woozooo.com/mlogin.php",
                            method: "get",
                            data: `task=3&uid=${encodeURI(user)}&pwd=${pwd}&setSessionId=&setSig=&setScene=&setToken=`,
                            /* headers不设置,使用手机headers */
                            onload: (r) => {
                                let formhash = r.responseText.match(/formhash':'(.+?)'/);
                                if (formhash && formhash.length == 2) {
                                    xtip.msg("获取formhash成功");
                                    res(formhash[1]);
                                } else if (!r.responseText.match("登录(不可用)")) {
                                    res(4);
                                } else {
                                    console.log(r);
                                    xtip.msg("获取formhash失败");
                                    res(null);
                                }
                            },
                            onerror: () => {
                                xtip.msg("网络异常,获取formhash失败");
                                res(null);
                            }

                        })
                    })

                },
                login(user, pwd, formhash) {
                    /* 登录(不可用) */
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: "https://up.woozooo.com/mlogin.php",
                            method: "post",
                            headers: {
                                'content-type': 'application/x-www-form-urlencoded',
                            },
                            data: `task=3&uid=${encodeURI(user)}&pwd=${pwd}&setSessionId=&setSig=&setScene=&setToken=&formhash=${formhash}`,
                            responseType: 'json',
                            onload: (r) => {
                                if ((r.finalUrl.indexOf("woozooo.com/mlogin.php") != -1 && JSON.parse(r.responseText)["zt"] == 1) || r.finalUrl.indexOf("woozooo.com/myfile.php") != -1) {
                                    res(true);
                                } else {
                                    if (r.responseHeaders.indexOf("content-type: text/json" != -1)) {
                                        xtip.msg(JSON.parse(r.responseText)["info"]);
                                    } else {
                                        xtip.msg("登录(不可用)失败");
                                        console.log(r);
                                    }

                                    res(false);
                                }

                            },
                            onerror: () => {
                                xtip.msg("网络异常,登录(不可用)失败");
                                res(false);
                            }

                        })
                    })
                },
                uploadFile(file) {
                    /* 上传文件 */
                    let formData = new FormData();
                    formData.append("task", 1);
                    formData.append("ve", 2);
                    formData.append("id", "WU_FILE_0");
                    formData.append("folder_id_bb_n", -1);
                    formData.append("upload_file", file);
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: "https://up.woozooo.com/fileup.php",
                            method: "post",
                            data: formData,
                            headers: {
                                "Accept": "*/*",
                            },
                            onload: (r) => {
                                let json_data = JSON.parse(r.responseText);
                                if (json_data["zt"] == 1) {
                                    xtip.msg(json_data["info"]);
                                    res(json_data["text"][0]);
                                } else {
                                    xtip.msg(json_data["info"]);
                                    console.log(r);
                                    res(null);
                                }


                            },
                            onerror: () => {
                                xtip.msg("网络异常,删除失败");
                                res(null);
                            }
                        })
                    })
                },
                deleteFile(file_id) {
                    /* 删除文件 */
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: `https://up.woozooo.com/doupload.php`,
                            method: "post",
                            data: `task=6&file_id=${file_id}`,
                            headers: {
                                "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
                            },
                            onload: (r) => {
                                try {
                                    let data = JSON.parse(r.responseText);
                                    xtip.msg(data["info"]);
                                    res(true);
                                } catch (error) {
                                    xtip.msg("删除失败");
                                    console.log(r);
                                    res(false);
                                }
                            },
                            onerror: () => {
                                xtip.msg("网络异常,删除失败");
                                res(false);
                            }
                        })
                    })
                },
                outLogin(user) {
                    /* 退出登录(不可用) */
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: `https://up.woozooo.com/account.php?action=logout&${encodeURI(user)}`,
                            method: "get",
                            onload: (r) => {
                                res(r.responseText.match("成功") ? true : false)
                            },
                            onerror: () => {
                                xtip.msg("网络异常,退出失败");
                                res(false);
                            }
                        })
                    })

                }

            }
            async function showUploadFiles() {
                /* 历史上传的文件们 */
                lanZouViewShowLock = false;
                if (typeof $jq.NZ_MsgBox == "undefined") {
                    popup.open("加载NZMsgBox.js中", "alert");
                    await GM_asyncLoadScriptNode("https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js");
                    if (typeof $jq.NZ_MsgBox == "undefined") {
                        popup.open("网络异常,加载NZMsgBox.js失败", "alert");
                        return;
                    } else {
                        console.log("成功加载NZMsgBox.js");
                    }
                }
                let data = lanzou.storage.getUploadFiles();
                data.reverse();
                let content = "";
                $jq.NZ_MsgBox.alert({
                    title: "蓝奏云已上传的文件",
                    content: "获取中",
                    type: "",
                    location: "center",
                    buttons: {
                        confirm: {
                            text: "确定"
                        }
                    }
                });

                $jq.each(data, (index, value) => {
                    let fileContent = `
                    <div style="display: flex;margin: 15px 5px;">
                        <a href="${value["is_newd"]}/${value["f_id"]}" target="_blank" style="color: #1e90ff;width: 80%;word-wrap: break-word;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;height: 30px;">${value["name_all"]}</a>
                        <div style="margin-left: 10px;" class="dellanzoufile" t-id="${value["id"]}" t-f-id="${value["f_id"]}">
                            <i class="comiis_font" style="font-size: 24px;padding-left: 6px;"></i>
                        </div>
                    </div>`;
                    content = content + fileContent;
                })

                $jq(".msgcon").html("");
                $jq(".msgcon").append(content);
                $jq(".msgcon").css("height", "400px");
                GM_addStyle(`
                #mask,
                #ntcmsg_popmenu{
                    z-index: 100000 !important;
                }
                `)
                unsafeWindow.plugin_delete_lanzou_file = (tid, fid, index) => {
                    popup.close();
                    lanzou.deleteFile(tid);
                    console.log("删除文件", fid);
                    lanzou.storage.delUploadFiles(fid);
                    $jq(".msgcontainer .msgcon div").eq(index).remove();
                    xtip.msg("删除成功");
                }
                $jq(".dellanzoufile i.comiis_font").on("click", function (e) {
                    var t_id = e.target.parentElement.getAttribute("t-id");
                    var t_f_id = e.target.parentElement.getAttribute("t-f-id");
                    var index = $jq(this).parent().parent().index();
                    popup.open('确定删除该文件?', 'confirm', `javascript:plugin_delete_lanzou_file(${t_id},'${t_f_id}',${index});`);
                });
            }
            async function showLoginView() {
                lanZouViewShowLock = false;
                xtip.open({
                    type: 'html',
                    content: `<div class="loginbox">
                    <strong>蓝奏云</strong><br><br>
                    <div><input type="text" class="xinput xful" placeholder="账号" /></div>
                    <div><input type="password" class="xinput xful" placeholder="密码" /></div>
                    <div><button class="xbutton xful xblue">登录(不可用)</button></div>
                    </div>
                    </div>`,
                    app: true,
                    success: async (x) => {
                        let localDataUser = lanzou.storage.getUser();
                        let localDataPwd = lanzou.storage.getPwd();
                        if (localDataUser != "" && localDataPwd != "") {
                            x.xtipdiv.querySelector(".xinput.xful[type='text']").value = localDataUser;
                            x.xtipdiv.querySelector(".xinput.xful[type='password']").value = localDataPwd;
                        }
                        x.xtipdiv.querySelector(".xbutton.xful.xblue").onclick = async () => {
                            let inputUser = x.xtipdiv.querySelector(".xinput.xful[type='text']").value.trim();
                            let inputPwd = x.xtipdiv.querySelector(".xinput.xful[type='password']").value.trim();
                            if (inputUser != "" && inputPwd != "") {
                                let _formhash_ = await lanzou.login_getFormHash(inputUser, inputPwd);
                                xtip.msg("登录(不可用)中请稍后...");
                                console.log(_formhash_);
                                if (_formhash_ == 4) {
                                    console.log("已登录(不可用)");
                                    lanzou.storage.setUser(inputUser);
                                    lanzou.storage.setPwd(inputPwd);
                                    if (lanzou.storage.getFormhash() == null) {
                                        console.log("未知原因,已登录(不可用)但本地未保存formhash,建立临时值");
                                        lanzou.storage.setFormhash(_formhash_);
                                    }
                                    xtip.close(x.mainid);
                                    showView();
                                    return;
                                };
                                if (_formhash_ == null) {
                                    return;
                                };
                                let loginStatus = await lanzou.login(inputUser, inputPwd, _formhash_);
                                if (loginStatus) {
                                    console.log("登录(不可用)成功");
                                    console.log(inputUser, inputPwd, _formhash_);
                                    lanzou.storage.setUser(inputUser);
                                    lanzou.storage.setPwd(inputPwd);
                                    lanzou.storage.setFormhash(_formhash_);
                                    xtip.close(x.mainid);
                                    showView();
                                }
                            } else {
                                xtip.msg('账号或密码不能为空');
                            }
                        }

                    }
                });
            }
            async function showLanZouView(user, pwd) {
                lanZouViewShowLock = false;
                let sheet = null;
                let _formhash_ = lanzou.storage.getFormhash();
                let loginStatus = await lanzou.login(user, pwd, _formhash_);
                if (!loginStatus) {
                    xtip.msg("登录(不可用)过期");
                    lanzou.storage.delFormhash();
                    showLoginView();
                    return;
                }
                sheet = xtip.sheet({
                    btn: [`欢迎! ${user}`, '上传<input type="file" name="Filedata" accept="doc,docx,zip,rar,apk,ipa,txt,exe,7z,e,z,ct,ke,cetrainer,db,tar,pdf,w3x,epub,mobi,azw,azw3,osk,osz,xpa,cpk,lua,jar,dmg,ppt,pptx,xls,xlsx,mp3,ipa,iso,img,gho,ttf,ttc,txf,dwg,bat,imazingapp,dll,crx,xapk,conf,deb,rp,rpm,rplib,mobileconfig,appimage,lolgezi,flac,cad,hwt,accdb,ce,xmind,enc,bds,bdi,ssf,it,pkg,cfg" id="lanzouuploadfilebtn" style="display:none;">', '查看历史上传']
                });

                $jq("#lanzouuploadfilebtn").off("change").change(async (e) => {
                    let lanzouChooseFile = e.currentTarget.files[0];
                    console.log(lanzouChooseFile);
                    let uploadFileInfo = await lanzou.uploadFile(lanzouChooseFile);
                    if (uploadFileInfo) {
                        let tempData = lanzou.storage.getUploadFiles();
                        tempData = tempData.concat(uploadFileInfo);
                        GM_setClipboard(`${uploadFileInfo["is_newd"]}/${uploadFileInfo["f_id"]}`);
                        xtip.msg("已复制到剪贴板");
                        console.log(tempData);
                        lanzou.storage.setUploadFiles(tempData);
                    }
                })


                let anyTouchNode = new AnyTouch(document.getElementById(sheet));

                anyTouchNode.on("tap", (e) => {
                    if (document.getElementById(sheet).querySelector(".xtiper_bg").outerHTML.indexOf(e.target.outerHTML) != -1) {
                        /* 点击背景不关闭小窗 */
                        return;
                    }
                    if (document.querySelectorAll(".xtiper_sheet_ul.xtiper_sheet_center .xtiper_sheet_li")[0].outerHTML.indexOf(e.target.outerHTML) != -1) {
                        /* 用户 */
                        xtip.confirm('确定退出登录(不可用)吗?', {
                            btn1: async function () {
                                let logoutStatus = await lanzou.outLogin(lanzou.storage.getUser());
                                if (logoutStatus) {
                                    xtip.msg("退出登录(不可用)成功");
                                    lanzou.storage.delFormhash();
                                    anyTouchNode.off("tap");
                                    xtip.close(sheet);
                                    lanZouViewShowLock = false;
                                } else {
                                    xtip.msg("退出登录(不可用)失败");
                                }
                            }
                        });
                        return;
                    }
                    if (document.querySelectorAll(".xtiper_sheet_ul.xtiper_sheet_center .xtiper_sheet_li")[1].outerHTML.indexOf(e.target.outerHTML) != -1) {
                        /* 上传 */
                        $jq("#lanzouuploadfilebtn").val("");
                        $jq("#lanzouuploadfilebtn").click();
                        return;
                    }
                    if (document.querySelectorAll(".xtiper_sheet_ul.xtiper_sheet_center .xtiper_sheet_li")[2].outerHTML.indexOf(e.target.outerHTML) != -1) {
                        /* 查看历史上传 */
                        anyTouchNode.off("tap");
                        xtip.close(sheet);
                        showUploadFiles();
                        return;
                    }
                    if (document.querySelectorAll(".xtiper_sheet_ul.xtiper_sheet_center .xtiper_sheet_li")[3].outerHTML.indexOf(e.target.outerHTML) != -1) {
                        /* 取消 */
                        anyTouchNode.off("tap");
                        xtip.close(sheet);
                        lanZouViewShowLock = false;
                        return;
                    }
                })

            }

            async function showView() {
                let user = lanzou.storage.getUser();
                let pwd = lanzou.storage.getPwd();
                let formhash = lanzou.storage.getFormhash();
                if (user == "" || pwd == "" || formhash == null) {
                    showLoginView();
                } else {
                    showLanZouView(user, pwd);
                }
            }

            function insertBtn() {
                let comiis_left_Touch = document.createElement("li");
                comiis_left_Touch.className = "comiis_left_Touch";
                let ANode = document.createElement("a");
                ANode.setAttribute("href", "javascript:;");
                ANode.className = "blacklist";
                ANode.innerHTML = `
                    <div class="styli_tit f_c">
                        <img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAEAAQADASIAAhEBAxEB/8QAHAABAAIDAQEBAAAAAAAAAAAAAAECAwUGBAcI/8QAQRAAAgEDAAYDDgQFAwUAAAAAAAECAwQRBQYhMUFRElJxExQVMjM0YXJzgZGSscEiI6HRB2Lh8PEWJEI1Q1OTsv/EABsBAQACAwEBAAAAAAAAAAAAAAAEBgECBQMH/8QAMREBAAEDAgIIBQQDAQAAAAAAAAECAwQRMQUyEhUhM1FxkeEGE0GxwRQiYaFCgdHw/9oADAMBAAIRAxEAPwD7+ANyywBilXSbjBOclvS4e8p0pXGHFuNHmtjl/QyxpxhFRSSS4LcBidKrV8pVcVnxaWz4v/BdUILhn125P9TKQAAAAAAAAAAAAAAAAAAAAAAAAAJIAFJUYy4Y9MW4v4oxqlVp+TquS6tTb8H/AJM5OQMMa6clGcXCT3J7n7zMVlTjOLjJJxfB7jFmVv40nKlze+P9AM4AAHnl/uJuLX5UXt/mf7FriclGNOD/ABzeF6FxZkhFQgklsSwgJSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAayvuABgT73mo/9qTwl1H+x6Cs4qcWmtjWGY7eT6LpyeZQeG+a4MCtPFW4qVNuz8te7f/foPQzFQTVKOVta6T7XtZkAAAAAAAAAAAAAAAAAAAAAHhbW8IADFK6oQeJVYp9pTv6241YrtZ41ZFqmdJqjXzhnozpro9AMUbmjN4jUi/eZU01s3HrFUVbSwAAyAAAAAAAAJPPU/KuKdTb+L8uWznu/v0mcxXMXKhPG9Ryu1bUBlAAAAAAAAAAAAACTw3WlrS02Sn0pdWG1mrqayyz+XbpetIiXc7HtTpVV2+v2e9vGu3O2mHREHNrWSv8A+Cn8WeyhrDb1MKpCUJPe96NKOJYtc6RV66w2qw71Ma6NwJSUIuUmklvbMcrmjGn3Tui6PoNLd3k7ieW2ocI/ueedxK1i0a71TtH/AL6NLVmq5L2XGlEsxoLPDpS3e411W4q1fHqSl79hiyCo5OfkZM611dnhGyfRZoo2gbyVqbixSp4pFt80NMvuK/JjTw8o9FG9uKLXQqPC4Pajzg6FFyuidaZ0VSKpp7Ylv7TStOu1Cqu5z5t7GbDsOQNlYaTlRap1m5U+De+J3MLiszMUX/X/AKmWcnXsrb0CLUopp5T3MHeTQAAAAAAHEAAAAAAAAAASBEmoxcm8JLLbOZ0npqdeTpW0ujSWxyW+X9DPrBftYs6bwntqNfQ54r3FM+rpTZtzppvP4dXCxY0+ZX/pLbb37WQSDhOogtS8rDtKlqflodpidmJ2bZPAAISCEEgAUn4pcpU8U3o5oR8vuK/JjABNVMAAG40RevKtqj9R/Y3ByMJypzjOLxKLyjprK7he2kK9POJLc+DLNwjIqu2poq/xdDGu9KOjO8M4AOslAAADiAAAAAAkCCdxotYda7DV6n0arda6kswoQe3tfJHzDTOuGldMylGpW7jQe6jS2L3veyFkZ1qz2bz4Org8IyMuOlH7afGfx4vsNbSVlQyp3EMrgnl/oeOprDaRi+5qc5cNmEz5zqvUlOxq9KTeJ4WeGw3hxrvGL8zMUxEJNzhVu1XNFUzOjJXqyr1p1ZbZSeWYwDjzMzOspURERpCQQDDKSaflYdpBNPysO0TsxOzbAAhIKCQABSp4pcpU8U2o5oR8vuK/JjABOVMAAAy6lXXdKN7bvOadXpLbwf8AgxGn1W0vQ0Zpm5hcz6FKs3HpvdFp7Mlp+G7U3Ld+IjWdKfvJRci3eomZ7O19HBEJwqRUoSjKL3NPJbB03aQAAAAAAEgQcnrlrbHQdHvS1alfVI/+tc36Tdaf0vT0Joitezw5RWKcetJ7j4beXde/u6lzc1HUq1JZlJs5vEMubUdCjef6d7gnDIya/m3I/bH9ypXr1bmvOvXqSqVZvpSlJ7WzGAV+Z1XeIiI0h1uqvmNb2n2N8aHVTzGt7T7I3xFr5pVzM7+oABojBJAAkmn5WHaVLU/Kw7ROzE7NsACEgoJAAFKnilylTxTejmhGy+4r8mMAE1VAAADhLjzmr67+p3Zwlfzmr67+pdvgvnveUflDy9oejR+lr3RlVTta8oLO2Odj9x9C0DrVb6XkrerHuN1jZFvZPsPmBaMpU5qUW1JbU0XLKwrd+O3snxaY2ZcsT2dseD7cQczqprG9J0+87mX+5hHMZddfudOVi9Zqs1zRXustm7TdoiunZAAPJ6BJBE5KEHKW5LLA+WfxI0tK50tT0bCX5VtFSmk982s/osfFnEHq0ndzv9KXV3N/irVZT7MvceUqV+7N25Nfi+l4WPGPj0Wo+kf39QAHilOt1U8xre0+yN8aHVTzGt7T7I3xGr5pVzM7+pJABojBJBIEFqflYdpBNPysO0TsxOzbAAhIIQSQBJSp4pcrU8U2o5oR8vuK/JiABOVMAAA4Sv5zV9Z/U7s4Sv5zV9Z/Uu3wXz3vKPyh5e0MYA4F+QWW0uatnd0rijJxqU5dJM+v6OvaekbCjdU3sqRy1yfFHxs7zUG9cre5sn/waqR7HsZyuK2IqtfMjePs6nC7003PlztP3dkOIBXFgDzaR/6Zd+xn/wDLPSYbyDq2NemtjlTlHdzRrVyy3onSqJfnp72CZJqTT3pkFOfUgAAdbqp5jW9p9jfmg1V8xre0+xvyNXzSrmZ39QQAaIwASBBan5WHaVLU/Kw7ROzE7NsQSCEggIJAFKnilyk/FN6OaEbL7ivyYwATVUAAAOEr+c1fWf1O7OEr+c1fWf1Lt8F897yj8oeXtDGBwBfkEOj1JrOnrFCC3Vacov4Z+xzZv9TYdPWa2ePFU5dn4WvuRsuImxXr4SkYszF+jTxh9QABUFsCWQSB8J1lsPBmsd9bYxFVHKHqy2r9Gak+lfxL0O6lKhpalHLpruVXHLOx/qz5qVXKtfKvTS+j8NyYycamv67T5wAAjJzrdVPMa3tPsb40OqnmNb2n2RviNXzSrmZ39QADRGASQALU/Kx7Span5WHaJ2YnZtgCCEgpAAApU8UuUqeKb0c0I+X3FfkxgAmqmAAAcJX85q+s/qd2cJX85q+s/qXb4L573lH5Q8vaGPgCCS/IKDsdQbXp3tzdNbIQ6Cfpf+Djj6tqvo16M0LShNYq1PzJp8G+BzuJ3YosTT9ZdDhtqa78VfSG6IA4orCyAAAxXVrRvLWpbV4KdKpFxlF8UfEdY9AV9X9JSt6mZ0ZbaVXGyS/c+5mu01oW005YytrmPqTW+D5ohZuJF+ns5odXhXEpw7n7uSd/+vgoNxp/Vy90BdOnXi50W33OtFbJL7M05W66KqJ6NUaSvtq7RdoiuidYl1uqvmNb2n2RvjQ6q+Y1vafY3xEr5pV/M7+oABojAAAFqflYdpUtT8rDtE7MTs2wAISCgkAAUqeKXKT3G1HNCPmdxX5MYAJypgAAHCV/OavrP6ndnCXHnNX1n9S7fBfPe8o/KHl7QxkA6PV/VWvpSca9ynStE85e+foRebt6i1T0q50hGtWq7tXRojtZNUdAPSN2ryvFq2ovKXXly7D6QY6FCla0IUaMFCnBYjFcDIVXLyasi50p2+izYuNTYo6Mb/UHEAjJIAABJAAx17ajdUZUq9KFSnLfGSymcPpn+GtvXk6uiq6t5Pa6VTLi+x71+p3gPG9j270aVwlY2bfxatbVWn29HB6F1N0jo20nCpKlKcpdJqMtm42HgC+6kfnR1pBAng+PM66z6+z3r4nfrqmqrTWXJ+AL7qR+dDwBfdSPzo6wGOpsfxn19mnWF3+HJ+AL7qR+dDwBfdSPzo6wDqbH8Z9fY6wu/wAOT8AX3Uj86LQ0DeqpFuEUk+sjqgY6lx/GfX2OsLv8NJ4LuOUfmHgy46sfmN2Dz6gxfGfX2eX6q40ngy46sfmHgu46sfmN2B1Bi+M+vsfqrjSeC7jqx+JWeirl7FGPxN6DMcBxYnXWfX2aV36q6Zpq2lz3gm76sfiPBN31I/E6LIyevU+P4z6+yB+ltud8E3fUj8R4Ju+pH5josjI6nx/GfX2P0ltz0dEXTlhqKXPJzv8AobSNa8qdOrRp0nJtTznK7D6EDp8Oojh/S+R/l49uzSvBs16dJoNF6oaO0d0alSLuay/5VFsXYjfpJJJLCW5IA9rl2u7PSrnVIt2qLcaURoAA83oDiAAAAAAAAAAIbwSVkBWVTBR11zMVTJ55N7d4HsdwV74S25R4ZdLgY25LiwNi7lZI76RrJOTK5kBtO+ljeO+1zNVmWeJDcuYG2779I76XM1OZc2TmXNgbZXS4MlXK5mpzL0ll0sgbXvlcyVcGsTlzZddLO0DZKuXjVTNcnL0/Ez085A9uUSY4cDIAAAAAAABuAx0G3Rjl5aXRfatjMhgpRdKvVhh4k+6J9u9f3zPQBAAAAAAQ1nsJAGKUM8Cjoo9AA8ve65Ir3suR7AB4u9U+BHeiPcAPA7Rch3ouR7sLGCcAa/vRciVaLke/AwB4O9FyRZWqXBHtwEgPH3siVbr0HrwhgDzKgkXVJLgZgBVR5lgAAAAAACTFcNqjLDw2uinyb2L6mU81Vd0uKdLbhPukvdu/v0AXuINxU4rMoPKXPmXpzjOCcXmLWV2Fzzv/AG03LdRk8v8AlfPsAzgJ57QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJDeO3kBWpOMIOUnhJZZS3g1F1JrE5vLXJcEVS75nGefyYvK/nfPsPQAG9YYAHnxK2x0YuVHktrj/QyxnGcU001zW4uYpUI5coPoSe9pbwMgMEqtSk306MpRzsdP8T96MirQeMvo+unF/qBcBNPkPcAAAAAAACQIAGQAHuAAAAAAABJAAAOSS2tL3gAY3WgtqfSX8icvoUVWrVX5dJxWdsquz4L/AABlnUjCLk2klxe4xYnctqUXCjye+f7IvGhHKlUbqSW5tbvcZQG5YQAA/9k=">
                    </div>
                    <div class="flex">蓝奏云</div>`;
                ANode.onclick = () => {
                    if (!lanZouViewShowLock) {
                        showView();
                        lanZouViewShowLock = true;
                    } else {
                        console.log("重复点击");
                    }

                }
                comiis_left_Touch.append(ANode);
                $jq(".comiis_sidenv_box .sidenv_li .comiis_left_Touch.bdew").append(comiis_left_Touch);
            }
            insertBtn();
        },
        async loadCheckboxTipResource() {
            /* 加载checkbox值变化的显示的提示的资源 */
            await GM_asyncLoadScriptContent("https://whitesev.gitee.io/static_resource/ios_loading/js/iosOverlay.js");
            await GM_asyncLoadStyleSheet("https://whitesev.gitee.io/static_resource/ios_loading/css/iosOverlay.css");
        },
        loadNextComments() {
            /* 加载下一页的评论 */
            function autoLoadNextPageComments(post_comments_list) {
                /* 自动加载下一页的评论 */
                $jq("#loading-comment-tip")[0].parentElement.style.display = "";
                let next_page_url = post_comments_list.children[2].href;
                let isloding_flag = false;
                console.log("预设,获取下一页url:", next_page_url);
                if (next_page_url.indexOf("javascript:;") != -1) {
                    console.log(post_comments_list);
                    console.log("无多页评论");
                    $jq("#loading-comment-tip")[0].parentElement.style.display = "none";
                    return;
                }

                function _loadNextComments_() {
                    if (isloding_flag == false) {
                        isloding_flag = true;
                        $jq("#loading-comment-tip").text("正在加载评论中...");
                        $jq("#loading-comment-tip")[0].parentElement.style.display = "";
                        let _url_ = next_page_url;
                        $jq.get(_url_, function (data, status, xhr) {
                            console.log("正在请求的下一页url", _url_);
                            let postlist = $jq(data);
                            let kqideSourceNode = $jq(".comiis_postlist.kqide");
                            let postDOM = postlist.find(".comiis_postlist.kqide").html();
                            let get_next_page_url = postlist.find(".nxt");
                            if (get_next_page_url.length != 0) {
                                console.log("成功获取到下一页-评论");
                                next_page_url = get_next_page_url.attr("href");
                                let newURL = new URL(_url_);
                                let setLocationUrl = `${newURL.pathname}${newURL.search}`;
                                console.log("设置当前的url为请求的下一页url", window.location.origin + setLocationUrl);
                                window.history.pushState('forward', null, setLocationUrl);
                                $jq("#loading-comment-tip")[0].parentElement.style.display = "none";
                            } else {
                                console.log("评论全部加载完毕,关闭监听事件");
                                let newURL = new URL(next_page_url);
                                let setLocationUrl = `${newURL.pathname}${newURL.search}`;
                                console.log("设置当前的url为请求的最后一页url", setLocationUrl);
                                window.history.pushState('forward', null, setLocationUrl);
                                $jq(".comiis_page.bg_f").remove();
                                $jq("#loading-comment-tip").text("已加载完所有评论");
                                $jq("#loading-comment-tip")[0].parentElement.style.display = "";
                                $jq("#loading-comment-tip").off("click", _loadNextComments_);
                                $jq(window).off("scroll", scroll_loadNextComments);

                            }
                            isloding_flag = false;
                            kqideSourceNode.append(postDOM);
                            mobile.needRepeatLoadingJSResource();
                        })

                    } else {
                        console.log("正在加载中请稍后");
                    }
                }

                function scroll_loadNextComments() {
                    if (Math.ceil($jq(window).scrollTop() + $jq(window).height() + 150) >= $jq(document).height()) {
                        /* load data */
                        _loadNextComments_();
                    }
                }
                $jq(window).on("scroll", scroll_loadNextComments);
                $jq("#loading-comment-tip").text("请上下滑动或点击加载");
                $jq("#loading-comment-tip").on("click", _loadNextComments_);
            }
            if (GM_getValue("v21") && window.location.href.match(mt_config.rexp.forum_post) && document.title.indexOf("提示信息 - MT论坛") == -1) {
                let tip_html = `
                <div class="comiis_multi_box bg_f b_t">
                    <label class="comiis_loadbtn bg_e f_d" id="loading-comment-tip">
                    正在等待页面加载完毕
                    </label>
                </div>`;
                $jq(".comiis_bodybox").append($jq(tip_html));
                let commentsEle = document.querySelector(".comiis_pltit span.f_d") || document.querySelector("#comiis_foot_memu .comiis_kmvnum");
                if (document.querySelector(".comiis_pltit h2") && document.querySelector(".comiis_pltit h2").textContent.indexOf("暂无评论") != -1) {
                    console.log("暂无评论");
                    $jq("#loading-comment-tip")[0].parentElement.style.display = "none";
                    return;
                }
                let commentsNum = parseInt(commentsEle.textContent);
                if (commentsNum >= 10) {
                    let setAutoLoadInterval = setInterval(function () {
                        let post_comments_list = document.querySelector(".comiis_page.bg_f"); /* 评论列表 */
                        if (post_comments_list) {
                            autoLoadNextPageComments(post_comments_list);
                            clearInterval(setAutoLoadInterval);
                        } else {
                            console.log("正在等待下一页列表元素出现");
                        }
                    }, 500)
                } else {
                    console.log("无多页评论");
                    $jq("#loading-comment-tip")[0].parentElement.style.display = "none";
                }
            }
        },
        loadPrevComments() {
            /* 加载上一页的评论 */
            function autoLoadPrevPageComments() {
                /* 自动加载上一页的评论 */
                let post_comments_list = document.querySelector(".comiis_page.bg_f");
                let prev_page_url = post_comments_list.children[0].href;
                let isloding_flag = false;
                console.log("预设,获取上一页url:", prev_page_url);
                $jq("#loading-comment-tip-prev").text("请上下滑动或点击加载");
                $jq("#loading-comment-tip-prev").on("click", _loadPrevComments_);

                function _loadPrevComments_() {
                    if (isloding_flag) {
                        console.log("正在加载上一页中请稍后");
                    } else {
                        isloding_flag = true;
                        $jq("#loading-comment-tip-prev").text("正在加载评论中...");
                        $jq("#loading-comment-tip-prev")[0].parentElement.style.display = "";
                        let _url_ = prev_page_url;
                        $jq.get(_url_, function (data, status, xhr) {
                            console.log("正在请求的上一页评论:", prev_page_url);
                            let postlist = $jq(data);
                            let kqideSourceNode = $jq(".comiis_postlist.kqide");
                            let postDOM = postlist.find(".comiis_postlist.kqide").html();
                            let get_pregv_page_url = postlist.find(".prev");
                            if (get_pregv_page_url.length != 0) {
                                console.log("成功获取到上一页-评论");
                                prev_page_url = get_pregv_page_url.attr("href");
                                let newURL = new URL(_url_);
                                let setLocationUrl = `${newURL.pathname}${newURL.search}`;
                                console.log("设置当前的url为请求的上一页url", window.location.origin + setLocationUrl);
                                window.history.pushState('forward', null, setLocationUrl);
                                $jq("#loading-comment-tip-prev")[0].parentElement.style.display = "none";
                                isloding_flag = false;
                                kqideSourceNode.prepend(postDOM);
                                mobile.needRepeatLoadingJSResource();
                            } else {
                                isloding_flag = false;
                                kqideSourceNode.prepend(postDOM);
                                let newURL = new URL(prev_page_url);
                                let setLocationUrl = `${newURL.pathname}${newURL.search}`;
                                console.log("已到顶页,设置当前的url第一页url", window.location.origin + setLocationUrl);
                                window.history.pushState('forward', null, setLocationUrl);
                                console.log("上一页评论全部加载完毕,关闭监听事件");
                                let page_title = postlist.find(".comiis_viewtit")[0].outerHTML;
                                console.log($jq(page_title));
                                kqideSourceNode.prepend($jq(page_title)[0]);
                                mobile.needRepeatLoadingJSResource();
                                /* $jq(".comiis_page.bg_f").remove(); */
                                $jq("#loading-comment-tip-prev").remove();
                                $jq("#loading-comment-tip-prev").off("click", _loadPrevComments_);
                                $jq(window).off("scroll", );

                            }

                        })
                    }
                    /* $jq(window).unbind("scroll",_loadPrevComments_); */
                }

                function scroll_loadPrevComments() {
                    if ($jq(window).scrollTop() <= 50) {
                        _loadPrevComments_();
                    }
                }
                $jq(window).on("scroll", scroll_loadPrevComments);
            }

            if (GM_getValue("v32") && window.location.href.match(mt_config.rexp.forum_post) && document.title.indexOf("提示信息 - MT论坛") == -1) {
                if (!document.querySelector(".comiis_pltit span.f_d")) {
                    console.log("当前不在第一页,加载上一页评论");
                    let tip_html = `
                    <div class="comiis_multi_box bg_f b_t">
                        <label class="comiis_loadbtn bg_e f_d" id="loading-comment-tip-prev">
                        正在等待页面加载完毕
                        </label>
                    </div>`;
                    $jq(".comiis_bodybox script")[0].after($jq(tip_html)[0]);
                    if (document.querySelector(".comiis_pltit h2") && document.querySelector(".comiis_pltit h2").textContent.indexOf("暂无评论") != -1) {
                        console.log("暂无上一页评论");
                        $jq("#loading-comment-tip-prev")[0].parentElement.style.display = "none";
                        return;
                    }
                    autoLoadPrevPageComments();
                }
            }
        },
        main() {
            /* 手机版按顺序加载的函数 */
            tryCatch(mobile.commentsAddReviews);
            tryCatch(mobile.recoveryIMGWidth);
            tryCatch(mobile.identifyLinks);
            tryCatch(mobile.showUserUID);
            tryCatch(mobile.previewPictures);
            tryCatch(mobile.removeForumPostFontStyle);
            tryCatch(mobile.removeForumPostCommentFontStyle);
            tryCatch(mobile.autoSignIn,true);
            tryCatch(mobile.autoExpendFullTextByForumPost);
            tryCatch(mobile.searchHistory);
            tryCatch(mobile.loadNextComments, '', '$jq("#loading-comment-tip").text("加载评论失败")');
            tryCatch(mobile.loadPrevComments, '', '$jq("#loading-comment-tip-prev").text("加载评论失败")');
            tryCatch(mobile.repairClearSearchInput);
            tryCatch(mobile.repairUnableToEnterOtherSpaceCorrectly);
            tryCatch(mobile.chatChartBed);
            tryCatch(mobile.pageSmallWindowBrowsingForumPost);
            tryCatch(mobile.codeQuoteCopyBtn);
            tryCatch(mobile.editorOptimization);
            tryCatch(mobile.editorOptimizationFull);
            tryCatch(mobile.shieldUser);
            tryCatch(mobile.shieldPlate);
            tryCatch(mobile.userCheckBoxSettings); /* 选项主要界面内容 */
            tryCatch(mobile.blackHome.insertMobileBlackHomeButton);
            tryCatch(mobile.lanzouFunction);
            tryCatch(mobile.paymentSubjectReminder);
            tryCatch(mobile.blacklistShieldUsersOrBlocks);
            tryCatch(mobile.showTodayStar);
            tryCatch(mobile.showSignInRanking);
            tryCatch(mobile.pageAfterDOMChangeRunFunction);

        },
        needRepeatLoadingJSResource() {
            /* 帖子内需要重复执行的js */

            tryCatch(mobile.shieldUser);
            tryCatch(mobile.commentsAddReviews);
            tryCatch(mobile.identifyLinks);
            tryCatch(mobile.showUserUID);
            tryCatch(mobile.previewPictures);
            tryCatch(mobile.modifyForumPostFontColor);
            tryCatch(mobile.pageSmallWindowBrowsingForumPost);
            tryCatch(mobile.codeQuoteCopyBtn);
            tryCatch(mobile.editorOptimizationOffDefaultBottomReplyBtnClickEvent);
            popup.init();
        },
        pageAfterDOMChangeRunFunction() {
            /* 当本页面动态加载帖子需要重复加载的东西 */
            if (window.location.href.match(/bbs.binmt.cc\/forum/) ||
                window.location.href.match(/bbs.binmt.cc\/home.php\?mod=space&do=thread&view=me/) ||
                window.location.href.match(/home.php\?mod=space&uid=.+&do=thread&view=me/)) {
                function beforeHookRun() {
                    tryCatch(mobile.showUserUID);
                    tryCatch(mobile.previewPictures);
                    tryCatch(mobile.shieldUser);
                    tryCatch(mobile.shieldPlate);
                    tryCatch(mobile.pageSmallWindowBrowsingForumPost);
                    tryCatch(mobile.codeQuoteCopyBtn);
                }
                document.body.addEventListener("DOMNodeInserted", (event) => {
                    let ele = event.target;
                    if (ele.className != null && ele.className.indexOf("comiis_forumlist") != -1) {
                        beforeHookRun();
                    }
                })
            }
        },
        pageSmallWindowBrowsingForumPost() {
            /* 页面小窗浏览帖子 */
            if (!GM_getValue("v45") && (
                    !(window.location.href.match(mt_config.rexp.forum_guide_url) ||
                        !(window.location.href.match(mt_config.rexp.search_url))
                    ))) {
                return
            };

            /*   if (window != top.window) {
                  console.log("当前在非top里,已禁用初始化小窗");
                  return;
              } */
            GM_addStyle(`
                .xtiper_sheet,
                .xtiper_sheet .xtiper_sheet_tit{
                    border-radius: 18px 18px 0px 0px;
                }
                /* title自定义美化 */
                .xtiper_sheet_tit.xtiper_sheet_left{
                    display: block;
                    background: #fff;
                    width: 100%;
                    box-sizing: border-box;
                }
                .xtiper_sheet_tit.xtiper_sheet_left img.xtiper_tit_ico{
                    background: #fff;
                    filter: invert(100%);
                    width: 24px;
                    height: 24px;
                    align-self: center;
                }
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_content{
                    margin-left: 22px;
                    width: 215px;
                }
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_content p{
                    word-wrap: break-word;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                }
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_content .xtiper_tit_svg_lock{
                    display: flex;
                    align-items: center;
                }
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_content .xtiper_tit_svg_lock svg{
                    margin: 0px 6px 0px 2px;
                }
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_right {
                    display: inline-flex;
                    align-items: center;
                    align-content: center;
                    width: 115px;
                    justify-content: center;
                }
                
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_right_windowopen,
                .xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_right_windowclose{
                    width: 100%;
                    text-align: center;
                    margin: 0px 0px;
                    height: 100%;
                    display: flex;
                    justify-content: center;
                    align-items: center;
    
                }
                /* 底部高度不对等问题*/
                .xtiper_content.xtit{
                    height: calc(100% - 80px); 
                }
                /* 底部消息距离底部30px*/
                .xtiper.xtiper_msg.xtiper_msg_bottom.xtiper_msg_black.xon{
                    margin-bottom: 30px;
                }
    
                /* 标题顶部拖拽*/
                .xtiper_sheet_tit_top_drag{
                    width: 100%;
                    position: relative;
                    height: 10px;
                }
                .xtiper_sheet_tit_top_drag div{
                    width: 50px;
                    margin: 0 auto;
                    height: 4px;
                    background: #d9d9d9;
                    border-radius: 15px;
                    bottom: 3px;
                    position: relative;
                }
            `);

            function getFormList() {
                /* 获取当前页面所有帖子 */
                let formList = mt_config.dom_obj.comiis_formlist() ? mt_config.dom_obj.comiis_formlist() : [];
                formList = formList.length == 0 ? mt_config.dom_obj.comiis_postli() : formList;
                formList = formList.length == 0 ? mt_config.dom_obj.comiis_mmlist() : formList;
                return formList;
            }
            let formlist = null; /* 帖子列表 */
            let isFindFormList = false; /* 是否找到帖子 */
            let findFormListNums = 0; /* 找到帖子的数量 */
            let smallWindowId = null; /* 小窗对象 */
            let waitFormListAppear = setInterval(function () {
                /* 等待页面加载出现帖子 */
                if (isFindFormList) {
                    formlist = getFormList();
                    main();
                    clearInterval(waitFormListAppear);
                } else {
                    if (findFormListNums >= 10) {
                        console.log("未出现帖子或寻找贴子超时,清理定时器");
                        clearInterval(waitFormListAppear);
                    }
                    isFindFormList = getFormList().length ? true : false;
                    findFormListNums += 1;
                }
            }, 800);

            function popstateFunction() {
                window.history.pushState('forward', null, '#');
                window.history.forward(1);
                resumeBack();
            }

            function banBack() {
                /* 禁止浏览器后退按钮 */
                if (window.history && window.history.pushState) {
                    $jq(window).on('popstate', popstateFunction);
                }
                window.history.pushState('forward', null, '#'); /* 在IE中必须得有这两行 */
                window.history.forward(1);
            };

            async function resumeBack() {
                /* 允许浏览器后退并关闭小窗 */
                xtip.close(smallWindowId);
                smallWindowId = null;
                $jq(window).off('popstate', popstateFunction);
                while (1) {
                    if (window.location.href == 'https://bbs.binmt.cc/#') {
                        console.log("back!");
                        await utils.asyncSetTimeOut("window.history.back();", 100);
                        await utils.sleep(100);
                    } else {
                        return;
                    }
                }
            };

            function getSmallPageBtn(forumPostTitle, forumPostUrl, isNew) {
                let prevNode = document.createElement("li");
                let websiteTitle = `
                    <div class="xtiper_sheet_tit_top_drag"><div></div></div>
                    <div style="display:flex;">
                        <img src="https://cdn-bbs.mt2.cn/template/comiis_app/comiis/img/favicon.ico" class="xtiper_tit_ico">
                        <div class="xtiper_tit_content">
                            <p>${forumPostTitle}</p>
                            <div class="xtiper_tit_svg_lock">
                                <svg t="1660458686317" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2383" width="12" height="12" style="margin: 0px 6px 0px 2px;"><path d="M842.666667 384h-74.666667V277.333333a234.666667 234.666667 0 1 0-469.333333 0v106.666667H224a53.393333 53.393333 0 0 0-53.333333 53.333333v490.666667a53.393333 53.393333 0 0 0 53.333333 53.333333h618.666667a53.393333 53.393333 0 0 0 53.333333-53.333333V437.333333a53.393333 53.393333 0 0 0-53.333333-53.333333zM341.333333 277.333333c0-105.866667 86.133333-192 192-192s192 86.133333 192 192v106.666667H341.333333z" fill="#000000" p-id="2384"></path></svg>
                                <p>bbs.binmt.cc</p>
                            </div>
                        </div>
                        <div class="xtiper_tit_right">
                            <div class="xtiper_tit_right_windowopen">
                                <svg t="1660459294973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3580" width="20" height="20"><path d="M5.064339 94.782119l0-74.338917 494.595401 0c17.302383 0 31.352438 16.614748 31.352438 37.206628 0 20.517541-14.050055 37.132289-31.352438 37.132289L5.064339 94.782119" p-id="3581" fill="#2c2c2c"></path><path d="M1008.639721 1024l-74.338917 0L934.300804 529.404599c0-17.302383 16.614748-31.352438 37.206628-31.352438 20.517541 0 37.132289 14.050055 37.132289 31.352438L1008.639721 1024" p-id="3582" fill="#2c2c2c"></path><path d="M1008.639721 20.443202 945.972014 20.443202 1008.639721 20.443202Z" p-id="3583" fill="#2c2c2c"></path><path d="M1008.639721 83.129494 1008.639721 20.443202 1008.639721 83.129494Z" p-id="3584" fill="#2c2c2c"></path><path d="M5.064339 83.129494 5.064339 20.443202 67.750631 20.443202 5.064339 20.443202 5.064339 83.129494Z" p-id="3585" fill="#2c2c2c"></path><path d="M5.064339 1024 5.064339 961.332293 5.064339 1024Z" p-id="3586" fill="#2c2c2c"></path><path d="M67.750631 1024 5.064339 1024 67.750631 1024Z" p-id="3587" fill="#2c2c2c"></path><path d="M1008.639721 1024 945.972014 1024 1008.639721 1024Z" p-id="3588" fill="#2c2c2c"></path><path d="M1008.639721 1024 1008.639721 961.332293 1008.639721 1024Z" p-id="3589" fill="#2c2c2c"></path><path d="M934.300804 20.443202l74.338917 0 0 263.438538c0 17.302383-16.614748 31.371023-37.132289 31.371023-20.610465 0-37.206628-14.06864-37.206628-31.371023L934.300804 20.443202" p-id="3590" fill="#2c2c2c"></path><path d="M726.393437 94.782119c-17.339552 0-31.371023-16.614748-31.371023-37.132289 0-20.573295 14.031471-37.206628 31.371023-37.206628l282.227699 0 0 74.338917L726.393437 94.782119" p-id="3591" fill="#2c2c2c"></path><path d="M79.403256 1024 5.064339 1024 5.064339 20.443202 79.403256 20.443202 79.403256 1024Z" p-id="3592" fill="#2c2c2c"></path><path d="M1008.639721 949.661083 1008.639721 1024 5.064339 1024 5.064339 949.661083 1008.639721 949.661083Z" p-id="3593" fill="#2c2c2c"></path><path d="M947.941995 28.564729c12.210167-12.265921 33.935716-10.426033 48.431805 4.107225 14.551843 14.477504 16.391731 36.221637 4.107225 48.431805L288.425706 793.214831c-12.265921 12.321676-33.9543 10.481787-48.506143-4.12581-14.533258-14.458919-16.373147-36.221637-4.107225-48.394635L947.941995 28.564729" p-id="3594" fill="#2c2c2c"></path></svg>
                            </div>
                            <div class="xtiper_tit_right_windowclose">
                                <svg t="1660459530654" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5064" width="20" height="20"><path d="M579.392 511.296l429.376 428.544a48.128 48.128 0 0 1-34.176 82.304c-12.8 0-25.088-5.12-34.112-14.208L511.168 579.392 81.792 1008a48.32 48.32 0 0 1-67.648-0.576 48.128 48.128 0 0 1-0.64-67.52L442.88 511.296 13.568 82.752A48.128 48.128 0 0 1 14.08 15.168 48.32 48.32 0 0 1 81.792 14.592l429.376 428.544L940.48 14.592a48.32 48.32 0 0 1 67.648 0.64c18.624 18.56 18.88 48.64 0.64 67.52L579.392 511.296z" fill="#2c2c2c" p-id="5065"></path></svg>
                            </div>
                        </div>
                    </div>`;
                prevNode.className = "f_c";
                prevNode.setAttribute("style", "display: flex;justify-content: center;align-items: center;");
                prevNode.innerHTML = `<svg t="1660462230529" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7937" width="18" height="18" style="margin-right: 4px;"><path d="M885.333333 768h-618.666666C215.466667 768 170.666667 725.333333 170.666667 672v-448C170.666667 170.666667 213.333333 128 266.666667 128h616.533333C938.666667 128 981.333333 170.666667 981.333333 224v445.866667c0 55.466667-42.666667 98.133333-96 98.133333z m-618.666666-576c-17.066667 0-32 14.933333-32 32v445.866667c0 17.066667 14.933333 32 32 32h616.533333c17.066667 0 32-14.933333 32-32V224c2.133333-17.066667-12.8-32-29.866667-32h-618.666666z" p-id="7938" fill="#999999"></path><path d="M757.333333 896h-618.666666C85.333333 896 42.666667 851.2 42.666667 800v-448c0-17.066667 14.933333-32 32-32s32 14.933333 32 32v445.866667c0 19.2 14.933333 34.133333 32 34.133333h616.533333c17.066667 0 32 14.933333 32 32s-12.8 32-29.866667 32z" p-id="7939" fill="#999999"></path></svg><a class="tosmallwindowprev"></a>`;
                prevNode.getElementsByClassName("tosmallwindowprev")[0].innerText = isNew ? "Win" : "浏览";
                prevNode.onclick = () => {
                    banBack();
                    let temp_id = xtip.open({
                        type: 'url',
                        content: forumPostUrl,
                        title: websiteTitle,
                        height: '88%',
                        app: true,
                        success: (e) => {},
                        end: () => {
                            console.log("点击其它区域关闭小窗");
                            resumeBack();
                        }
                    });
                    if (typeof top.window.tampermonkeyByMT != "undefined") {
                        console.log("当前执行为非油猴调用");
                        let iframe_id = temp_id + "_id";
                        document.getElementById(iframe_id).onload = () => {
                            console.log(`子窗口: ${iframe_id}加载完毕`);
                            let scriptNode = document.createElement("script");
                            scriptNode.innerHTML = top.window.tampermonkeyByMT;
                            document.getElementById(iframe_id).contentWindow.document.head.append(scriptNode);
                        }

                    }
                    smallWindowId = temp_id;

                    console.log(smallWindowId);
                    let dragNode = new AnyTouch(document.getElementById(temp_id));
                    let smallWidowNode = document.getElementById(temp_id).querySelector("div.xtiper_sheet");
                    let smallWidowNormalHeight = parseInt(smallWidowNode.style["height"]); /* 小窗原始高度 */
                    console.log("小窗原始高度", smallWidowNormalHeight);
                    dragNode.on("pan", (e) => {
                        if (e.phase == 'move' && e.displacementY > 0) {
                            /* 当前为向下移动 */
                            smallWidowNode.style["transition"] = "none";
                            smallWidowNode.style["height"] = Math.abs(smallWidowNormalHeight - e.distanceY) + "px";
                        }
                        if (e.isEnd) {
                            /* 当前为停止移动,松开手指,判断在哪个区域,一半以上回归上面,一般以下,关闭 */
                            smallWidowNode.style["transition"] = "0.2s ease-in";
                            if (parseInt(smallWidowNode.style["height"]) > (window.innerHeight / 2)) {
                                smallWidowNode.style["height"] = smallWidowNormalHeight + "px";
                            } else {
                                resumeBack();
                            }
                        }
                    })
                    dragNode.on("tap", (e) => {
                        if (document.getElementById(temp_id).querySelector(".xtiper_bg").outerHTML.indexOf(e.target.outerHTML) != -1) {
                            /* 点击背景关闭小窗 */
                            console.log("点击背景关闭小窗");
                            resumeBack();
                            dragNode.off("tap");
                            dragNode.off("pan");
                            return;
                        }
                        if (document.getElementById(temp_id).querySelector(".xtiper_tit_content").outerHTML.indexOf(e.target.outerHTML) != -1) {
                            GM_setClipboard(`『${forumPostTitle}』 - ${forumPostUrl}`);
                            xtip.msg('已复制链接', {
                                icon: 'success',
                                pos: 'bottom'
                            });
                            return;
                        }
                        if (document.getElementById(temp_id).querySelector(".xtiper_tit_right_windowopen svg").outerHTML.indexOf(e.target.outerHTML) != -1) {
                            window.open(forumPostUrl, "_blank");
                            return;
                        }
                        if (document.getElementById(temp_id).querySelector(".xtiper_tit_right_windowclose svg").outerHTML.indexOf(e.target.outerHTML) != -1) {
                            console.log("点击关闭按钮关闭小窗");
                            resumeBack();
                            dragNode.off("tap");
                            dragNode.off("pan");
                            return;
                        }
                    })
                }
                return prevNode;
            }
            async function main() {
                $jq.each(formlist, function (index, value) {
                    let isNewUI = false;
                    let formBottomEle = value.querySelectorAll(".comiis_znalist_bottom.b_t.cl ul.cl li");
                    if (!formBottomEle.length) {
                        let tempFormBottomEle = value.querySelectorAll(".comiis_xznalist_bottom.cl ul.cl li"); /* 新版论坛UI */
                        if (!tempFormBottomEle.length) {
                            return
                        };
                        formBottomEle = tempFormBottomEle;
                        isNewUI = true;
                    };
                    let clParentEle = formBottomEle[0].parentElement;
                    if (clParentEle.querySelector(".tosmallwindowprev")) {
                        console.log("已经插入过小窗浏览");
                    } else {
                        let forumPostUrl = value.querySelector(".mmlist_li_box.cl a").getAttribute("href");
                        let forumPostTitle = value.querySelector(".mmlist_li_box.cl a").innerText;
                        if (!forumPostUrl) {
                            console.log("获取帖子url失败");
                            return;
                        }
                        if (!forumPostTitle) {
                            console.log("获取帖子标题失败");
                            return;
                        }
                        let previewPicturesEle = getSmallPageBtn(forumPostTitle, forumPostUrl, isNewUI ? isNewUI : null);
                        if (previewPicturesEle != null) {
                            clParentEle.append(previewPicturesEle);
                            clParentEle.setAttribute("style", "display: flex;height: inherit;");
                        }
                    }

                })
            }
        },
        paymentSubjectReminder() {
            /* 付费主题白嫖提醒 */
            let urlForumPostMatchStatus = window.location.href.match(mt_config.rexp.forum_post);
            let urlHomeSpaceMatchStatus = window.location.href.match(mt_config.rexp.home_space_url);
            let urlGuideMatchStatus = window.location.href.match(mt_config.rexp.forum_guide_url);
            let urlCommunityMatchStatus = window.location.href.match(mt_config.rexp.community_url) || window.location.href.match(mt_config.rexp.plate_url);
            let urlBBSMatchStatus = window.location.href.match(mt_config.rexp.bbs);

            let storageMatchStatus = GM_getValue("v44") != null;
            let setTipForumPostList = GM_getValue("tipToFreeSubjectForumPost") == null ? [] : GM_getValue("tipToFreeSubjectForumPost");
            const paymentSubjectReminderHome = {
                getData() {
                    /* 获取数据 */
                    return GM_getValue("tipToFreeSubjectForumPost") == null ? [] : GM_getValue("tipToFreeSubjectForumPost");
                },
                setData(data) {
                    /* 设置数据 */
                    GM_setValue("tipToFreeSubjectForumPost", data);
                },
                async insertButtonView() {
                    /* 插入-底部导航-我的-付费主题白嫖列表(按钮) */
                    let comiis_left_Touch = document.createElement("li");
                    comiis_left_Touch.className = "comiis_left_Touch";
                    let paymentSubjectReminderHomeBtn = document.createElement("a");
                    paymentSubjectReminderHomeBtn.setAttribute("href", "javascript:;");
                    paymentSubjectReminderHomeBtn.className = "paymentsubjectreminder";
                    paymentSubjectReminderHomeBtn.innerHTML = `
                        <div class="styli_tit f_c">
                            <i class="comiis_font" style="color:#ec0000;"></i>
                        </div>
                        <div class="flex">付费主题白嫖列表</div>`;
                    GM_addStyle(`
                    .NZ-MsgBox-alert .msgcontainer .msgtitle {
                        text-align: center !important;
                    }
                    #autolist .k_misign_lu img {
                        width: 40px;
                        height: 40px;
                        -moz-border-radius: 20px;
                        -webkit-border-radius: 20px;
                        border-radius: 20px;
                    }
                    .k_misign_lc .f_c{
                        margin: 5px 0px;
                    }
                    details.subjectnotvisit,
                    details.subjectcanvisit{
                        margin-left: 20px;
                    }
                    `)
                    paymentSubjectReminderHomeBtn.onclick = () => {
                        paymentSubjectReminderHome.showView();
                    }
                    comiis_left_Touch.append(paymentSubjectReminderHomeBtn);
                    $jq(".comiis_sidenv_box .sidenv_li .comiis_left_Touch.bdew").append(comiis_left_Touch);

                    /* Array.from(document.querySelectorAll(".comiis_myinfo_list.bg_f.cl")).forEach((ele) => {
                        if (ele.innerText.match(/消息提醒|资料设置|我的积分|我的勋章|我的道具/)) {
                            ele.append(paymentSubjectReminderHomeBtn);
                            return;
                        }
                    }) */
                },
                async showView() {
                    /* 显示-付费主题白嫖列表(dialog) */
                    if (typeof $jq.NZ_MsgBox == "undefined") {
                        popup.open("加载NZMsgBox.js中", "alert");
                        await GM_asyncLoadScriptNode("https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js");
                        if (typeof $jq.NZ_MsgBox == "undefined") {
                            popup.open("网络异常,加载NZMsgBox.js失败", "alert");
                            return;
                        } else {
                            console.log("成功加载NZMsgBox.js");
                        }
                    }
                    let data = paymentSubjectReminderHome.getData();
                    $jq.NZ_MsgBox.alert({
                        title: "付费主题白嫖列表",
                        content: "获取中",
                        type: "",
                        location: "center",
                        buttons: {
                            confirm: {
                                text: "确定"
                            }
                        }
                    });

                    let notVisitedTipContent = "" /* 可白嫖且未访问 */
                    let notVisitedNums = 0; /* 可白嫖且未访问的数量 */
                    let isFreeContent = ""; /* 可白嫖帖子-未读的加左上边红点 */
                    let isPaidContent = ""; /* 需付费帖子 */
                    let isFreeNotVisitedContentList = [];
                    let isFreeContentList = [];
                    let isPaidContentList = [];
                    $jq.each(data, (i, v) => {
                        let timeColor = "#f91212";
                        let leftRedBtn = "";
                        if (new Date().getTime() > v["expirationTimeStamp"]) {
                            /* 可白嫖 */
                            timeColor = "#1e90ff";
                            if (v["isVisited"] == false) {
                                leftRedBtn = '<span class="icon_msgs bg_del" style="position: fixed;width: 10px;height: 10px;border-radius: 50%;margin: 10px 0px 0px -15px;"></span>'
                                notVisitedNums = notVisitedNums + 1;
                            }
                        }
                        let concatList = {
                            "content": `
                            <tbody id="autolist">
                                <tr>
                                    <td style="width: 100%;">
                                        <div style="display: inline-flex;">
                                            ${leftRedBtn}
                                            <div style="width: 240px;">                 
                                                <a href="javascript:void(0);" t-href="${v["url"]}" t-index="${i}" style="color: #1e90ff;">${v["title"]}</a>
                                                <li style="margin: 5px 15px;color: ${timeColor};">${v["expirationTime"]}</li>
                                            </div>
                                            <div style="align-self: center;margin-left: 10px;" t-index="${i}" class="delsubjecttip">
                                                <i class="comiis_font" style="font-size: 24px;padding-left: 6px;"></i>
                                            </div>
                                        </div>
                                    </td>
                                </tr>
                                <tr style="height:15px;"></tr>
                            </tbody>
                            `,
                            "timestamp": v["expirationTimeStamp"]
                        };

                        if (new Date().getTime() > v["expirationTimeStamp"]) {
                            /* 可白嫖 */
                            if (leftRedBtn != '') {
                                isFreeNotVisitedContentList = isFreeNotVisitedContentList.concat(concatList);
                            } else {
                                isFreeContentList = isFreeContentList.concat(concatList);
                            }

                        } else {
                            isPaidContentList = isPaidContentList.concat(concatList);
                        }
                    });
                    isFreeNotVisitedContentList.sort(utils.sortListByProperty("timestamp", "asc"));
                    isFreeContentList.sort(utils.sortListByProperty("timestamp", "asc"));
                    isFreeContent = utils.listToStringByValue(isFreeNotVisitedContentList, "content") + utils.listToStringByValue(isFreeContentList, "content");
                    isPaidContent = utils.listToStringByValue(isPaidContentList, "content");
                    if (notVisitedNums > 0) {
                        notVisitedTipContent = `<span class="icon_msgs bg_del f_f" style="
                                display: inline-block;
                                position: absolute;
                                width: 16px;
                                height: 16px;
                                line-height: 16px;
                                border-radius: 50%;
                                font-size: 14px;
                                text-align: center;
                                margin: 3px 0px 0px 10px;
                            ">${notVisitedNums}</span>`;
                    }
                    let dialogIsFreeContent = '<details class="subjectcanvisit" open=""><summary>可白嫖' + notVisitedTipContent + '</summary><table id="paymentSubjectReminderIsFreeList" style="overflow: auto;height: inherit;margin: 15px 0px;">' + isFreeContent + "</table></details>";
                    let dialogIsPaidContent = '<details class="subjectnotvisit"><summary>需付费</summary><table id="paymentSubjectReminderIsPaidList" style="overflow: auto;height: inherit;margin: 15px 0px;">' + isPaidContent + "</table></details>";
                    $jq(".msgcon").html("");
                    $jq(".msgcon").append(dialogIsFreeContent);
                    $jq(".msgcon").append(dialogIsPaidContent);
                    $jq(".msgcon").css("height", "400px");
                    $jq(".delsubjecttip i.comiis_font").on("click", (e) => {
                        var confirmStatus = confirm("确定移出提醒?");
                        var t_index = e.target.parentElement.getAttribute("t-index");
                        if (confirmStatus) {
                            data.splice(t_index, 1);
                            console.log(data);
                            paymentSubjectReminderHome.setData(data);
                            e.target.parentElement.parentElement.parentElement.parentElement.parentElement.remove();
                        }
                    });
                    $jq("#paymentSubjectReminderIsFreeList").on("click", "a", (e) => {
                        var t_index = e.target.getAttribute("t-index");
                        var t_href = e.target.getAttribute("t-href");
                        console.log(t_index, t_href);
                        data[t_index]["isVisited"] = true;
                        paymentSubjectReminderHome.setData(data);
                        window.open(t_href, "_blank");
                        e.target.setAttribute("style", "color: #000000;");
                        if (e.target.parentElement.parentElement.children[0].className != "icon_msgs bg_del") {
                            return;
                        }
                        e.target.parentElement.parentElement.children[0].remove();
                        $jq("#paymentSubjectReminderIsFreeList").append(e.target.parentElement.parentElement.parentElement.parentElement.parentElement);
                        let notVisitedNums = $jq(".subjectcanvisit summary span.icon_msgs.bg_del.f_f").text();
                        notVisitedNums = parseInt(notVisitedNums) - 1;
                        if (notVisitedNums > 0) {
                            $jq(".subjectcanvisit summary span.icon_msgs.bg_del.f_f").html(notVisitedNums);
                        } else {
                            $jq(".subjectcanvisit summary span.icon_msgs.bg_del.f_f").remove();
                        }
                    })
                    $jq("#paymentSubjectReminderIsPaidList").on("click", "a", (e) => {
                        var t_index = e.target.getAttribute("t-index");
                        var t_href = e.target.getAttribute("t-href");
                        console.log(t_index, t_href);
                        window.open(t_href, "_blank");
                        e.target.setAttribute("style", "color: #000000;");
                    })

                }
            }

            if (storageMatchStatus && urlForumPostMatchStatus) {
                /* 帖子内部-添加进提醒的按钮或者已添加进提醒的按钮点击移出 */
                let paySubjectTip = $jq("span.kmren"); /* 购买主题的元素 */

                if (paySubjectTip.length != 0) {
                    log.success("当前帖子存在需要购买主题");
                    let isAddTip = false;
                    let tipBtnHTML = '';
                    Array.from(setTipForumPostList).forEach((item, index) => {
                        if (window.location.href.match(item["url"])) {
                            isAddTip = true;
                            return;
                        }
                    });
                    if (isAddTip) {
                        log.success("已设置提醒");
                        tipBtnHTML = $jq(`<a href="javascript:;" class="styli_tit f_c"><i class="comiis_font" style="color: #ffffff;"></i></a>`);
                        tipBtnHTML.on("click", () => {
                            let confirmStatus = confirm("确定移出提醒?");
                            if (confirmStatus) {
                                Array.from(setTipForumPostList).forEach((item, index) => {
                                    if (window.location.href.match(item["url"])) {
                                        setTipForumPostList.splice(index, 1);
                                        GM_setValue("tipToFreeSubjectForumPost", setTipForumPostList);
                                        popup.open("移出成功", "alert");
                                        setTimeout(function () {
                                            window.location.reload();
                                        }, 1500);
                                        return;
                                    }
                                });
                            }
                        });
                    } else {
                        log.success("未设置提醒");
                        tipBtnHTML = $jq(`<a href="javascript:;" class="styli_tit f_c"><i class="comiis_font" style="color: #FF9900;"></i></a>`);
                        tipBtnHTML.on("click", () => {
                            let expirationTimeMatch = $jq(".kmren").parent().text().replace(/\t|\n/g, "").match(/[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}[\s]{1}[0-9]{1,2}:[0-9]{1,2}/);
                            if (expirationTimeMatch.length == 0) {
                                popup.open("获取付费主题到期时间失败", "alert");
                                return;
                            }
                            let expirationTime = expirationTimeMatch[0];
                            let expirationTimeStamp = utils.formatDateStrToStamp(expirationTime);
                            setTipForumPostList = setTipForumPostList.concat({
                                "url": window.location.href,
                                "title": document.title.replace(" - MT论坛", ""),
                                "expirationTime": expirationTime,
                                "expirationTimeStamp": expirationTimeStamp,
                                "isVisited": false
                            });
                            GM_setValue("tipToFreeSubjectForumPost", setTipForumPostList);
                            popup.open("添加成功", "alert");
                            setTimeout(function () {
                                window.location.reload();
                            }, 1500);
                        });
                    }

                    $jq(".comiis_head.f_top .header_y").append(tipBtnHTML);
                };
            }




            if (storageMatchStatus && urlBBSMatchStatus) {
                /* 底部导航-我的-提供类似小黑屋这种可查看设置提醒的帖子 */
                paymentSubjectReminderHome.insertButtonView();
            }

            if (storageMatchStatus) {
                /* 设置提醒小红点 */
                function getTipNums() {
                    let needTipNums = 0;
                    Array.from(paymentSubjectReminderHome.getData()).forEach((item, index) => {
                        if (new Date().getTime() > item["expirationTimeStamp"] && item["isVisited"] == false) {
                            needTipNums += 1;
                        }
                    });
                    return needTipNums;
                }

                if (urlHomeSpaceMatchStatus || urlGuideMatchStatus || urlCommunityMatchStatus) {
                    /* 当前网页为,底部导航-我的 */
                    let redBtn = $jq(".icon_msgs.bg_del.f_f"); /* 底部导航-我的-右上角小红点 */
                    let tipNums = 0;
                    if (redBtn.length) {
                        tipNums = parseInt(redBtn.text());
                        $jq(".icon_msgs.bg_del.f_f").html(tipNums + getTipNums());
                        $jq(".comiis_head .header_z .kmuser em").append($jq(`<span class="icon_msgs bg_del"></span>`));
                    } else {
                        let tipnums = getTipNums();
                        if (tipnums) {
                            /* $jq("ul.comiis_flex li.flex a[title='我的'] i.comiis_font").append($jq(`<span class="icon_msgs bg_del f_f">${tipnums}</span>`)); */
                            $jq(".comiis_head .header_z .kmuser em").append($jq(`<span class="icon_msgs bg_del"></span>`));
                        }
                    }

                }

                if (urlBBSMatchStatus) {
                    /* 当前网页为,全部 */
                    let redBtn = $jq(".sidenv_num.bg_del.f_f"); /* 侧边栏-头像-右上角小红点 */
                    let tipNums = 0;
                    if (redBtn.length) {
                        tipNums = parseInt(redBtn.text());
                        $jq(".sidenv_num.bg_del.f_f").html(tipNums + getTipNums());
                    } else {
                        let tipnums = getTipNums();
                        if (tipnums) {
                            $jq(".sidenv_user em").before($jq(`<span class="sidenv_num bg_del f_f">${tipnums}</span>`));
                        }
                    }
                    if (getTipNums()) {
                        /* 当前网页为,侧边slider,付费白嫖列表 */
                        /*     $jq(".comiis_left_Touch .paymentsubjectreminder div.flex").append($jq(`<span class="sidenv_num bg_del f_f" style="
                            position: absolute;
                            height: 6px;
                            line-height: 6px;
                            padding: 1px 4px;
                            border-radius: 18px;
                            z-index: 30;
                            margin: 10px 4px 0px 0px;
                        "></span>`)); */
                        $jq(".comiis_left_Touch .paymentsubjectreminder div.flex").append($jq(`<span class="sidenv_num bg_del f_f" style="
                    position: relative;
                    border-radius: 18px;
                    height: 6px;
                    width: 6px;
                    left: 3px;
                    display: inline-flex;
                    bottom: 8px;
                "></span>`));
                    }

                }
            }
        },
        async previewPictures() {
            /* 贴外预览图片-使用github项目https://github.com/fengyuanchen/viewerjs */
            if (!GM_getValue("v34") &&
                (!(window.location.href.match(mt_config.rexp.forum_guide_url) ||
                    /* !(window.location.href.match(mt_config.rexp.forum_post)) ||
                    !(window.location.href.match(mt_config.rexp.plate_url)) || */
                    !(window.location.href.match(mt_config.rexp.search_url))
                ))) {
                return
            }

            function getFormList() {
                let formList = mt_config.dom_obj.comiis_formlist() ? mt_config.dom_obj.comiis_formlist() : [];
                formList = formList.length == 0 ? mt_config.dom_obj.comiis_postli() : formList;
                formList = formList.length == 0 ? mt_config.dom_obj.comiis_mmlist() : formList;
                return formList;
            }
            let formlist = null; /* 帖子列表 */
            let isFindFormList = false;
            let findFormListNums = 0;
            let waitFormListAppear = setInterval(function () {
                if (isFindFormList) {
                    formlist = getFormList();
                    main();
                    clearInterval(waitFormListAppear)
                } else {
                    if (findFormListNums >= 10) {
                        console.log("未出现帖子或寻找贴子超时,清理定时器");
                        clearInterval(waitFormListAppear);
                    }
                    isFindFormList = getFormList().length ? true : false;
                    findFormListNums += 1;
                }
            }, 800);

            function getPreviewBtn(node, isNew) {
                let prevNode = document.createElement("li");
                prevNode.className = "f_c";
                let imageDOM = node.querySelectorAll(".comiis_pyqlist_img").length ? node.querySelectorAll(".comiis_pyqlist_img") : node.querySelectorAll(".comiis_pyqlist_imgs");
                if (imageDOM.length == 0) {
                    return null;
                };

                prevNode.setAttribute("style", "display: flex;justify-content: center;");
                prevNode.innerHTML = `<i class="comiis_font"></i><a class="topreimg"></a>`;
                Array.from(imageDOM).forEach(item => {
                    let needPrevImages = item.querySelectorAll("img");
                    let postForumImageNodeDiv = document.createElement("div");
                    let postForumImageNodeUl = document.createElement("ul");
                    postForumImageNodeUl.className = "postforumimages";
                    postForumImageNodeUl.setAttribute("style", "display:none;");
                    Array.from(needPrevImages).forEach(_img_ => {
                        let tempLi = document.createElement("li");
                        let tempImg = document.createElement("img");
                        tempImg.setAttribute("data-src", _img_.getAttribute("src"));
                        tempLi.append(tempImg);
                        postForumImageNodeUl.append(tempLi);
                    });
                    postForumImageNodeDiv.append(postForumImageNodeUl);
                    prevNode.append(postForumImageNodeDiv);
                })
                let canPrevImageNums = prevNode.getElementsByTagName("img").length;
                prevNode.getElementsByClassName("topreimg")[0].innerText = isNew ? canPrevImageNums : "预览";
                prevNode.onclick = (e) => {
                    let imageList = e.target.parentElement.children[2].children[0];
                    let viewer = new Viewer(imageList, {
                        inline: false,
                        url: "data-src",
                        hidden: () => {
                            viewer.destroy();
                        }
                    });
                    viewer.zoomTo(1);
                    viewer.show();

                }
                return prevNode;
            }
            async function main() {
                $jq.each(formlist, function (index, value) {
                    let isNewUI = false;
                    let formBottomEle = value.querySelectorAll(".comiis_znalist_bottom.b_t.cl ul.cl li");
                    if (!formBottomEle.length) {
                        let tempFormBottomEle = value.querySelectorAll(".comiis_xznalist_bottom.cl ul.cl li"); /* 新版论坛UI */
                        if (!tempFormBottomEle.length) {
                            return
                        };
                        formBottomEle = tempFormBottomEle;
                        isNewUI = true;
                    };
                    let clParentEle = formBottomEle[0].parentElement;
                    if (clParentEle.querySelector(".topreimg")) {
                        console.log("已经插入过预览图片");
                    } else {
                        let previewPicturesEle = getPreviewBtn(value, isNewUI ? isNewUI : null);
                        if (previewPicturesEle != null) {
                            clParentEle.append(previewPicturesEle);
                            clParentEle.setAttribute("style", "display: flex;");
                        }
                    }

                })
            }
        },
        previewPostForum() {
            /* 发帖、回复、编辑预览功能 */
            GM_addStyle(`
            #comiis_mh_sub{
                height:40px;
            }
            .gm_plugin_previewpostforum svg{
    
            }
            .gm_plugin_previewpostforum_html .comiis_message_table{
                margin-top: 10px;
            }
            .gm_plugin_previewpostforum_html .comiis_message_table a{
                height: auto;
                color: #507daf !important;
            }
            .gm_plugin_previewpostforum_html .comiis_message_table i{
                
                text-align: unset;
                font-size: unset;
                line-height: unset;
                padding-top: unset;
                display: unset;

            }
            .comiis_postli.comiis_list_readimgs.nfqsqi{
                width: 100vw;
            }`);
            $jq("#comiis_mh_sub .swiper-wrapper.comiis_post_ico").append($jq(`<a href="javascript:;" class="swiper-slide gm_plugin_previewpostforum"><i class="comiis_font" style="display: flex;flex-direction: column;padding-top: 1px;"><svg t="1661243615511" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2399" width="22" height="22" fill="currentColor"><path d="M470.1 885.3H208.8V138.7h597.3v336c0 20.6 16.7 37.3 37.3 37.3 20.6 0 37.3-16.7 37.3-37.3v-336c0-41.2-33.4-74.7-74.7-74.7H208.8c-41.2 0-74.7 33.4-74.7 74.7v746.7c0 41.2 33.4 74.7 74.7 74.7h261.3c20.6 0 37.3-16.7 37.3-37.3 0.1-20.8-16.6-37.5-37.3-37.5z" p-id="2400"></path><path d="M641.3 496.5c-54.3 0-108.5 23.5-146.2 70.5-54.7 68.3-53.4 168.6 2.8 235.6 37.5 44.8 90.5 67.2 143.4 67.2 35.9 0 71.8-10.3 103-30.9l81.8 81.8c7.3 7.3 16.8 10.9 26.4 10.9 9.6 0 19.1-3.6 26.4-10.9 14.6-14.6 14.6-38.2 0-52.8l-81.8-81.8c48-72.5 40.1-171.1-23.7-234.9-36.5-36.4-84.3-54.7-132.1-54.7z m0 298.7c-36.5 0-72.9-17.6-95.3-52.9-22.6-35.6-22.6-82.5 0-118.1 22.4-35.3 58.9-52.9 95.3-52.9 36.5 0 72.9 17.6 95.3 52.9 22.6 35.6 22.6 82.5 0 118.1-22.4 35.2-58.8 52.9-95.3 52.9z" p-id="2401"></path></svg><em style="bottom: 1px;position: relative;">预览</em></i></a>`));
            $jq("#comiis_post_tab").append($jq(`
            <div class="bg_f cl gm_plugin_previewpostforum_html" style="display: none;">
                <div class="comiis_over_box comiis_input_style">
                    <div class="comiis_postli comiis_list_readimgs nfqsqi">
                        <div class="comiis_message bg_f view_one cl message" style="margin-bottom: auto;padding: 0px 12px 0px 12px;">
                            <div class="comiis_messages comiis_aimg_show cl" style="max-height: 300px;overflow-y: auto;position: relative;">
                                <div class="comiis_a comiis_message_table cl">
                                </div>
                                
                            </div>
                        </div>
                    </div>
                </div>
            </div>`));

            const smiliesDictionaries = {
                /* 表情字典 */
                "[呵呵]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq001.gif",
                "[撇嘴]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq002.gif",
                "[色]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq003.gif",
                "[发呆]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq004.gif",
                "[得意]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq005.gif",
                "[流泪]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq006.gif",
                "[害羞]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq007.gif",
                "[闭嘴]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq008.gif",
                "[睡]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq009.gif",
                "[大哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq010.gif",
                "[尴尬]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq011.gif",
                "[发怒]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq012.gif",
                "[调皮]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq013.gif",
                "[呲牙]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq014.gif",
                "[惊讶]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq015.gif",
                "[难过]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq016.gif",
                "[酷]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq017.gif",
                "[冷汗]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq018.gif",
                "[抓狂]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq019.gif",
                "[吐]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq020.gif",
                "[偷笑]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq021.gif",
                "[可爱]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq022.gif",
                "[白眼]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq023.gif",
                "[傲慢]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq024.gif",
                "[饥饿]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq025.gif",
                "[困]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq026.gif",
                "[惊恐]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq027.gif",
                "[流汗]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq028.gif",
                "[憨笑]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq029.gif",
                "[装逼]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq030.gif",
                "[奋斗]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq031.gif",
                "[咒骂]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq032.gif",
                "[疑问]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq033.gif",
                "[嘘]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq034.gif",
                "[晕]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq035.gif",
                "[折磨]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq036.gif",
                "[衰]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq037.gif",
                "[骷髅]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq038.gif",
                "[敲打]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq039.gif",
                "[再见]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq040.gif",
                "[擦汗]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq041.gif",
                "[抠鼻]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq042.gif",
                "[鼓掌]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq043.gif",
                "[糗大了]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq044.gif",
                "[坏笑]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq045.gif",
                "[左哼哼]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq046.gif",
                "[右哼哼]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq047.gif",
                "[哈欠]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq048.gif",
                "[鄙视]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq049.gif",
                "[委屈]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq050.gif",
                "[快哭了]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq051.gif",
                "[阴脸]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq052.gif",
                "[亲亲]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq053.gif",
                "[吓]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq054.gif",
                "[可怜]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq055.gif",
                "[眨眼睛]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq056.gif",
                "[笑哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq057.gif",
                "[dogeQQ]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq058.gif",
                "[泪奔]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq059.gif",
                "[无奈]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq060.gif",
                "[托腮]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq061.gif",
                "[卖萌]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq062.png",
                "[斜眼笑]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq063.gif",
                "[喷血]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq064.gif",
                "[惊喜]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq065.gif",
                "[骚扰]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq066.gif",
                "[小纠结]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq067.gif",
                "[我最美]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq068.gif",
                "[菜刀]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq069.gif",
                "[西瓜]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq070.gif",
                "[啤酒]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq071.gif",
                "[篮球]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq072.gif",
                "[乒乓]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq073.gif",
                "[咖啡]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq074.gif",
                "[饭]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq075.gif",
                "[猪]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq076.gif",
                "[玫瑰]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq077.gif",
                "[凋谢]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq078.gif",
                "[示爱]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq079.gif",
                "[爱心]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq080.gif",
                "[心碎]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq081.gif",
                "[蛋糕]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq082.gif",
                "[闪电]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq083.gif",
                "[炸弹]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq084.gif",
                "[刀]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq085.gif",
                "[足球]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq086.gif",
                "[瓢虫]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq087.gif",
                "[便便]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq088.gif",
                "[月亮]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq089.gif",
                "[太阳]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq090.gif",
                "[礼物]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq091.gif",
                "[抱抱]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq092.gif",
                "[喝彩]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq93.gif",
                "[祈祷]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq94.gif",
                "[棒棒糖]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq95.gif",
                "[药]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq96.gif",
                "[赞]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq097.gif",
                "[差劲]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq098.gif",
                "[握手]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq099.gif",
                "[胜利]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq100.gif",
                "[抱拳]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq101.gif",
                "[勾引]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq102.gif",
                "[拳头]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq103.gif",
                "[差劲]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq104.gif",
                "[爱你]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq105.gif",
                "[NO]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq106.gif",
                "[OK]": "https://cdn-bbs.mt2.cn/static/image/smiley/qq/qq107.gif",
                "[#呵呵]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_1.png",
                "[#滑稽]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_10.png",
                "[#吐舌]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_3.png",
                "[#哈哈]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_2.png",
                "[#啊]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_23.png",
                "[#酷]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_22.png",
                "[#怒]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_13.png",
                "[#开心]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_39.png",
                "[#汗]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_14.png",
                "[#泪]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_16.png",
                "[#黑线]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_15.png",
                "[#鄙视]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_21.png",
                "[#不高兴]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_12.png",
                "[#真棒]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_17.png",
                "[#钱]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_40.png",
                "[#疑问]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_26.png",
                "[#阴险]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_20.png",
                "[#吐]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_34.png",
                "[#咦]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_41.png",
                "[#委屈]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_29.png",
                "[#花心]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_6.png",
                "[#呼~]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_42.png",
                "[#激动]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_5.png",
                "[#冷]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_43.png",
                "[#可爱]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_4.png",
                "[#What?]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_25.png",
                "[#勉强]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_38.png",
                "[#狂汗]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_24.png",
                "[#酸爽]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_27.png",
                "[#乖]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_8.png",
                "[#雅美蝶]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_28.png",
                "[#睡觉]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_31.png",
                "[#惊哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_19.png",
                "[#哼]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_44.png",
                "[#笑尿]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_32.png",
                "[#惊讶]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_30.png",
                "[#小乖]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_7.png",
                "[#喷]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_18.png",
                "[#抠鼻]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_33.png",
                "[#捂嘴笑]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_9.png",
                "[#你懂的]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_11.png",
                "[#犀利]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_35.png",
                "[#小红脸]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_36.png",
                "[#懒得理]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_37.png",
                "[#爱心]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_45.png",
                "[#心碎]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_46.png",
                "[#玫瑰]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_47.png",
                "[#礼物]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_48.png",
                "[#彩虹]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_49.png",
                "[#太阳]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_50.png",
                "[#月亮]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_51.png",
                "[#钱币]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_52.png",
                "[#咖啡]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_53.png",
                "[#蛋糕]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_54.png",
                "[#大拇指]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_55.png",
                "[#胜利]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_56.png",
                "[#爱你]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_57.png",
                "[#OK]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_58.png",
                "[#弱]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_59.png",
                "[#沙发]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_60.png",
                "[#纸巾]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_61.png",
                "[#香蕉]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_62.png",
                "[#便便]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_63.png",
                "[#药丸]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_64.png",
                "[#红领巾]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_65.png",
                "[#蜡烛]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_66.png",
                "[#三道杠]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_67.png",
                "[#音乐]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_68.png",
                "[#灯泡]": "https://cdn-bbs.mt2.cn/static/image/smiley/comiis_tb/tb_69.png",
                "[doge]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/1.png",
                "[doge思考]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/2.png",
                "[doge再见]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/3.png",
                "[doge生气]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/4.png",
                "[doge气哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/5.png",
                "[doge笑哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/7.png",
                "[doge调皮]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/6.png",
                "[doge啊哈]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/8.png",
                "[doge原谅TA]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/9.png",
                "[miao]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/10.png",
                "[miao思考]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/11.png",
                "[miao拜拜]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/12.png",
                "[miao生气]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/13.png",
                "[miao气哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/14.png",
                "[二哈]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/15.png",
                "[摊手]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/19.png",
                "[w并不简单]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/20.png",
                "[w滑稽]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/21.png",
                "[w色]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/22.png",
                "[w爱你]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/23.png",
                "[w拜拜]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/24.png",
                "[w悲伤]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/25.png",
                "[w鄙视]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/26.png",
                "[w馋嘴]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/27.png",
                "[w冷汗]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/28.png",
                "[w打哈欠]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/29.png",
                "[w打脸]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/30.png",
                "[w敲打]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/31.png",
                "[w生病]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/32.png",
                "[w闭嘴]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/33.png",
                "[w鼓掌]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/34.png",
                "[w哈哈]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/35.png",
                "[w害羞]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/36.png",
                "[w呵呵]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/37.png",
                "[w黑线]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/38.png",
                "[w哼哼]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/39.png",
                "[w调皮]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/40.png",
                "[w可爱]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/41.png",
                "[w可怜]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/42.png",
                "[w酷]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/43.png",
                "[w困]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/44.png",
                "[w懒得理你]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/45.png",
                "[w流泪]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/46.png",
                "[w怒]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/47.png",
                "[w怒骂]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/48.png",
                "[w钱]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/49.png",
                "[w亲亲]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/50.png",
                "[w傻眼]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/51.png",
                "[w便秘]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/52.png",
                "[w失望]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/53.png",
                "[w衰]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/54.png",
                "[w睡觉]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/55.png",
                "[w思考]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/56.png",
                "[w开心]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/57.png",
                "[w色舔]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/58.png",
                "[w偷笑]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/59.png",
                "[w吐]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/60.png",
                "[w抠鼻]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/61.png",
                "[w委屈]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/62.png",
                "[w笑哭]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/63.png",
                "[w嘻嘻]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/64.png",
                "[w嘘]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/65.png",
                "[w阴险]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/66.png",
                "[w疑问]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/67.png",
                "[w抓狂]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/70.png",
                "[w晕]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/69.png",
                "[w右哼哼]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/68.png",
                "[w左哼哼]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/71.png",
                "[w肥皂]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/77.png",
                "[w奥特曼]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/78.png",
                "[w草泥马]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/79.png",
                "[w兔子]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/80.png",
                "[w熊猫]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/81.png",
                "[w猪头]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/82.png",
                "[w→_→]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/83.png",
                "[w给力]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/84.png",
                "[w囧]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/85.png",
                "[w萌]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/86.png",
                "[w神马]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/87.png",
                "[w威武]": "https://cdn-bbs.mt2.cn/static/image/smiley/doge/88.png",
            }

            function clickEvent(e) {
                /* 预览按钮点击事件 */
                $jq(".gm_plugin_previewpostforum_html").css("display", "block");
                let replaecdText = replaceText($jq("#needmessage").val());
                $jq(".gm_plugin_previewpostforum_html .comiis_message_table")[0].innerHTML = replaecdText;
            };

            function replaceText(text) {
                /* 替换内容 */
                let attachimgmatch = text.match(/\[attachimg\]([\s\S]+?)\[\/attachimg\]/g);
                if (attachimgmatch) {
                    attachimgmatch.forEach(item => {
                        let aimgidMatch = item.match(/\[attachimg\]([\s\S]+?)\[\/attachimg\]/);
                        let aimg_id = aimgidMatch ? aimgidMatch[aimgidMatch.length - 1] : "";
                        let imgtitle = $jq(`#aimg_${aimg_id}`).attr("title");
                        let imgsrc = $jq(`#aimg_${aimg_id}`).attr("src");
                        if (!imgsrc) {
                            imgtitle = "该图片不存在";
                        }
                        text = text.replace(item, `<span class="comiis_postimg vm"><img id="aimg_${aimg_id}" src="${imgsrc}" alt="${imgtitle}" title="${imgtitle}"></span>`);
                    });
                }

                let code = text.match(/\[code\]([\s\S]*?)\[\/code\]/g);
                if (code) {
                    code.forEach(item => {
                        let match_content = item.match(/\[code\]([\s\S]*?)\[\/code\]/);
                        let contentAll = match_content ? match_content[match_content.length - 1] : "";
                        let content = "";
                        let brSplit = contentAll.split("\n");
                        if (brSplit.length == 1) {
                            content = "<li>" + contentAll + "</li>";
                        } else {
                            Array.from(brSplit).forEach((item, index) => {
                                if (index == brSplit.length - 1) {
                                    content = `${content}<li>${item}</li>`;
                                } else {
                                    content = `${content}<li>${item}<br></li>`;
                                }

                            })
                        }
                        text = text.replace(item, `
                        <div class="comiis_blockcode comiis_bodybg b_ok f_b"><div class="bg_f b_l"><ol>${content}</ol></div></div>`);
                    });
                }

                let url = text.match(/\[url\=[\s\S]*?\]([\s\S]*?)\[\/url\]/g);
                if (url) {
                    url.forEach(item => {
                        let urlMatch = item.match(/\[url=([\s\S]*?)\][\s\S]*\[\/url\]/);
                        let urlNameMatch = item.match(/\[url=[\s\S]*?\]([\s\S]*?)\[\/url\]/);
                        let _url_ = urlMatch ? urlMatch[urlMatch.length - 1] : "";
                        let _url_name_ = urlNameMatch ? urlNameMatch[urlNameMatch.length - 1] : "";
                        text = text.replace(item, `<a href="${_url_}" target="_blank">${_url_name_}</a>`);
                    });
                }
                let color = text.match(/\[color\=[\s\S]*?\]([\s\S]*?)\[\/color\]/g);
                if (color) {
                    color.forEach(item => {
                        let colorValueMatch = item.match(/\[color=([\s\S]*?)\][\s\S]*\[\/color\]/);
                        let colorTextMatch = item.match(/\[color=[\s\S]*?\]([\s\S]*?)\[\/color\]/);
                        let colorValue = colorValueMatch ? colorValueMatch[colorValueMatch.length - 1] : "";
                        let colorText = colorTextMatch ? colorTextMatch[colorTextMatch.length - 1] : "";
                        text = text.replace(item, `<font color="${colorValue}">${colorText}</font>`);
                    });
                }

                let size = text.match(/\[size\=[\s\S]*?\]([\s\S]*?)\[\/size\]/g);
                if (size) {
                    console.log(size);
                    size.forEach(item => {
                        let sizeValueMatch = item.match(/\[size=([\s\S]*?)\][\s\S]*\[\/size\]/);
                        let sizeTextMatch = item.match(/\[size=[\s\S]*?\]([\s\S]*?)\[\/size\]/);
                        let sizeValue = sizeValueMatch ? sizeValueMatch[sizeValueMatch.length - 1] : "";
                        let sizeText = sizeTextMatch ? sizeTextMatch[sizeTextMatch.length - 1] : "";
                        text = text.replace(item, `<font size="${sizeValue}">${sizeText}</font>`);
                    });
                }

                let img = text.match(/\[img\]([\s\S]*?)\[\/img\]/g);
                if (img) {
                    img.forEach(item => {
                        let match_content = item.match(/\[img\]([\s\S]*?)\[\/img\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<img src="${content}" border="0" alt="">`);
                    });
                }

                let hide = text.match(/\[hide\]([\s\S]*?)\[\/hide\]/g);
                if (hide) {
                    hide.forEach(item => {
                        let match_content = item.match(/\[hide\]([\s\S]*?)\[\/hide\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<div class="comiis_quote bg_h f_c"><h2 class="f_a">本帖隐藏的内容: </h2>${content}</div>`);
                    });
                }

                let hide2 = text.match(/\[hide=[\s\S]*?\]([\s\S]*?)\[\/hide\]/g);
                if (hide2) {
                    hide2.forEach(item => {
                        let match_content = item.match(/\[hide=([\s\S]*?)\]([\s\S]*?)\[\/hide\]/);
                        let other_info = match_content ? match_content[match_content.length - 2] : "";
                        other_info = other_info.split(",");
                        let integral_big_can_see = other_info.length == 2 ? other_info[1] : "";

                        text = text.replace(item, `<div class="comiis_quote bg_h f_c">以下内容需要积分高于 ${integral_big_can_see} 才可浏览</div>`);
                    });
                }

                let quote = text.match(/\[quote\]([\s\S]*?)\[\/quote\]/g);
                if (quote) {
                    quote.forEach(item => {
                        let match_content = item.match(/\[quote\]([\s\S]*?)\[\/quote\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<div class="comiis_quote bg_h b_dashed f_c"><blockquote><font>回复</font> ${content}</blockquote></div>`);
                    });
                }

                let free = text.match(/\[free\]([\s\S]*?)\[\/free\]/g);
                if (free) {
                    free.forEach(item => {
                        let match_content = item.match(/\[free\]([\s\S]*?)\[\/free\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<div class="comiis_quote bg_h f_c"><blockquote>${content}</blockquote></div>`);
                    });
                }



                let strong = text.match(/\[b\]([\s\S]*?)\[\/b\]/g);
                if (strong) {
                    strong.forEach(item => {
                        let match_content = item.match(/\[b\]([\s\S]*?)\[\/b\]/i);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<strong>${content}</strong>`);
                    });
                }

                let xhx = text.match(/\[u\]([\s\S]*?)\[\/u\]/g);
                if (xhx) {
                    xhx.forEach(item => {
                        let match_content = item.match(/\[u\]([\s\S]*?)\[\/u\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<u>${content}</u>`);
                    });
                }

                let qx = text.match(/\[i\]([\s\S]*?)\[\/i\]/g);
                if (qx) {
                    qx.forEach(item => {
                        let match_content = item.match(/\[i\]([\s\S]*?)\[\/i\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<i>${content}</i>`);
                    });
                }


                let strike = text.match(/\[s\]([\s\S]*?)\[\/s\]/g);
                if (strike) {
                    strike.forEach(item => {
                        let match_content = item.match(/\[s\]([\s\S]*?)\[\/s\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<strike>${content}</strike>`);
                    });
                }

                let smilies = text.match(/\[([\s\S]+?)\]/g);
                if (smilies) {
                    smilies.forEach(item => {
                        console.log(item);
                        let smiliesMatchSrc = smiliesDictionaries[item];
                        if (smiliesMatchSrc) {
                            text = text.replace(item, `<img src="${smiliesMatchSrc}" border="0" alt="" smilieid="">`);
                        }

                    });
                }

                let media = text.match(/\[media=[\s\S]+?\][\s\S]+?\[\/media\]/g);
                if (media) {
                    media.forEach(item => {
                        console.log(item);
                        let match_content = item.match(/\[media=[\s\S]*?\]([\s\S]*?)\[\/media\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        if (content) {
                            text = text.replace(item, `<ignore_js_op><span><iframe src="${content}" border="0" scrolling="no" framespacing="0" allowfullscreen="true" style="max-width: 100%" width="100%" height="auto" frameborder="no"></iframe></span></ignore_js_op>`);
                        }

                    });
                }

                let email = text.match(/\[email=[\s\S]+?\][\s\S]+?\[\/email\]/g);
                if (email) {
                    email.forEach(item => {
                        console.log(item);
                        let email_match = item.match(/\[email=([\s\S]*?)\][\s\S]*?\[\/email\]/);
                        let content_match = item.match(/\[email=[\s\S]*?\]([\s\S]*?)\[\/email\]/);
                        let _email_ = email_match.length ? email_match[email_match.length -1] :"";
                        let _content_ = content_match.length ? content_match[content_match.length - 1] : "";
                        if (_email_ || _content_) {
                            text = text.replace(item, `<a href="mailto:${_email_}">${_content_}</a>`);
                        }

                    });
                }

                let align = text.match(/\[align=[\s\S]+?\][\s\S]+?\[\/align\]/g);
                if (align) {
                    align.forEach(item => {
                        console.log(item);
                        let align_match = item.match(/\[align=([\s\S]*?)\][\s\S]+?\[\/align\]/);
                        let content_match = item.match(/\[align=[\s\S]*?\]([\s\S]+?)\[\/align\]/);
                        let _align_ = align_match.length ? align_match[align_match.length -1] :"";
                        let _content_ = content_match.length ? content_match[content_match.length - 1] : "";
                        if (_align_ || _content_) {
                            text = text.replace(item, `<div align="${_align_}">${_content_}</div>`);
                        }

                    });
                }
                let qq = text.match(/\[qq\][\s\S]*?\[\/qq\]/g);
                if (qq) {
                    qq.forEach(item => {
                        console.log(item);
                        let match_content = item.match(/\[qq\]([\s\S]*?)\[\/qq\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        /* 这个是以前的wpa协议,现在是tencent协议,mt的discuz没有更新,如:tencent://message/?uin=xxx&site=bbs.binmt.cc&menu=yes  */
                        text = text.replace(item, `<a href="http://wpa.qq.com/msgrd?v=3&uin=${content}&site=[Discuz!]&from=discuz&menu=yes" target="_blank"><img src="static/image/common/qq_big.gif" border="0"></a>`);
                    });
                }
                
                let td = text.match(/\[td\][\s\S]+?\[\/td\]/g);
                if (td) {
                    td.forEach(item => {
                        console.log(item);
                        let match_content = item.match(/\[td\]([\s\S]*?)\[\/td\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<td>${content}</td>`);
                    });
                }
                let tr = text.match(/\[tr\][\s\S]+?\[\/tr\]/g);
                if (tr) {
                    tr.forEach(item => {
                        console.log(item);
                        let match_content = item.match(/\[tr\]([\s\S]*?)\[\/tr\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        text = text.replace(item, `<tr>${content}</tr>`);
                    });
                }
                let table = text.match(/\[table\][\s\S]+?\[\/table\]/g);
                if (table) {
                    table.forEach(item => {
                        console.log(item);
                        let match_content = item.match(/\[table\]([\s\S]*?)\[\/table\]/);
                        let content = match_content ? match_content[match_content.length - 1] : "";
                        content = content.replace(/\n/g,"");
                        text = text.replace(item, `<table>${content}</table>`);
                    });
                }
                let list = text.match(/\[list=[\s\S]+?\][\s\S]+?\[\/list\]/g);
                if (list) {
                    list.forEach(item => {
                        console.log(item);
                        let list_model_match = item.match(/\[list=([\s\S]*?)\][\s\S]*?\[\/list\]/);
                        let list_content_match = item.match(/\[list=[\s\S]*?\]([\s\S]*?)\[\/list\]/);
                        let list_model = list_model_match ? list_model_match[list_model_match.length - 1] : "";
                        let list_type = "";
                        if(list_model === "a"){
                            list_type = "litype_2";
                        }else if(list_model === "A"){
                            list_type = "litype_3";
                        }else if(list_model.length === 1 && list_model.match(/[0-9]{1}/)){
                            list_type = "litype_1";
                        }
                        let content = list_content_match ? list_content_match[list_content_match.length - 1] : "";
                        let li_split = content.split("[*]");
                        if(li_split.length > 1){
                            let newContent = "";
                            if(li_split[0].replace(/[\s]*/,'') == ""){
                                li_split = li_split.slice(1);
                            }
                            Array.from(li_split).forEach( item=>{
                                newContent = newContent+ "<li>" + item + "</li>";
                            });
                            content = newContent;
                        }
                        content = content.replace(/\n/g,"");
                        text = text.replace(item, `<ul type="${list_model}" class="${list_type}">${content}</ul>`);
                    });
                }

                $jq(".gm_plugin_previewpostforum_html .comiis_quote.comiis_qianglou").remove();
                let password = text.match(/\[password\](.*?)\[\/password\]/ig);
                if (password) {
                    password.forEach(item => {
                        console.log(item);
                        text = item.replace(/\[password\](.*?)\[\/password\]/ig, "");

                        $jq(".gm_plugin_previewpostforum_html .comiis_message_table").before($jq(`
                            <div class="comiis_quote comiis_qianglou bg_h" style="display: flex;">
                                <i class="comiis_font f_a" style="font-size: 16px;"></i>&nbsp;付费主题, 价格: <strong>${$jq("#price").val()} 金币</strong>
                                <a href="javascript:;" class="y f_a" style="height: auto;color: #FF9900 !important;right: 5px;position: absolute;">记录</a></div>`));
                    })
                }


                let every_reward = parseInt($jq("#replycredit_extcredits").val());
                let total_reward = parseInt($jq("#replycredit_times").val());
                let getreward_menbertimes = parseInt($jq("#replycredit_membertimes").val());
                let getreward_random = parseInt($jq("#replycredit_random").val());
                $jq(".gm_plugin_previewpostforum_html .comiis_htjl").remove();
                if (!isNaN(every_reward) && !isNaN(total_reward) && every_reward > 0 && total_reward > 0) {
                    $jq(".gm_plugin_previewpostforum_html .comiis_message_table").before($jq(`
                    <div class="comiis_htjl bg_h f_a">
                        <i class="comiis_font"></i>
                        总共奖励 ${total_reward} 金币<br>回复本帖可获得 ${every_reward} 金币奖励! 每人限 ${getreward_menbertimes} 次 ${getreward_random != 100 ? "(中奖概率 "+getreward_random+"%)":""}
                    </div>
                    `));
                }

                text = text.replace(/\[hr\]/g, '<hr class="l">');
                text = text.replace(/\[\*\]/g, '<li></li>');
                text = text.replace(/\n/g, "<br>");
                return text;
            }

            function keyUpEvent(e) {
                /* 内容输入事件 */
                let userInputText = e.target.value;
                let replaecdText = replaceText(userInputText);
                $jq(".gm_plugin_previewpostforum_html .comiis_message_table")[0].innerHTML = replaecdText;
            };
            if (typeof unsafeWindow.comiis_addsmilies == "function") {
                /* 替换全局函数添加图片到里面触发input */
                unsafeWindow.comiis_addsmilies = (a) => {
                    unsafeWindow.$('#needmessage').comiis_insert(a);
                    unsafeWindow.$("#needmessage")[0].dispatchEvent(new Event('input'));
                }
            }
            $jq("#needmessage").on("propertychange input", keyUpEvent);
            $jq(".gm_plugin_previewpostforum").on("click", clickEvent);

        },
        quickUBB: {
            code: {
                "rainbow1": {
                    "key": "转普通彩虹",
                    "value": "",
                    "isFunc": true,
                    "num": 1
                },
                "rainbow2": {
                    "key": "转黑白彩虹",
                    "value": "",
                    "isFunc": true,
                    "num": 2
                },
                "rainbow3": {
                    "key": "转黑红彩虹",
                    "value": "",
                    "isFunc": true,
                    "num": 3
                },
                "rainbow4": {
                    "key": "转蓝绿彩虹",
                    "value": "",
                    "isFunc": true,
                    "num": 4
                },
                "size": {
                    "key": "size",
                    "value": "[size=][/size]",
                    "tagL": "=",
                    "tagR": "]",
                    "L": "[size=]",
                    "R": "[/size]",
                    "cursorL": "[size=",
                    "cursorLength": 6,
                    "quickUBBReplace": "[size=14]replace[/size]"
                },
                "color": {
                    "key": "color",
                    "value": "[color=][/color]",
                    "tagL": "=",
                    "tagR": "]",
                    "L": "[color=]",
                    "R": "[/color]",
                    "cursorL": "[color=",
                    "cursorLength": 7,
                    "quickUBBReplace": "[color=#000]replace[/color]"
                },
                "b": {
                    "key": "加粗",
                    "value": "[b][/b]",
                    "tagL": "]",
                    "tagR": "[",
                    "L": "[b]",
                    "R": "[/b]",
                    "cursorR": "[/b]",
                    "cursorLength": 4,
                    "quickUBBReplace": "[b]replace[/b]"
                },
                "u": {
                    "key": "下划线",
                    "value": "[u][/u]",
                    "tagL": "]",
                    "tagR": "[",
                    "L": "[u]",
                    "R": "[/u]",
                    "cursorR": "[/u]",
                    "cursorLength": 4,
                    "quickUBBReplace": "[u]replace[/u]"
                },
                "i": {
                    "key": "倾斜",
                    "value": "[i][/i]",
                    "tagL": "]",
                    "tagR": "[",
                    "L": "[i]",
                    "R": "[/i]",
                    "cursorR": "[/i]",
                    "cursorLength": 4,
                    "quickUBBReplace": "[i]replace[/i]"
                },
                "s": {
                    "key": "中划线",
                    "value": "[s][/s]",
                    "tagL": "]",
                    "tagR": "[",
                    "L": "[s]",
                    "R": "[/s]",
                    "cursorR": "[/s]",
                    "cursorLength": 4,
                    "quickUBBReplace": "[s]replace[/s]"
                },
                "lineFeed": {
                    "key": "换行",
                    "value": "[*]",
                    "L": "",
                    "R": "[*]",
                    "cursorL": "[*]",
                    "cursorLength": 3,
                    "quickUBBReplace": "replace[*]"
                },
                "longHorizontalLine": {
                    "key": "水平线",
                    "value": "[hr]",
                    "L": "",
                    "R": "[hr]",
                    "cursorL": "[hr]",
                    "cursorLength": 4,
                    "quickUBBReplace": "replace[hr]"
                },
                "link": {
                    "key": "链接",
                    "value": "[url=][/url]",
                    "tagL": "=",
                    "tagR": "]",
                    "L": "[url=]",
                    "R": "[/url]",
                    "cursorL": "[url=",
                    "cursorLength": 5,
                    "quickUBBReplace": "[url=replace]replace[/url]"
                },
                "hide": {
                    "key": "隐藏",
                    "value": "[hide][/hide]",
                    "tagL": "]",
                    "tagR": "[",
                    "L": "[hide]",
                    "R": "[/hide]",
                    "cursorR": "[/hide]",
                    "cursorLength": 7,
                    "quickUBBReplace": "[hide]replace[/hide]"
                },
                "quote": {
                    "key": "引用",
                    "value": "[quote][/quote]",
                    "tagL": "]",
                    "tagR": "[",
                    "L": "[quote]",
                    "R": "[/quote]",
                    "cursorR": "[/quote]",
                    "cursorLength": 8,
                    "quickUBBReplace": "[quote]replace[/quote]"
                },
                "email":{
                    "key": "邮件",
                    "value": "[email=][/email]",
                    "tagL": "=",
                    "tagR": "]",
                    "L": "[email=]",
                    "R": "[/email]",
                    "cursorL": "[email=",
                    "cursorLength": 7,
                    "quickUBBReplace": "[email=replace]replace[/email]"
                }
            },
            insertQuickReplyUBB: () => {
                /* 快捷回复 */
                $jq.each(mobile.quickUBB.code, function (index, value) {
                    let ubbs = $jq(`<li class="quickUBBs"><a href="javascript:;" class="comiis_xifont f_d"><i class="comiis_font"></i>${value["key"]}</a></li>`);
                    ubbs.on("click", function () {
                        $jq("#comiis_insert_ubb_tab div.comiis_post_urlico ul li.quickUBBs a.comiis_xifont").removeClass("f_0").addClass("f_d");
                        $jq(this).find(".comiis_xifont").removeClass("f_d").addClass("f_0");
                        let userInput = prompt(`请输入需要${value["key"]}的文字`);
                        if (userInput == null || userInput.trim() == "") {
                            return;
                        }
                        if (value["isFunc"]) {
                            comiis_addsmilies(mobile.quickUBB.set_rainbow(value["num"], userInput)); /* 插入贴内 */
                        } else if (value["quickUBBReplace"]) {
                            comiis_addsmilies(value["quickUBBReplace"].replaceAll("replace", userInput)); /* 插入贴内 */
                        } else {
                            comiis_addsmilies(userInput); /* 插入贴内 */
                        }
                        /*
                        if (value["isFunc"]) {
                            userInput = mobile.quickUBB.set_rainbow(value["num"], userInput);
                        }
                        */

                    })
                    $jq("#comiis_insert_ubb_tab div.comiis_post_urlico ul").append(ubbs[0]);
                })
            },
            insertReplayUBB: () => {
                /* 具体回复 */
                let insertDOM = $jq(".comiis_post_urlico");
                if (!insertDOM) {
                    console.log("未找到插入元素");
                    return;
                }
                GM_addStyle(`
                #comiis_post_tab .comiis_input_style .comiis_post_urlico li a.f_0{
                    color: #53bcf5 !important;
                }
                `);
                let parentEle = $jq(".comiis_post_urlico > ul")[0];
                let contentEle = $jq("#comiis_post_qydiv > ul");
                let childNums = $jq("#comiis_post_qydiv ul li").length;
                mobile.quickUBB.jqueryExtraFunction();

                $jq("#comiis_post_tab .comiis_input_style .comiis_post_urlico li").on("click", function () {
                    $jq("#comiis_post_tab .comiis_input_style .comiis_post_urlico li a").removeClass("f_0");
                    $jq("#comiis_post_tab .comiis_input_style .comiis_post_urlico li a").addClass("f_d");
                    $jq(this).find("a").attr("class", "comiis_xifont f_0");
                    $jq("#comiis_post_qydiv ul li").hide().eq($jq(this).index()).fadeIn();
                })
                $jq.each(mobile.quickUBB.code, function (key, value) {
                    let ubbs = $jq(`<li class="quickUBBs"><a href="javascript:;" class="comiis_xifont f_d"><i class="comiis_font"></i>${value["key"]}</a></li>`);
                    ubbs.on("click", (e) => {
                        let bottomEle = $jq(`#comiis_post_qydiv li[data-key='${value.key}']`);
                        if (!bottomEle.length) {
                            console.log("未找到该元素");
                            return
                        }
                        let contentIndex = childNums + Object.keys(mobile.quickUBB.code).indexOf(key);
                        console.log(contentIndex);
                        $jq("#comiis_post_qydiv ul li").hide().eq(contentIndex).fadeIn();
                        $jq.each($jq("#comiis_post_tab div.comiis_post_urlico ul li a.comiis_xifont"), (i, v) => {
                            v.className = "comiis_xifont f_d";
                            if (v == e.target) {
                                v.className = "comiis_xifont f_0";
                            }
                        });
                    })
                    parentEle.append(ubbs[0]);

                    let ubbs_content = document.createElement("li");
                    ubbs_content.setAttribute("style", "display: none;");
                    ubbs_content.setAttribute("data-key", value["key"]);
                    ubbs_content.innerHTML = `
                        <div class="comiis_styli_m f15" style="padding-top:12px;">
                            <div class="bg_e comiis_p5" style="border-radius:4px"><textarea class="comiis_pt kmshow f_c" id="comiis_input_${key}" style="font-size:15px" placeholder="请输入需要${value["key"]}的文字"></textarea></div>
                        </div>
                        <div class="comiis_styli_m f15 comiis_flex" style="padding-top:0;">
                            <div class="styli_tit"><button class="comiis_sendbtn bg_0 f_f" data-keyI="${key}" type="button">插入</button></div>
                            <div class="flex"></div>
                        </div>`;

                    contentEle.append(ubbs_content);
                    $jq(`.comiis_sendbtn[data-keyI="${key}"]`).on("click", () => {
                        let text = $jq(`#comiis_input_${key}`).val();
                        if (text == '') {
                            popup.open('请输入需要插入的内容', 'alert');
                            return;
                        }
                        if (mobile.quickUBB.code[key]["isFunc"]) {
                            text = mobile.quickUBB.set_rainbow(mobile.quickUBB.code[key]["num"], text);
                        }
                        if (mobile.quickUBB.code[key].hasOwnProperty("L")) {
                            text = mobile.quickUBB.code[key]['L'] + text + mobile.quickUBB.code[key]['R'];
                        }
                        $jq("#needmessage").insertAtCaret(text);
                        /*
                        if (mobile.quickUBB.code[key]["tagL"] != undefined || mobile.quickUBB.code[key]["tagR"] != undefined) {
                            $jq("#needmessage").moveCursorInCenterByText(mobile.quickUBB.code[key]["tagL"], mobile.quickUBB.code[key]["tagR"]);
                        }*/
                        if (mobile.quickUBB.code[key].hasOwnProperty("cursorL")) {
                            $jq("#needmessage").moveCursorToCenterByTextWithLeft(mobile.quickUBB.code[key]["cursorL"], mobile.quickUBB.code[key]["cursorLength"]);
                        }
                        if (mobile.quickUBB.code[key].hasOwnProperty("cursorR")) {
                            $jq("#needmessage").moveCursorToCenterByTextWithRight(mobile.quickUBB.code[key]["cursorR"], mobile.quickUBB.code[key]["cursorLength"]);
                        }
                    })
                });

            },
            set_rainbow: (num, text) => {
                if (text == "") {
                    return '';
                }
                var wr_text = text;
                var wr_code, wr_rgb, r, g, b, i, j, istep
                var wr_rgb1, wr_rgb2, r1, g1, b1, r2, g2, b2

                r1 = g1 = b1 = r2 = g2 = b2 = 0;
                r = 0;
                g = 0;
                b = 0;
                istep = 0;
                wr_code = '';

                if (num == 1) {
                    istep = 40;
                    r = 255;
                    i = 1;
                    j = 0;
                    do {
                        if (wr_text.charCodeAt(j) != 32) {
                            if (g + istep < 256) {
                                if (i == 1) g += istep;
                            } else if (i == 1) {
                                i = 2;
                                g = 255;
                            }
                            if (r - istep > -1) {
                                if (i == 2) r -= istep;
                            } else if (i == 2) {
                                i = 3;
                                r = 0;
                            }
                            if (b + istep < 256) {
                                if (i == 3) b += istep;
                            } else if (i == 3) {
                                i = 4;
                                b = 255;
                            }
                            if (g - istep > -1) {
                                if (i == 4) g -= istep;
                            } else if (i == 4) {
                                i = 5;
                                g = 0;
                            }
                            if (r + istep < 256) {
                                if (i == 5) r += istep;
                            } else if (i == 5) {
                                i = 6;
                                r = 255;
                            }
                            if (b - istep > -1) {
                                if (i == 6) b -= istep;
                            } else if (i == 6) {
                                i = 1;
                                b = 0;
                            }
                            wr_rgb = '';
                            wr_rgb += parseInt(r).toString(16).length == 1 ? 0 + parseInt(r).toString(16) : parseInt(r).toString(16);
                            wr_rgb += parseInt(g).toString(16).length == 1 ? 0 + parseInt(g).toString(16) : parseInt(g).toString(16);
                            wr_rgb += parseInt(b).toString(16).length == 1 ? 0 + parseInt(b).toString(16) : parseInt(b).toString(16);
                            wr_rgb = wr_rgb.toUpperCase();
                            wr_code += '[color=#' + wr_rgb + ']' + wr_text.charAt(j) + '[/color]';
                        } else {
                            wr_code += wr_text.charAt(j);
                        }
                        j++;
                    } while (j < wr_text.length);
                } else if (num == 2) {
                    istep = 255 / wr_text.length;
                    for (i = 1; i < wr_text.length + 1; i++) {
                        if (wr_text.charCodeAt(i - 1) != 32) {
                            r += istep;
                            g += istep;
                            b += istep;
                            if (r > 255) r = 255;
                            if (g > 255) g = 255;
                            if (b > 255) b = 255;
                            wr_rgb = '';
                            wr_rgb += parseInt(r).toString(16).length == 1 ? 0 + parseInt(r).toString(16) : parseInt(r).toString(16);
                            wr_rgb += parseInt(g).toString(16).length == 1 ? 0 + parseInt(g).toString(16) : parseInt(g).toString(16);
                            wr_rgb += parseInt(b).toString(16).length == 1 ? 0 + parseInt(b).toString(16) : parseInt(b).toString(16);
                            wr_rgb = wr_rgb.toUpperCase();
                            wr_code += '[color=#' + wr_rgb + ']' + wr_text.charAt(i - 1) + '[/color]';
                        } else {
                            wr_code += wr_text.charAt(i - 1);
                        }
                    }
                } else if (num == 3) {
                    istep = 255 / wr_text.length;
                    for (i = 1; i < wr_text.length + 1; i++) {
                        if (wr_text.charCodeAt(i - 1) != 32) {
                            r += istep;
                            g = 29;
                            b = 36;
                            if (r > 255) r = 255;
                            if (g > 255) g = 255;
                            if (b > 255) b = 255;
                            wr_rgb = '';
                            wr_rgb += parseInt(r).toString(16).length == 1 ? 0 + parseInt(r).toString(16) : parseInt(r).toString(16);
                            wr_rgb += parseInt(g).toString(16).length == 1 ? 0 + parseInt(g).toString(16) : parseInt(g).toString(16);
                            wr_rgb += parseInt(b).toString(16).length == 1 ? 0 + parseInt(b).toString(16) : parseInt(b).toString(16);
                            wr_rgb = wr_rgb.toUpperCase();
                            wr_code += '[color=#' + wr_rgb + ']' + wr_text.charAt(i - 1) + '[/color]';
                        } else {
                            wr_code += wr_text.charAt(i - 1);
                        }
                    }
                } else if (num == 4) {
                    istep = 255 / wr_text.length;
                    for (i = 1; i < wr_text.length + 1; i++) {
                        if (wr_text.charCodeAt(i - 1) != 32) {
                            r = 0;
                            g = 174;
                            b += istep;
                            if (r > 255) r = 255;
                            if (g > 255) g = 255;
                            if (b > 255) b = 255;
                            wr_rgb = '';
                            wr_rgb += parseInt(r).toString(16).length == 1 ? 0 + parseInt(r).toString(16) : parseInt(r).toString(16);
                            wr_rgb += parseInt(g).toString(16).length == 1 ? 0 + parseInt(g).toString(16) : parseInt(g).toString(16);
                            wr_rgb += parseInt(255 - b).toString(16).length == 1 ? 0 + parseInt(255 - b).toString(16) : parseInt(255 - b).toString(16);
                            wr_rgb = wr_rgb.toUpperCase();
                            wr_code += '[color=#' + wr_rgb + ']' + wr_text.charAt(i - 1) + '[/color]';
                        } else {
                            wr_code += wr_text.charAt(i - 1);
                        }
                    }
                }
                return wr_code;
            },
            jqueryExtraFunction: () => {
                $jq.fn.extend({
                    insertAtCaret: function (myValue) {
                        var $t = $jq(this)[0];
                        if (document.selection) {
                            this.focus();
                            var sel = document.selection.createRange();
                            sel.text = myValue;
                            this.focus();
                        } else
                        if ($t.selectionStart || $t.selectionStart == '0') {
                            var startPos = $t.selectionStart;
                            var endPos = $t.selectionEnd;
                            var scrollTop = $t.scrollTop;
                            $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
                            this.focus();
                            $t.selectionStart = startPos + myValue.length;
                            $t.selectionEnd = startPos + myValue.length;
                            $t.scrollTop = scrollTop;
                        } else {
                            this.value += myValue;
                            this.focus();
                        }
                    },
                    selectRange: function (start, end) {
                        if (end === undefined) {
                            end = start;
                        }
                        return this.each(function () {
                            if ('selectionStart' in this) {
                                this.selectionStart = start;
                                this.selectionEnd = end;
                            } else if (this.setSelectionRange) {
                                this.setSelectionRange(start, end);
                            } else if (this.createTextRange) {
                                var range = this.createTextRange();
                                range.collapse(true);
                                range.moveEnd('character', end);
                                range.moveStart('character', start);
                                range.select();
                            }
                        });
                    },
                    getCursorPosition: function () {
                        var el = $jq(this)[0];
                        var pos = 0;
                        if ('selectionStart' in el) {
                            pos = el.selectionStart;
                        } else if ('selection' in document) {
                            el.focus();
                            var Sel = document.selection.createRange();
                            var SelLength = document.selection.createRange().text.length;
                            Sel.moveStart('character', -el.value.length);
                            pos = Sel.text.length - SelLength;
                        }
                        return pos;
                    },
                    moveCursorInCenterByText: function (leftTextFlag, rightTextFlag) {
                        var el = $jq(this)[0];
                        var el_text = el.value;
                        for (let i = el.selectionStart - 1; i > 0; i--) {
                            let LText = el_text[i - 1];
                            let currentText = el_text[i];
                            if (LText == leftTextFlag && currentText == rightTextFlag) {
                                this.selectRange(i);
                                break;
                            }
                        }
                    },
                    moveCursorToCenterByTextWithLeft: function (leftMatchText, _length_) {
                        var el = $jq(this)[0];
                        var el_text = el.value;
                        for (let i = el.selectionStart - 1; i > 0; i--) {
                            let lTexts = el_text.substring(i - _length_, i);
                            if (lTexts == leftMatchText) {
                                this.selectRange(i);
                                break;
                            }
                        }
                    },
                    moveCursorToCenterByTextWithRight: function (rightMatchText, _length_) {
                        var el = $jq(this)[0];
                        var el_text = el.value;
                        for (let i = el.selectionStart - 1; i > 0; i--) {
                            let rTexts = el_text.substring(i, i + _length_);
                            if (rTexts == rightMatchText) {
                                this.selectRange(i + _length_);
                                break;
                            }
                        }
                    }
                });
            }
        },
        recoveryIMGWidth() {
            /* 修复图片宽度 */
            if (GM_getValue("v16") && window.location.href.match(mt_config.rexp.forum_post)) {
                GM_addStyle(`
                .comiis_messages img{
                    max-width: 100% !important;
                }
                `)
            }
        },
        removeForumPostCommentFontStyle() {
            /* 移除评论区字体效果 */
            if (GM_getValue("v3") && window.location.href.match(mt_config.rexp.forum_post)) {
                var hide = document.getElementsByTagName('font');
                var postForumMain = document.querySelector(".comiis_ordertype") ? document.querySelector(".comiis_postlist.kqide .comiis_postli").innerHTML : '';
                for (let i = 0; i < hide.length; i++) {
                    if (postForumMain.indexOf(hide[i].innerHTML) == -1) {
                        console.log(hide[i].innerHTML);
                        hide[i].removeAttribute('color');
                        hide[i].removeAttribute('style');
                        hide[i].removeAttribute('size');
                    }
                }
                var content = document.getElementsByClassName("comiis_message bg_f view_all cl message");
                for (let i = 0; i < content.length; i++) {
                    if (postForumMain.indexOf(content[i].innerHTML) == -1) {
                        content[i].innerHTML = content[i].innerHTML.replace(mt_config.rexp.font_special, '');
                    }
                }
            }
        },
        removeForumPostFontStyle() {
            /* 移除帖子内的字体style */
            if (GM_getValue("v1") && window.location.href.match(mt_config.rexp.forum_post)) {
                $jq(".comiis_a.comiis_message_table.cl").eq(0).html($jq(".comiis_a.comiis_message_table.cl").eq(0).html().replace(mt_config.rexp.font_special, ''));
            }
        },
        repairClearSearchInput() {
            /* 修复搜索的清空按钮 */
            if (GM_getValue("v36") && window.location.href.match(mt_config.rexp.search_url)) {
                let $search_input = $jq(".ssclose.bg_e.f_e");
                if ($search_input) {
                    $search_input.click(function (e) {
                        e.preventDefault();
                        $jq("#scform_srchtxt").val("")
                    })
                } else {
                    log.error("搜索界面: 获取清空按钮失败");
                }
            }
        },
        repairUnableToEnterOtherSpaceCorrectly() {
            /* 修复无法正确进入别人的空间 */
            if (!GM_getValue("v37")) {
                return;
            };

            if (window.location.href.match(mt_config.rexp.home_url_brief)) {
                let href_params = window.location.href.match(/home.php\?(.+)/gi);
                href_params = href_params[href_params.length - 1];
                let params_split = href_params.split("&");
                if (params_split.length == 2 && href_params.indexOf("uid=") != -1 && href_params.indexOf("mod=space") != -1) {
                    window.location.href = window.location.href + "&do=profile";
                }
            }
            if (window.location.href.match(mt_config.rexp.home_url_at)) {
                let href_params = window.location.href.match(/space-uid-(.+).html/i);
                href_params = href_params[href_params.length - 1];
                window.location.href = `https://bbs.binmt.cc/home.php?mod=space&uid=${href_params}&do=profile`;
            }
        },
        searchHistory() {
            /* 搜索历史 */
            if (GM_getValue("v19") && location.href.match(mt_config.rexp.search_url)) {
                function search_event() {
                    /* 搜索历史事件 */
                    /* 搜索界面增加关闭按钮事件,清空input内容 */
                    /* 点击搜索保存搜索记录 */
                    $jq("#scform_submit").click(function () {
                        let getsearchtext = $jq("#scform_srchtxt").val();
                        if ((getsearchtext != null) && (getsearchtext != "")) {
                            let search_history_array = new Array(getsearchtext);
                            let has_history = GM_getValue("search_history");
                            if (has_history != null) {
                                if ($jq.inArray(getsearchtext, has_history) != -1) {
                                    console.log("已有该搜索历史记录")
                                    search_history_array = has_history
                                } else {
                                    console.log("无该记录,追加");
                                    search_history_array = search_history_array.concat(has_history);
                                }
                            } else {
                                console.log("空记录,添加")
                            }
                            GM_setValue("search_history", search_history_array);
                        }

                    })
                }

                function add_search_history() {
                    /* 搜索界面添加搜索历史记录 */
                    $jq("#scform_srchtxt").attr("list", "search_history");
                    var search_history_list = GM_getValue("search_history");
                    var dom_datalist = document.createElement("datalist");
                    dom_datalist.id = "search_history";
                    var option_text = "";
                    if (search_history_list) {
                        for (var i = 0; i < search_history_list.length; i++) {
                            option_text = option_text + '<option value="' + search_history_list[i] + '">';
                        }
                        dom_datalist.innerHTML = option_text;
                        $jq(".comiis_flex").append(dom_datalist);
                    }

                }

                function add_clear_history() {
                    /* 搜索界面添加清理历史记录和历史记录个数 */
                    let search_history_list = GM_getValue("search_history");
                    let search_history_nums = 0;
                    if (search_history_list != null) {
                        search_history_nums = search_history_list.length;
                    }
                    let clear_history_innerHTML =
                        `<div class="comiis_p12 f14 bg_f f_c b_b cl" style="padding-bottom:10px">搜索记录个数: ` +
                        search_history_nums +
                        `<button class="btn_clear_search_history" style="
                        border: none;
                        float: right;
                        background: red;
                        color: #fff;
                        border-radius: 3px;
                        font-weight: 600;
                        min-width: 20vw;
                        width: 20vw;
                    ">清理记录</button></div>`;
                    let insertdom = $jq(".comiis_p12.f14.bg_f.f_c.b_b.cl,.comiis_tagtit.b_b.f_c");
                    insertdom.before(clear_history_innerHTML);
                    $jq(".btn_clear_search_history").click(function () {
                        GM_deleteValue("search_history");
                        window.location.reload();
                    })
                }

                search_event();
                add_search_history();
                add_clear_history();
            }
        },
        selectPostingSection() {
            /* 在发帖/编辑帖子时选择发帖板块 */
            if (!window.location.href.match(mt_config.rexp.post_forum) &&
                !window.location.href.match(mt_config.rexp.edit_forum)) {
                return;
            }
            GM_addStyle(`
            #select-post-section{
                height: 28px;
                width: 160px;
                line-height: 28px;
                border: 1px solid #ececec;
                background: url(w.png) no-repeat;
                background-position: 95% 50%;
                -webkit-appearance: none;
                appearance: none;
                -moz-appearance: none;
            }
            `);
            let section_dict = {
                "2": "版本发布",
                "37": "插件交流",
                "38": "建议反馈",
                "41": "逆向交流",
                "39": "玩机交流",
                "42": "编程开发",
                "40": "求助问答",
                "44": "综合交流",
                "50": "休闲灌水",
                "46": "官方公告",
                "53": "申诉举报",
                "92": "站务专区"
            }
            $jq(".comiis_post_from .comiis_wzpost.comiis_input_style .comiis_styli:contains('标题')").before($jq(`
            <li class="comiis_styli_section comiis_flex b_b" style="padding: 10px 12px;font-size: 16px;">
                <div class="styli_section f_c" style="padding-right: 8px;vertical-align: top;">板块</div>
                <div class="flex">
                    <select id="select-post-section" style="vertical-align:top;border-color:transparent;font-size: 17px;font-weight: 300;text-overflow:ellipsis;white-space:nowrap;">
                        <option value="2">版本发布</option>
                        <option value="37">插件交流</option>
                        <option value="38">建议反馈</option>
                        <option value="39">玩机交流</option>
                        <option value="40">求助问答</option>
                        <option value="41">逆向交流</option>
                        <option value="42">编程开发</option>
                        <option value="44">综合交流</option>
                        <option value="46">官方公告</option>
                        <option value="50">休闲灌水</option>
                        <option value="53">申诉举报</option>
                        <option value="92">站务专区</option>
                    </select>
                </div>
            </li>
            `));
            let selectNode = $jq(`#select-post-section`);
            let currentSection = window.location.search.match(/fid=([0-9]+)/);
            currentSection = currentSection[currentSection.length - 1];

            if (window.location.href.match(mt_config.rexp.post_forum)) {
                /* 发帖 */
                console.log("发帖")
                selectNode.on("change", function () {
                    let obj = $jq(this);
                    let fid = obj.val();
                    let postSection = `forum.php?mod=post&action=newthread&fid=${fid}&extra=&topicsubmit=yes&mobile=2`;
                    console.log("修改发帖板块: " + section_dict[fid] + " " + postSection);
                    $jq('#postform').attr('action', postSection);
                });

            } else {
                selectNode.attr("disabled", true);
            }
            selectNode.val(currentSection).trigger('change');
        },
        shieldPlate() {
            /* 屏蔽板块 */
            if (window.location.href.match(mt_config.rexp.forum_guide_url)) {
                let infos = document.querySelectorAll(".comiis_forumlist .forumlist_li");
                let black_list = GM_getValue("blacklistplate") || "";
                let black_list_array = black_list.split("、");
                Array.from(infos).forEach((info) => {
                    let from_plate = (info.querySelector(".forumlist_li_time a.f_d") || info.querySelector(".comiis_xznalist_bk.cl")).outerText;
                    from_plate = from_plate.replace(//g, "");
                    from_plate = from_plate.replace(/\s*/g, "");
                    from_plate = from_plate.replace("来自", "");
                    if (black_list_array.indexOf(from_plate) != -1) {
                        console.log("屏蔽目标板块:" + from_plate);
                        info.setAttribute("style", "display:none !important;");
                    }
                })
            }
        },
        shieldUser() {
            /* 屏蔽用户 */
            if (window.location.href.match(mt_config.rexp.forum_guide_url) ||
                window.location.href.match(mt_config.rexp.plate_url) ||
                window.location.href.match(mt_config.rexp.forum_post)) {
                let infos = document.querySelectorAll(".comiis_forumlist .forumlist_li"); /* 帖子外 */
                if (!infos.length) {
                    /* 帖子内 */
                    infos = document.querySelectorAll(".comiis_postlist .comiis_postli");
                    if (!infos.length) {
                        return;
                    }
                }
                let black_list = GM_getValue("blacklistuid") ? GM_getValue("blacklistuid") : "";
                let black_list_array = black_list.split(",");
                Array.from(infos).forEach((info) => {
                    let usr = info.getElementsByClassName("wblist_tximg");
                    if (!usr.length) {
                        usr = info.getElementsByClassName("postli_top_tximg");
                        if (!usr.length) {
                            return;
                        }
                    }
                    usr = usr[0].href;
                    let usr_uid = usr.match(mt_config.rexp.mt_uid)[1];
                    if (black_list_array.indexOf(usr_uid) != -1) {
                        console.log("屏蔽用户:" + usr_uid);
                        info.setAttribute("style", "display:none !important;");
                    }
                })

            }
        },
        showSignInRanking() {
            /* 显示签到的最先几个人,最多10个,和顶部的今日签到之星 */
            if (window.location.href.match(mt_config.rexp.k_misign_sign)) {

                let today_ranking_ele = document.querySelector(".comiis_topnv .comiis_flex .flex");
                today_ranking_ele.after($jq(`<li class="flex"><a href="javascript:;" id="k_misignlist_today_latest" onclick="ajaxlist('todayLatest');">今日最先</a></li>`)[0]);
                let getMaxPage = (urlextra) => {
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: "https://bbs.binmt.cc/k_misign-sign.html?operation=" + urlextra,
                            async: false,
                            responseType: 'html',
                            headers: {
                                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"
                            },
                            onload: function (resp) {
                                let last_page = $jq(resp.responseText).find("#J_list_detail .pg span");
                                if (last_page.length && typeof last_page[0].title != "undefined") {
                                    let last_page_match = last_page[0].title.match(/([0-9]+)/);
                                    if (last_page_match.length == 2) {
                                        res(last_page_match[last_page_match.length - 1]);
                                    } else {
                                        popup.open("获取页失败", "alert");
                                        res(0);
                                    }
                                } else {
                                    popup.open("请求最先签到的页失败", "alert");
                                    res(0);
                                }
                            },
                            onerror: function (resp) {
                                console.log(resp);
                                popup.open("网络异常,请重新获取", "alert");
                                res(0);
                            }
                        })
                    })
                }

                let getPagePeople = (page) => {
                    return new Promise(res => {
                        GM_xmlhttpRequest({
                            url: "https://bbs.binmt.cc/k_misign-sign.html?operation=list&op=&page=" + page,
                            async: false,
                            responseType: 'html',
                            headers: {
                                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"
                            },
                            onload: function (resp) {
                                let peoples = $jq(resp.responseText).find("#J_list_detail tbody tr");
                                let ret_array = [];
                                if (peoples.length == 2 && peoples[0].textContent.indexOf("暂无内容") != -1) {
                                    res(ret_array);
                                    return;
                                }
                                for (let i = 1; i <= peoples.length - 2; i++) {
                                    let people = peoples[i];
                                    let ret_json = {};
                                    let user_name = people.children[0].getElementsByTagName("a")[0].textContent;
                                    let space_url = people.children[0].getElementsByTagName("a")[0].href;
                                    let uid = space_url.match(/space-uid-([0-9]*)/)[1];
                                    let sign_all_days = people.children[1].textContent;
                                    let sign_month_days = people.children[2].textContent;
                                    let sign_time = people.children[3].textContent;
                                    let sign_reward = people.children[5].textContent;
                                    ret_json["user"] = user_name;
                                    ret_json["uid"] = uid;
                                    ret_json["avatar"] = "https://avatar-bbs.mt2.cn/uc_server/avatar.php?uid=" + uid + "&size=small";
                                    ret_json["days"] = sign_all_days;
                                    ret_json["monthDays"] = sign_month_days;
                                    ret_json["time"] = sign_time;
                                    ret_json["reward"] = sign_reward;
                                    ret_array = ret_array.concat(ret_json);
                                }
                                res(ret_array)
                            },
                            onerror: function (resp) {
                                console.log(resp);
                                res({});
                            }
                        })
                    })
                }

                function changeRankList(data, listtype) {
                    $jq("#ranklist").html(data);
                    $jq('#ranklist').attr('listtype', listtype);
                }

                ajaxlist = async (listtype) => {
                    listtype = listtype;
                    if (listtype == 'today') {
                        loadingdelay = false;
                        urlextra = 'list&op=today';
                    } else if (listtype == 'month') {
                        loadingdelay = false;
                        urlextra = 'list&op=month';
                    } else if (listtype == 'zong') {
                        loadingdelay = false;
                        urlextra = 'list&op=zong';
                    } else if (listtype == 'calendar') {
                        loadingdelay = true;
                        urlextra = 'calendar';
                    } else {
                        loadingdelay = false;
                        urlextra = 'list';
                    }
                    /* alert(loadingdelay); */
                    if (listtype == 'todayLatest') {
                        loadingdelay = false;
                        urlextra = 'list&op=&page=0';
                        let maxPage = await getMaxPage(urlextra);
                        if (maxPage == 0) {
                            return
                        };
                        let latestPeople = await getPagePeople(maxPage);

                        latestPeople.reverse();
                        if (latestPeople.length < 10) {
                            let latestPeople_2 = await getPagePeople(maxPage - 1);
                            latestPeople_2.reverse();
                            latestPeople = latestPeople.concat(latestPeople_2);
                            latestPeople.reverse();
                        }

                        let peopleHTML = '';
                        latestPeople.reverse();
                        console.log(latestPeople);
                        latestPeople.forEach(people => {
                            peopleHTML = peopleHTML + `
                            <tbody id="autolist_` + people["uid"] + `">
                                <tr>
                                    <td class="k_misign_lu">
                                        <a href="home.php?mod=space&amp;uid=` + people["uid"] + `"><img
                                                src="` + people["avatar"] + `"></a>
                                    </td>
                                    <td class="k_misign_ll"><span></span></td>
                                    <td class="k_misign_lc">
                                        <h4 class="f_c"><a href="home.php?mod=space&amp;uid=` + people["uid"] + `">` + people["user"] + `</a><span>` + people["time"] + `</span><span
                                                class="y">总天数 ` + people["days"] + `天</span></h4>
                                        <p class="f_0">月天数 ` + people["monthDays"] + ` 天
                                            ,
                                            上次奖励
                                            ` + people["reward"] + `</p>
                                    </td>
                                </tr>
                            </tbody>
                            `
                        })
                        let latestHTML = `<li class="styli_h bg_e"></li>
                        <div class="comiis_topnv bg_f b_t b_b">
                            <ul class="comiis_flex">
                                <li class="flex"><a href="javascript:;" id="k_misignlist_today" onclick="ajaxlist('today');">今日排行</a></li>
                                <li class="flex f_0"><em class="bg_0"></em><a href="javascript:;" id="k_misignlist_today_latest" onclick="ajaxlist('todayLatest');">今日最先</a>
                                </li>
                                <li class="flex"><a href="javascript:;" id="k_misignlist_month" onclick="ajaxlist('month');" class="f_c">本月排行</a>
                                </li>
                                <li class="flex"><a href="javascript:;" id="k_misignlist_zong" onclick="ajaxlist('zong');" class="f_c">总排行</a></li>
                            </ul>
                        </div>
                        <div class="k_misign_wp">
                            <div class="k_misign_list bg_f">
                                <table id="misign_list">
                                ` + peopleHTML + `
                                </table>
                            </div>
                        </div>`
                        changeRankList(latestHTML, listtype)
                    } else {
                        $jq.ajax({
                            type: 'GET',
                            url: "plugin.php?id=k_misign:sign&operation=" + urlextra,
                            async: false,
                            dataType: 'html',
                            success: function (data) {
                                /* console.log(data); */
                                data = data.replace(`今日排行</a></li>`, `今日排行</a></li><li class="flex"><a href="javascript:;" id="k_misignlist_today_latest" onclick="ajaxlist('todayLatest');">今日最先</a></li>`);
                                changeRankList(data, listtype);

                            },
                            complete: function (XHR, TS) {
                                XHR = null
                            }
                        });
                    }

                }

            }

        },
        showTodayStar() {
            /* 显示今日之星,在签到页上 */
            if (GM_getValue("v33") && window.location.href.match(mt_config.rexp.k_misign_sign)) {
                let todayStarParent = $jq(".pg_k_misign .comiis_qdinfo");
                let todayStar = document.createElement("ul");
                GM_xmlhttpRequest({
                    url: "/k_misign-sign.html",
                    method: 'get',
                    async: false,
                    headers: {
                        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53"
                    },
                    onload: (r) => {
                        let html = $jq(r.responseText);
                        let todatastarele = html.find("#pt span.xg1");
                        if (!todatastarele.length) {
                            return;
                        }
                        let todaypeople = todatastarele[0].textContent.replace("今日签到之星:", '');
                        todayStar.innerHTML = '<li class="f_f" style="display: flex;flex-direction: column;width: 100%;"><span class="comiis_tm">今日签到之星</span>' + todaypeople + '</li>';
                        let comiis_space_box_height = getComputedStyle($jq(".comiis_space_box")[0], null)["height"].replace("px", "");
                        let comiis_space_box_padding_bottom = getComputedStyle($jq(".comiis_space_box")[0], null)["padding-bottom"].replace("px", "");
                        comiis_space_box_height = parseInt(comiis_space_box_height);
                        comiis_space_box_padding_bottom = parseInt(comiis_space_box_padding_bottom);
                        let total_height = comiis_space_box_height + comiis_space_box_padding_bottom + 50;
                        GM_addStyle(`
                        .comiis_space_box{
                            height: ${total_height}px;
                            background-size: 100% 100%;
                        }
                        .pg_k_misign .comiis_qdinfo{
                            height: 110px !important;
                        }`);
                        todayStarParent.append(todayStar);

                    },
                    onerror: (r) => {
                        console.log(r);
                        log.error("请求今日之星失败");
                    }
                })
            }

        },
        showUserUID() {
            /* 显示用户的uid */
            if (GM_getValue("v15") &&
                ((window.location.href.match(mt_config.rexp.forum_post_guide_url) ||
                    (window.location.href.match(mt_config.rexp.forum_post)) ||
                    (window.location.href.match(mt_config.rexp.plate_url)) ||
                    (window.location.href.match(mt_config.rexp.search_url)) ||
                    window.location.href.match(/bbs.binmt.cc\/home.php\?mod=space&do=thread&view=me/) ||
                    window.location.href.match(/home.php\?mod=space&uid=.+&do=thread&view=me/)
                ))) {
                if (!window.GM_isaddShowUidCss) {
                    window.GM_isaddShowUidCss = true;
                    GM_addStyle(`
                        .postli_top_tximg + h2{
                            height: auto;
                        }
                    `);
                }
                window.findUserFormList = false;
                window.findUserFormListNums = 0;
                let findSetInval = setInterval(function () {
                    let formList = mt_config.dom_obj.comiis_formlist() ? mt_config.dom_obj.comiis_formlist() : [];
                    formList = formList.length == 0 ? mt_config.dom_obj.comiis_postli() : formList;
                    formList = formList.length == 0 ? mt_config.dom_obj.comiis_mmlist() : formList;
                    window.findUserFormList = formList.length ? true : false;
                    if (findUserFormListNums >= 16) {
                        console.log("已循环16次,未找到帖子");
                        clearInterval(findSetInval);
                    }
                    if (window.findUserFormList) {
                        GM_addStyle(`
                        .comiis_postli_top.bg_f.b_t h2{
                            height: auto;
                        }`);

                        function matchUIDByArray(data) {
                            for (let i = 0; i < data.length; i++) {
                                let url = data[i].href;
                                let uid = url.match(mt_config.rexp.mt_uid);
                                if (uid) {
                                    return uid[1];
                                }
                            }
                            return null
                        }
                        $jq.each(formList, (index, value) => {
                            let mtUIDOM = value.getElementsByClassName("mt_uid_set");
                            if (!mtUIDOM.length) {
                                let childrenByATagetElement = value.getElementsByTagName("a");
                                let mt_uid = null;
                                mt_uid = matchUIDByArray(childrenByATagetElement);
                                if (mt_uid != null) {
                                    let uid_control = document.createElement("a");
                                    let mtUidDomInsertElement = value.getElementsByClassName("top_lev")[0];
                                    let uid_control_height = getComputedStyle(mtUidDomInsertElement, null)["height"];
                                    let uid_control_margin = getComputedStyle(mtUidDomInsertElement, null)["margin"];
                                    let uid_control_padding = getComputedStyle(mtUidDomInsertElement, null)["padding"];
                                    let uid_control_line_height = getComputedStyle(mtUidDomInsertElement, null)["line-height"];
                                    let uid_control_font = getComputedStyle(mtUidDomInsertElement, null)["font"];
                                    let uid_control_bg_color = "#FF7600";
                                    uid_control.className = "mt_uid_set";
                                    uid_control.style = `
                                        font: ${uid_control_font};
                                        background: ${uid_control_bg_color};
                                        color: white;
                                        float: left;
                                        margin: ${uid_control_margin};
                                        padding: ${uid_control_padding};
                                        height: ${uid_control_height};
                                        line-height: ${uid_control_line_height};
                                        border-radius: 1.5px;`;
                                    uid_control.innerHTML = "UID:" + mt_uid;
                                    uid_control.onclick = function () {
                                        try {
                                            GM_setClipboard(mt_uid);
                                            popup.open(`${mt_uid}已复制`, "alert");
                                            console.log("复制:", mt_uid)
                                        } catch (err) {
                                            popup.open(`${mt_uid}复制失败`, "alert");
                                            console.log("复制失败:" + mt_uid, err);
                                        }
                                    }

                                    mtUidDomInsertElement.parentElement.append(uid_control);
                                }
                            }
                        })
                        console.log("成功找到帖子DOM");
                        clearInterval(findSetInval);
                    } else {
                        findUserFormListNums += 1;
                    }

                }, 800)

            }
        },
        userCheckBoxSettings() {
            /* 侧边栏配置项 */
            function checkboxNode() {
                return $jq(".whitesevcheckbox");
            }

            function selectedNodeText() {
                let selectedVal = selectNode().val();
                return $jq(`.beauty-select option[value='${selectedVal}']`).text();
            }

            function selectNode() {
                return $jq(".beauty-select");
            }

            function setCodeNodeCheckedStatus(status) {
                /* 设置 开关的状态 */
                status ? checkboxNode().removeClass("comiis_checkbox_close") : checkboxNode().addClass("comiis_checkbox_close");
            }

            function setLastClickItem() {
                /* 初始化设置上次点击的select内容 */
                let selectNodeNormalVal = GM_getValue("last") == null ? "v2" : GM_getValue("last");
                selectNode().val(selectNodeNormalVal);
                setCodeNodeCheckedStatus(GM_getValue(selectNodeNormalVal) != null ? true : false);

            }

            function setSelectNodeChangeEvent() {
                /* 设置选项的change事件 */
                selectNode().change(function () {
                    let selected_value = $jq('.beauty-select').val();
                    GM_setValue("last", selected_value);
                    let check_value = GM_getValue(selected_value) != null ? true : false;
                    setCodeNodeCheckedStatus(check_value);
                });

            }

            function setCodeNodeClickEvent() {
                /* 设置开关的click事件 */
                checkboxNode().on("click", (e) => {
                    let selected_value = selectNode().val();
                    let check_value = GM_getValue(selected_value) != null ? false : true;
                    check_value ? GM_setValue(selected_value, true) : GM_deleteValue(selected_value);
                    let showText = check_value ? '设置-开启' : '设置-关闭';
                    popup.open(showText, "alert");
                    setCodeNodeCheckedStatus(check_value);
                })
            }

            function setSelectNodeCSS() {
                GM_addStyle(`
                    .beauty-select{
                        background-color: #fff;
                        height:28px;
                        width: 160px;
                        line-height:28px;
                        border: 1px solid #ececec;
                        background: url(w.png) no-repeat;
                        background-position: 95% 50%;
                        -webkit-appearance: none;  /*去掉样式 for chrome*/
                        appearance:none;/*去掉样式*/
                        -moz-appearance:none;/*去掉样式*/
                }`);
            }

            if (window.location.href.match(mt_config.rexp.bbs)) {
                var setting_content = document.createElement("li");
                setting_content.className = "comiis_left_Touch";
                setting_content.innerHTML = '<div class="styli_tit f_c"><i class="comiis_font" style="color: #a70bfe;font-size: 23px;"></i></div><div class="flex" style="display: flex;align-items: center;"><select style="vertical-align:top;border-color:transparent;font-size: 17px;font-weight: 300;text-overflow:ellipsis;white-space:nowrap;" class="beauty-select">' +
                    '<option value="v2">识别链接<\/option>' +
                    '<option value="v17">自动签到<\/option>' +
                    '<option value="v18">自动展开帖子<\/option>' +
                    '<option value="v16">自适应帖子内图片的宽度<\/option>' +
                    '<option value="v15">显示用户的UID<\/option>' +
                    '<option value="v19">显示搜索历史<\/option>' +
                    '<option value="v1">移除帖子字体效果<\/option>' +
                    '<option value="v3">移除评论区字体效果<\/option>' +
                    '<option value="v6">评论区开启点评<\/option>' +
                    '<option value="v32">自动加载上一页评论<\/option>' +
                    '<option value="v21">自动加载下一页评论<\/option>' +
                    '<option value="v30">小黑屋<\/option>' +
                    '<option value="v33">今日签到之星<\/option>' +
                    '<option value="v34">帖外预览图片<\/option>' +
                    '<option value="v36">修复搜索的清空按钮<\/option>' +
                    '<option value="v37">修复无法正确进入别人的空间<\/option>' +
                    '<option value="v40">聊天内图床<\/option>' +
                    '<option value="v44">付费主题白嫖提醒<\/option>' +
                    '<option value="v45">页面小窗浏览帖子<\/option>' +
                    '<option value="v46">代码块上方新增复制按钮<\/option>' +
                    '<option value="v47">蓝奏云功能<\/option>' +
                    '<option value="v49">编辑器优化-快捷<\/option>' +
                    '<option value="v50">编辑器优化-完整<\/option>' +
                    '<\/select>' +
                    '<code class="bg_f b_ok comiis_checkbox comiis_checkbox_close whitesevcheckbox" style="left: 20px;"></code>' +
                    '<\/div>';
                /* Array.from(document.querySelectorAll(".comiis_myinfo_list.bg_f.cl")).forEach((ele) => {
                    if (ele.innerText.match(/风格配色|夜间模式|最近访客|改名申请|手机绑定设置/)) {
                        ele.appendChild(setting_content);
                        return;
                    }
                }) */
                GM_addStyle(`
                .comiis_sidenv_box ul.comiis_left_Touch.bdew li:nth-last-child(1) {
                    margin-bottom: 10px;
                }
                `);
                $jq(".comiis_sidenv_box .sidenv_li .comiis_left_Touch.bdew").append(setting_content);

                tryCatch(setSelectNodeCSS);
                tryCatch(setLastClickItem);

                tryCatch(setCodeNodeClickEvent);
                tryCatch(setSelectNodeChangeEvent);
                /* tryCatch(loadCheckboxTipResource); */
            }
        },
    }

    function Hooks() {
        /* hook?用不到 */
        return {
            initEnv: function () {
                Function.prototype.hook = function (realFunc, hookFunc, context) {
                    var _context = null; /* 函数上下文 */
                    var _funcName = null; /* 函数名 */

                    _context = context || window;
                    _funcName = getFuncName(this);
                    _context['realFunc_' + _funcName] = this;

                    console.log(window);

                    if (_context[_funcName].prototype && _context[_funcName].prototype.isHooked) {
                        console.log("Already has been hooked,unhook first");
                        return false;
                    }

                    function getFuncName(fn) {
                        /* 获取函数名 */
                        var strFunc = fn.toString();
                        var _regex = /function\s+(\w+)\s*\(/;
                        var patten = strFunc.match(_regex);
                        if (patten) {
                            return patten[1];
                        };
                        return '';
                    }
                    try {
                        eval('_context[_funcName] = function ' + _funcName + '(){\n' +
                            'var args = Array.prototype.slice.call(arguments,0);\n' +
                            'var obj = this;\n' +
                            'hookFunc.apply(obj,args);\n' +
                            "return _context['realFunc_" + _funcName + "'].apply(obj,args);\n" +
                            '};');
                        _context[_funcName].prototype.isHooked = true;
                        return true;
                    } catch (e) {
                        console.log("Hook failed,check the params.");
                        return false;
                    }
                }
                Function.prototype.unhook = function (realFunc, funcName, context) {
                    var _context = null;
                    var _funcName = null;
                    _context = context || window;
                    _funcName = funcName;
                    if (!_context[_funcName].prototype.isHooked) {
                        console.log("No function is hooked on");
                        return false;
                    }
                    _context[_funcName] = _context['realFunc' + _funcName];
                    delete _context['realFunc_' + _funcName];
                    return true;
                }
            },
            cleanEnv: function () {
                if (Function.prototype.hasOwnProperty("hook")) {
                    delete Function.prototype.hook;
                }
                if (Function.prototype.hasOwnProperty("unhook")) {
                    delete Function.prototype.unhook;
                }
                return true;
            }
        };
    }

    function entrance() {
        /* 这是入口 */
        var UA = navigator.userAgent.match(mt_config.rexp.pc_useragent);
        if (UA != null) {
            tryCatch(pc.repairPCNoLoadResource);
            $jq(document).ready(function () {
                tryCatch(pc.main);
            });
        } else {
            $jq(document).ready(function () {
                tryCatch(mobile.main);
            })
        }
    };
    if (envCheck()) {
        $jq(document).ready(function () {
            entrance();
            console.log(`执行完毕,耗时${Date.now()-mt_config.GMRunStartTime}ms`);
        });
    }

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址