// ==UserScript==
// @name MT论坛
// @namespace http://tampermonkey.net/
// @description MT论坛效果增强,如自动签到、自动展开帖子、滚动加载评论、显示uid、屏蔽用户、手机版小黑屋、编辑器优化等
// @version 2.5.9
// @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=1118788
// @require https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js?version=1082044
// @require https://gf.qytechs.cn/scripts/452322-js-watermark/code/js-watermark.js?version=1102558
// @require https://gf.qytechs.cn/scripts/455186-whitesevsutils/code/WhiteSevsUtils.js?version=1120975
// ==/UserScript==
(function () {
'use strict';
const log = {
success: (str) => {
console.log("%c" + str, "color: #00a5ff");
},
error: (str) => {
console.trace("%c" + str, "color: #f20000");
}
}
const popup2 = {
/* 自定义新的popup */
config: {
mask: {
zIndex: 1000000,
style: `#force-mask{
width: 100%;
height: 100%;
position: fixed;
top: 0px;
left: 0px;
background: black;
opacity: 0.6;
z-index: 1000000;
display: flex;
align-content: center;
justify-content: center;
align-items: center;
}`,
},
confirm: {
zIndex: 1000100,
style: `
#popup2-confirm .popup2-confirm-cancel,
#popup2-confirm .popup2-confirm-ok{
user-select: none;
width: 100% !important;
background: transparent !important;
border-radius: unset;
}`,
},
toast: {
zIndex: 1100000,
style: `.popup2-toast{
width: fit-content;
padding: 10px 16px;
color: #fff;
background: rgba(0,0,0,0.65);
position: fixed;
margin: 0 auto;
left: 0;
right: 0;
bottom: 0;
border-radius: 4px;
font-size: 14px;
z-index: 1100000;
max-width: 80vw;
opacity: 1;
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-backface-visibility: hidden;
-webkit-font-smoothing: antialiased/subpixel-antialiased;
touch-action: pan-y;
-webkit-user-select: none;
transform: translateY(160px);
}
.popup2-toast-show{
transform: translateY(-80px) !important;
transition: all 0.2s ease 0s;
-webkit-transition: all 0.2s ease 0s;
}`,
}
},
init: () => {
Object.keys(popup2.config).forEach(function (key) {
let style = popup2.config[key].style;
if (style != "") {
GM_addStyle(style);
}
})
},
force_mask_init: function () {
document.documentElement.style.overflow = 'hidden';
if (!$jq("#force-mask").length) {
$jq('body').append($jq('<div id="force-mask"></div>'));
} else {
$jq("#force-mask").html("");
}
},
confirm: function (param_options) {
let options = {
"text": "Call By popup2.confirm",
"reverse": false, /* 底部按钮倒序 */
"mask": true,
"only": true,
"ok": {
"enable": true,
"text":"确定",
"callback": ()=>{
popup2.confirm_close();
}
},
"cancel":{
"enable": true,
"text":"取消",
"callback": ()=>{
popup2.confirm_close();
}
},
"other":{
"enable": false,
"text":"另一个按钮",
"callback": ()=>{
popup2.confirm_close();
}
}
}
if (typeof param_options == "string") {
options.text = param_options;
} else {
options = Utils.assignJSON(options,param_options);
}
let bottomBtnHTML = "";
let confirmHTML = "";
if( options.ok.enable || options.cancel.enable){
}
if (!options.reverse) {
bottomBtnHTML = `<a href="javascript:;" onclick="popup2.confirm_close();" class="tip_btn bg_f f_b popup2-confirm-cancel">${options.cancel.text}</a>
<a href="javascript:;" class="tip_btn bg_f f_0 popup2-confirm-ok">
<span class="tip_lx">${options.ok.text}</span>
</a>`;
} else {
bottomBtnHTML = `<a href="javascript:;" class="tip_btn bg_f f_0 popup2-confirm-ok">${options.ok.text}</a>
<a href="javascript:;" onclick="popup2.confirm_close();" class="tip_btn bg_f f_b popup2-confirm-cancel">
<span class="tip_lx">${options.cancel.text}</span>
</a>`;
}
confirmHTML = `
<div class="dialogbox popup2-popmenu" style="position: fixed;left: 50%;top: 50%;transform: translate(-50%, -50%);z-index: ${popup2.config.confirm.zIndex};">
<div id="popup2-confirm">
<div class="comiis_tip bg_f cl">
<dt class="f_b">${options.text}</dt>
<dd class="b_t cl">
<div class="popup2-confirm-bottom-btn" style="display: flex;border-radius: 0px 0px 6px 6px;">${bottomBtnHTML}</div>
</dd>
</div>
</div>
</div>
`;
if (options.only) {
this.confirm_close();
}
let jqConfirmHTML = $jq(confirmHTML);
if (options.other.enable) {
jqConfirmHTML.find("dd.b_t .popup2-confirm-bottom-btn").after($jq(`
<div>
<a href="javascript:;" class="tip_btn bg_f f_0 popup2-confirm-other" style="width: 100%;color: #f00000 !important;border-top: 1px solid #efefef !important;">${options.other.text}</a>
</div>
`));
jqConfirmHTML.find(".popup2-confirm-other").on("click", function () {
Utils.tryCatch(options.other.callback);
});
}
$jq("body").append(jqConfirmHTML);
$jq(`#popup2-confirm a:contains('${options.ok.text}')`).on("click", () => {
Utils.tryCatch(options.ok.callback);
})
if (options.mask) {
this.mask_show();
} else {
this.mask_close();
}
},
toast: (param_options) => {
let options = {
"text": "Call By popup2.toast",
"only": true,
"delayTime": 2000
}
if (typeof param_options == "string") {
options.text = param_options;
} else {
for (var key in options) {
if (typeof param_options[key] !== "undefined") {
options[key] = param_options[key];
}
}
}
if (options.only) {
popup2.toast_close();
}
let toastobj = $jq(`<div class="popup2-toast">${options.text}</div>`);
$jq('body').append(toastobj);
toastobj.css("transform", `matrix(1, 0, 0, 1, 0, ${toastobj.outerHeight() > 80 ? toastobj.outerHeight()+80 : 80})`);
setTimeout(() => {
toastobj.addClass("popup2-toast-show");
setTimeout(() => {
popup2.toast_close(toastobj);
}, options.delayTime);
}, 150);
},
mask_show: function () {
this.force_mask_init();
$jq('#force-mask').show();
},
mask_loading_show: function () {
this.force_mask_init();
$jq('#force-mask').html(`<img src="data:image/gif;base64,R0lGODlhPAA8AOZSAIuLi0xMTHNzcyYmJkFBQXBwcJ+fn0hISGNjY5iYmISEhH19fVVVVSsrK2VlZQ8PD4GBgUdHR1xcXJKSkmlpaUBAQHd3d0ZGRjAwMENDQ2pqaldXVx0dHTY2Nl5eXm9vbzs7Oz4+Pjk5OUtLSwQEBCcnJ5OTkzIyMiQkJDMzMzc3N09PTzw8PHt7e42NjQcHB2FhYSkpKU5OTmxsbD8/P0pKSiwsLFJSUkVFRRISEhYWFi4uLjU1NXV1dVhYWGhoaElJSUJCQlNTU4eHhygoKCoqKiEhIWRkZAsLCzExMTQ0NFpaWi8vLxkZGURERKamppmZmQAAADo6OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAABSACwAAAAAPAA8AAAH/4BSgoOEhYaGBABPTwAEh4+QkZKQFIuLFJOZmpuKlgqboJIIBQeQnYsAkAcFCKGTE5YSj6eMjxKWE66QDJZPBo6GtKmIBr0MuocIvU8Fh8KHBcutyIUHxb2lhc/VywbZ1ITRvZ/avcOECsvN4IUECcvHhNuDvL0JwOyEyr258uaFsHpNy1euF6ZB86RU+kfQUD1LvxAylELgmqV4uhgg+GZowTILEi2ds7BsgSoEGA0FNFAAH6GKy7J59CToQDeXgwgUuNav0D5LCQaGKyno55NpMy2t8/lOoCFxywCkFNQU1aACCRIspZXAIS2lhmwus7TA5S2wkKA+kZUz6ViOg/8kWOy2VMrOJwpwtvPIMtzcXgbYHtI5FqhgahKqjm056UC6wszAqV2mAK4kBgG7gfu7aMLUTRQ4gxtr4CA1AiTJgnu8yIJeZAcWAGB8ugCABZYb6t7N21UHIzkeCB9O/EEOFLsRyAbAvLlzABQIPIhCvbr16xwaToaM6rr36y8aKuZu6bv5KOEJjif/ZPp57NrZm/tdvP4DHch1I1DwvL+C6L0FKOCAj6hgQwMYiACOTrflposITAwg4QA2rNaLa+wkUcKEE47WjWmh8FAEhxOWsFlhnoFiIIkcYiAZd5VNIgIGLE4YgxL5JMYdbYcosWGNJbg4SAYjBHABCJFU0AL/FCZo4BdkgR2iQo0S7qDgIBUEoGUAGUSiARRgQuHDS27FZAiNLDbAgyE1bBlABINsMMMMGwwCQZhQuGCIDF8tUpcgJ5AYwwmHZOBmADgIsoIAjAqwgiA94AmFk4YgMJ5Qg4w4QJBXFgJCkW6yIAgMjQrggSAXSGpCBYPd9URPhvBwggqQ4HCoE4M4UKoDg3wgaQ8nfbYJDYeOgKQgujbKqyAVmCDpDQJGcGgQhCTL6LKCHCEpBAEScCgQhVgrALaCDCHpqbuB0KabNIS7ayE3SOoCq7oZ6uYFhohLriBL4kkpQSyAuqWo7iprSKp4moAvQd662WW+7xryJZ7o5kPsOJbGHqLvIc3iCW1DQGxJL8QGH+JDmEPwRkAGBGsc8SEXaFAxgYWQWjLNoQhRqhA4uxJCsg6EoFsgACH5BAUAAFIALAAABQA8ADcAAAf/gFKCg4SDEoWIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+aMpcNKCmgnEhRUSQcHaeYKKqyLyivlhyyuQ8NtpMpucA6rr2QRCTAsqyWCp4duMiqL0TEkCk50Koc1JANqcgk25FGx8DhkR1NuTrmkik6D63s8vPhIkk2Dfn6+w02J/RSGgwYSLCgQQzzFBhcaDAGJwOSGEoc4HCewIkHE9rjx7HBjn8AQ4qcx+JChAwgMln4BMJJgJcBLowsFGQETJgzBdEAchPmiJkle97MIBJEBqEwa1QQWcEm0hFEB234IABGCEYEFDwxUCATC6QvcaQcFECAWQEbGBV4wvbJoUtH8IVGoIFoxlkBDgZpcOFCwyAAbZ8kQMQgEoGeNQgk2nBXgAdBHqBIhvJYyoLAT7pe4hkA6thCIajeVSylxWQoPQQdwGyAtCUaBFgs8tB4ySAIpyEMsoB5ga0DjT9cFYR7sm5BBAxgFnXKQWMhhIpLPi6IAmYAp1Y0/lFIOhTqgiZgRvAphN27B7rnLsQAcwLXmxjfhYHIO3hBWgNr3kRA9Fn4xK1XyGqBGZDeJtrdlVZ9AhayVmDkbQLcWcIlYl8iyQVWGCc/nBWAIhcmIkFbE3yywgYARtcgIgcUECE7phmXUyFHnHbEjIRUUBwES3ESCAAh+QQFAABSACwAAAMAPAA5AAAH/4BSgoOEhSgcKYWKi4yNjo9IUZJEj5WWl4QNkpIkHZiKCZ+YKJuSHKKoqCkkpVGJqbCWHK05sbaOHS+tDbe9iqSlSL7Dgw+tRsTDmqWdqQyxPCcqjTqtTcmVRQMDJRgiix2spa/Yiyfb6DEni7OlOuWMGOjzDTyKupsPtjKYKvP/O74NIlLqFLxFSkr8Q9eNEAdWOTw5WpBMhLyF22IoOShKhQ2M2zBwFMVD28ISI1ElUfgvJSoRTObtcJlKxY4G3mjq3MlzEYggFyIIHUo0wgUCPQdFCMC0qdOnGZICeEr1aY1hoTBV3RrgatKlXKFK/Vm0bAQcSJOqXct2EAEPDvg2hLhVAFuIJQLyCoDRVpGQD3r19h104EdgvR8GE4BxOPCGtiE2NNY7I0DbAIAnf3g8SIMJKC0q6CQwOa+HuYN8QFkNRYNOyY0dHFDkgjUUCIMKJEhQ9xK/SysOz1ixSINtKD0EIXjC/AkCeIYFbEZdqMJn2xcEKWj+hCK8AyvSLupxPLEgANwBqL1x3ITo8+kdPYMH4fgRQuibq+/p4fiQQvkxt99OFdRm2w0AxseTcba1oEiATwxI0wXXsZZdgvrx1J9trj2ooE7ssebeIhBKSEhW5QzBmg+MlJiUBxpcSOKHgw2yXYY1EkIBdxTkSAgB+QEgXi+BAAAh+QQFAABSACwAAAAAMAA5AAAH/4BSgoOEhYaGHQ9RUQ8dh4+QkY9Gi4tGkpiZhoqVOZqfUicYKpCciw+gmUUDrEqPpoypkjysrCUih7CospAntawYuZWxvI8qJb8DpIW6xZAYyTabw7vOhiIxyTzM1NaPvr9F3JXV3oUNyUmEzeaIybeD7LI0BCyQO8lM8d2yQAEBIzKAOCQC2a9lOoZ5SkXgn8MaBA5B+7VDEIphKGRlcMgxAg1D2Wo1GMThxQsOvFhwXIlj4CAlv4K1k1JhxEqHAQlhQGYDVyQFoEBsvPmvRoWZklhcIPovA1JJNPzdHPEUUxCbK6tiAuGEIw6tmVjgiCAQrNmzVUMIgeGgrdu3DtZgrDDrQIDdu3jzbgCbt2/eGXz9Cgasta7gvnu1qoXL2IGHuWgjS5Z8oQUEDUcnD6rwAYpnKC00Czpi4vNnzTeGmP5sgnKL1aY1oK2gAfZnFz7Q+iht24TsQQUMPFEQsd0F2557ZBYk4YnzJwVm1oYN4YahBM+fALDGYJCH1S48HCqQ/ckCpKqh+F5OiIDw7Aee3vBwAdKC8hZES5FR3kBxzQCUR4F+CJQ3gX4EYJddd6KRlx1Qoh3w3nPxiVZgdtHpx0B2/jljQDETPCeBfoQgUECFTwUCACH5BAUAAFIALAAAAAAwAC8AAAf/gFKCg4SFhoYiDQMDDSKHj5CRj0mLi0mSmJmGipU2mp9SBBkskJyLDZApHCigUkABsBWPpoyPRFG4SJ80sLAjIIe0qIYdL7i4w5gEvbAZwZW1hhzHuKyZLCPMAaSFwoYp1FEkKZ8Z2heb0MmDOeEcoCA12jTd6t3hLx2ty8xA9ZXrpCAJZ61VBG1BCHkbZCTcg1aDeDH7NWihlA4kwgUkdGAFAUg4tDmpaE9Qk3A6IP0QIODDhhCHQGRjxm0HNE9SwFEjoe/QCpZAZ6w4ZI4ZDkEnoJ0QpMMdpA1Aozo4YEherwiDMMSIgWHQA2ovIhGIStYDzEEVmDmDNO0YEUkBzT6QBeqSUIZsF4BB6tCUxDtMIaDOZTkjAMTDBGAMZrnh8OEDK+d+cOxYiFyylB2HWBIVRmbKBDw4ePm5tOnTqCscaQGhtevXEFp4QF0IApTbuHPr1kB7kO7ful30FgS8OBThw20b3z1cimrY0CH0mN28uvXrkg4oAFDgI/ZCBCw8Gf9EwXdCFAyQJ39eCoMJ68kb+K49/voC1wkUsE8+gYTrEqjHnwH4XXcAf+Mt4N11+9kHgAzXQSgIAvElgEB7g8D3BIELYugeAlRhGAgAIfkEBQAAUgAsAAAAADkALAAAB/+AUoKDhIWGhiARAQERIIePkJGShkGLi0GTmZqTipYXm6CPKxsEkJ2LEZAqGCehkD8CsQGPp4yPSgO5Ra6GB7GxHyGHtamGIjG5uTy8hCu/sRvDlraGGMm5rcyCBB/PAqWFxIYq1wMlKtqDG94whuKFNuUY6YMhM94H4dPFgzzlMSLoDXL27Ic+S/wEFSmXTaAgB96EEHonKEm5Bg4J4fAWbBBFESXKLQt1w8OnRx68LfG4bxCTcjsgpUCBsdAQKFBMaKhwKES3Z+BwTDtJ7lqJgIY6cCARJQoSQh5wSnXh4dC6Z1WlEJgGboe8QyheNB2LYpAGqWgh3DB075eDQRncatTIMKjBtRiGGjwYy5fDoAtoA/fgOSjAs2iQrCVTQqiDDr6QUxDy4SKwVJ2ENnSDIQySiHgl5g1aCnksCSKGKpy1jNOFD4FExJZuyqEDpAstWOPUkI7D7KY5JE+6cdOyiXRMSyOpuemICcvpSpMwwqzCB7Qt0uXg28R2ugs9IOxMp/SBDuEZ06tfn4kABQUA4sufD0ABAvaSADzZz7+//wL4QeLfgP4lEOAjBCb4hIEHGqKfgv81aIh79FUIwAL3Sajhhhx26OGHIIYo4ogklmjihwyEYgAoKT4SCAAh+QQFAABSACwDAAAAOQAwAAAH/4BSgoOEhYaDIQ4CAg4hh4+QkZKGQouLQpOZmpOKljCboI8eGheQnYsOkCwZBKGQQ1CxPo+njI8VAblAroY3sbEmFYe1qYYgI7m5NLyEHr+xGsOWtoYZybmtzIIXJs9QpYXEhizXASMs2oMa3i2G4oUX5RnpgxUu3jfh08WDNOU1IOgNcvZsiD5L/AQBKZdNoCAI3o4QeicoSLkIDgn5ehZsEMVj5ZaFYoDgAKQe3j543DfISTkckFSc4GFowpMnBgo0JFSh2zNwHqZ9kkLu2oiAhkRgKDFgQBFCCG5KTYDg0LpnPQStmLZCEA55h07EaEr2xKACUtMCkGHo3i8Ig+Y2zJixYVCEazUMdWhAti+GQQfSCl6w08ezaJCsJRM2SMSOvpBVEJJgQLDUnIQ0dGvB+BGIeCPmDVoKmWwJJYYIoLV8M4EEgUrGlm6KQQSkAwpY3yyQDsPspjYkT2Jg07KBdExLF6EJikJlwelKl0jCjICFtAvS2ejLxHa6AwsA6EyntMEO4RnTq1/PPj0KHQ/iy58f30iH9pA4RNnPv7//B/g9QoJ/BPoX4CEvFKhgFAcaot+C/zVoCAo50GdhDvZJqOGGHA5iQYcghijiiCSWaOKJ67EFSgKgqIjiizCOyEBGLmYSCAAh+QQFAABSACwMAAAAMAAwAAAH/4BSgoOEhRUQUFAQFYWNjo+QjkeJiUeRl5iQiJQtmZ6DCAUHmpSKkAQbK5+CE0+uEo+biRCPAQK3P58Srq4GBI6ypo0hH7e3o5kIvK4FwKW0jRvGt6qZBwbLT8iEwdCEBNMCH7+eBdkKjd2NMOEbqwQJ2QyF6oQH4TMhq1LKyxP0zwr9CFdtH4BsFLgFHCQknIN9gxhk8zWonhRi4XBAHLQgm4WKC6UsCecBEgsCNCIRwLYMWY9SnaSAm/ZBXyMQGUYECAAkkrllCwR5KFVSiod2jgjU2MmU3KN4vAAM0uDChYZBDqbNaEQjAtOvGSLt4tUMkjRjAQiBwPG1LYtLBdKwKXDqKAS7D+4G5WzLdASjjZ4qLOW7MwMIwJ4yEN554S1iTzr5Akn5+BPfEUEq77vw1clhzatwRsDhGLTp06hTFzqxo4Hr17BdJxGhWgqGAbhz697doHaJ3cB3144RvPiA2reN864t5YSN2NBtzGZOvXpQzR2aPNCRojqkHFHCR2nSwXsj8eJJGDFPiAR68Uh6s+fwHn2O7uaJvKgvnkN58xy4xx8JRLDXgQ78hYefFPNQx8QD/HHA3iAo7IceChMO0kGA4SGRYSEpoCBfdQ16EggAIfkEBQAAUgAsDAAAADAAOQAAB/+AUoKDhIUEAE9PAASFjY6PkI4UiYkUkZeYkIiUCpmen5uJAJAXGh6foJSKjz5QrkOfDJmhq40VLq6uN6iYtKONGrmup7yRvo0XwlAmF8XGqr+ELcoazs+U0YI3yi4V1prQhUPKxN+Ox4NHyhDWMteigxUmyrvmj+hSH8o9kAQrB9YWqOokJZkwE94ahdjwQYCAH84QqEIgqAc1RytmONy4YpAsTwUSJCgwCIIwF40OONjIcoO9QcFy+SAUwgPLm4xeSqkwzUS1QQxvbvwQQCekABqFOtwQwuijDUodwsjp1FFDoT8AVoUk9IMQXgStwWC5pOnWSwsdeKB6tq3bt5ndCOCIQLeuXbpBQLTNEKCv37+AI7StAbgw4MGGExc9y1dxYLcELtydfCEv3Mtnw5oTgaHBDhWYHdkYQHoAExGhCZUuXSJJakElVpcuwiM1BtmrbYDGrCQG7tIYUDvtkCMKCQ6EMMT+XUKJUw5RokchQkjEjt+kd798ID3Ki0YdGvzGYFRH9yjIG53wvfqE0RTnSXRwxHl5kapNzuuApOJE7aodkHBeA68JYsR5DxQoCBLnoaBgA+e9MF+BxXWX3mvwdUdCCgpC152DBXbwQncEKkiEdEgoOEgKHICYSSAAIfkEBQAAUgAsDAADADAAOQAAB/+AUoKDhIWGh4IHBQiIjY6PhhJPkxOQlpeDBAaTkwyYn44FnJOMoKaEB6NPBgenrlIKqgWvpwyqCQS0phOqpbqYFKoAv5+aqp7ElxaqC40XHjfJiaoGuYYVGiZQUEPSC7KHHi7b5B6DMrQAowmGNxDk8BrJopwShBU98PoXyQTfBrMGZdNHzoQPaYd8jCO4TUMFhIY0MNzWgh9EQ9oIDol28RBBE0dANXvVAt6Hhx0bYYPQw2LKlzBjGloBw4HNmzhtCgnRcYOAn0CDCnXQcYbQo0KLIl0qoCfTo0Q70sxJFcZOmViTjdQFwkkEHCyyFroQoGwAJyDECjJrdkQQtSPY2JoFQiNrBrlsL4SVWaEGXrMZ0koTYWNACQyEMsT9OwIlMQwDIg9QQggEjr9l94Li8OIFh0ENJA+IYYhGhL8ZTKGIwjoKCkE7RA9AbIiAX7bWPuVoHUWHIBWyS4g4BEJxWSCnHvB+MIiJ7B2NWBCoiwhdI+WtmQsSUUI2j47YWWsXlER2A/DLCxWRfeJi+CjjBfGQHWM4wvfxBRUWTVsafkPAiVaCCvelZwhkorXnn4GFcCfadwtmh4gSkhUB0X+IqICBggjtJqFaUhjBmxEgStEBdg90IE0gACH5BAUAAFIALAwADQAwAC8AAAf/gFKCg4SFhoeIhAcIEomOj5BSBAUGT08TkZmZCAmWngiDDJqjoQCepwWkqpILp64Hq6OUrp4GjbGREp20lgUEuJEFvJYKsMCRlbQToseZtAYUzaMKpxa/0pqTAAvG2N7f4OEeLRDl5uflRxXhUhpQ7/Dx8hDsLvL38vX4+1Ds7vzz2EkZh65gC3UCEypUIC3EEgcerik8BEOARQFLQkw0dPHiByEbCX3oePFHt4kbSHaEIVFhgBkqL27QCIkDiSg5OjgCcSHAiAyENoyM+SHAIyJRkkbh4ChDgKcB1g0K4SGmxZaGXiiN8mAQhhgxMAyKADVADUM4HMTckIjD1ig60QSdGEB3wAlBOMoGAGpoBcyOKxB1uLk1hSAbdQfsEMRC7wgQh0IItfgjkY63TQY1SNxgkBO9OBIRWHGyUIO3JHQK2ly3syAQI/TSiPXgrRFCrOm6FhREb4RVKN4iMc25EBC9WCF10Lp19+rihGjorQFZk9utOQzlHuBcUM+yfCOlIKzUMPHWhhqXHcEiU/CtTLVDL+S0bHJEp5WmPrS9++vYUM2WCRJKEYHffIVUABUQpKDAgXn8IVgICxncdwxi6IVESBKJJaEhISKw1oAI3gQCACH5BAUAAFIALAMADAA5ADAAAAf/gFKCg4SDDIWIiYoyio2Oj5CRhIeSlZaXmJmam5yMnJ+gmQuhpKWmp6ipqqusra6vsLGykQgLALe4ubcUBLIFT8DBwsMAsgnDyMPGycxPvs3IxbIICrrWCryz2topOQ8cHZwVHxA9F58dTVHrUTmcLVDxUB8VmkYk7Oyc8vImR5cNkORjR4KTCX7yhtyI1G1gPg6cNCDk1+Kcog4cHLJ7QQSUDxcT5WmoV4gIPo0kIA7CUGKADRGOQsAQ8GEDIQ0HQ5rwQSiFxnU6wg1SMqDoAAyONghYKiAAoQo9QsazKCWjwwcNEMUwOiCroAw1amQY5ICpgBmIbkAIqWEQioEv4lAkwsB1wA5BBALoDdBLigezAmwi8gCSnwdCAqOkFFpIREuuKgRd2BsAB17AH0IkqoAz3hBEDVCkaLSjLpNBEShHGLQE8GFFFzwsvNShbgmYglLvXS0oxAfAB041qJuEkG69vAUJAezA1Im6RQodD5Bc0A/AK0iJ2MqVh3TVhQ4AnqEZFF2uNhBNry5oplnBnFQ8Nhr5+25EBDD33fScK1L14CGilFnZccIDVzHgZh9yifhmVnCfFGGUEoqsp0gATP1AygkY1JeIhYoQsEGBr0x23zaJBEFZECgmAoJuF4BQSiAAOw==" class="comiis_loading comiis_noloadimage">`).show();
},
mask_close: function () {
$jq('#force-mask').html("").hide();
document.documentElement.style.overflow = 'auto';
},
toast_close: (toastobj) => {
if (toastobj) {
toastobj.remove();
} else {
$jq(".popup2-toast").remove();
}
},
confirm_close: function () {
this.mask_close();
$jq.each($jq(".popup2-popmenu"), function (index, obj) {
$jq(obj).remove();
});
}
};
let xtips = {
/* 因xtip的消息函数会重复显示,自定义一个 */
value: [],
toast: (text, options) => {
xtips.value.forEach(item => {
xtip.close(item);
})
xtips.value = [];
let xtip_toast_id = null;
if (options == null) {
xtip_toast_id = xtip.msg(text);
} else {
xtip_toast_id = xtip.msg(text, options);
}
xtips.value = xtips.value.concat(xtip_toast_id);
}
}
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: "",
/* 签到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.*/,
/* 资料设置 */
data_setting_url: /mod=space&do=profile&set=comiis&mycenter=1/,
/* 帖子链接-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=(.*)&/,
hash: /hash=(.+)&/,
/* 论坛账号的凭证 */
font_special: /<font.*?>|<\/font>|<strike>|<strong>|<i>|<u>|align=".*?"|<br>[\s]*<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+)/,
/* discuz uid */
nologin: /member.php\?mod=logging&action=login(|&mobile=2)/g,
/* 未登录(不可用) */
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/,
/* 编辑帖子 */
/* 个人空间-帖子 */
space_post: /home.php\?mod=space.*?type=reply/,
},
GMRunStartTime: Date.now(),
cookiePre: unsafeWindow.cookiepre, /* cookie前缀 */
uid: unsafeWindow.discuz_uid, /* 当前账号的uid */
formhash: unsafeWindow.formhash, /* 当前账号的formhash(有延迟仅移动端) */
}
/* mt全屏遮罩调用
popup.open('<img src="https://bbs.binmt.cc/template/comiis_app/comiis/img/imageloading.gif" class="comiis_loading comiis_noloadimage">');
关闭方式
popup.close()
*/
function envCheck() {
/* 脚本运行环境修复,兼容部分函数 */
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("jQuery");
console.log("check: %c $ %c ×", "background:#24272A; color:#ffffff", "color:#f90000");
}
if (typeof mbrowser != "undefined") {
window.GM_xmlhttpRequest_isRepair = false;
var trans_id = uuid();
GM_xmlhttpRequest = (req) => {
g_gm_callback_map["_" + user_script_id + "_" + trans_id + "_GM_xmlhttpRequest"] = req;
if (req.url && !req.url.startsWith("http")) {
req.url = window.location.origin + "/" + req.url.replace(/^\//, "");
}
if (req.data) {
if (req.headers) {
if (!req.headers['Content-type']) {
req.headers["Content-type"] = "application/x-www-form-urlencoded";
}
} else {
req.headers = {
"Content-type": "application/x-www-form-urlencoded"
};
}
if (typeof req.data == 'object') {
var _formData = null;
for (key of req.data.keys()) {
if (!_formData) {
_formData = `${key}=${req.data.get(key)}`
} else {
_formData += `&${key}=${req.data.get(key)}`
}
}
req.data = _formData;
}
}
mbrowser.GM_xmlhttpRequest(user_script_id, trans_id, JSON.stringify(req));
};
console.log("check: %c GM_xmlhttpRequest %c √ 替换成X浏览器的GM.xmlHttpRequest", "background:#24272A; color:#ffffff", "color:#00a5ff");
} else if (typeof GM_xmlhttpRequest == "undefined") {
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) => {
if(value == undefined){
value = null;
}
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() {
/* 电脑版函数按顺序加载 */
popup2.toast = (text) => {
if (typeof text == "string") {
xtips.toast(text);
} else {
xtips.toast(text.text,{"times":text.delayTime ? text.delayTime: 2});
}
}
Utils.tryCatch(pc.latestReleaseForumPost);
/* tryCatch(pc.detectUserOnlineStatus); */
Utils.tryCatch(mobile.identifyLinks);
Utils.tryCatch(pc.collectionForumPost);
Utils.tryCatch(pc.quickReply);
Utils.tryCatch(pc.showUserLevel);
Utils.tryCatch(mobile.autoSignIn);
},
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() {
/* 签到 */
Utils.registerWindowCookies();
function checkLogin() {
/* 检测是否登录(不可用) */
let pc_login = document.querySelector("#comiis_key");
let mobile_login_cookie = Cookies.get("cQWy_2132_auth");
let mobile_lastvisit_cookie = Cookies.get("cQWy_2132_lastvisit");
console.log("账号cQWy_2132_auth: ", mobile_login_cookie ? (mobile_login_cookie.slice(0, 5) + "...") : mobile_login_cookie);
console.log("账号cQWy_2132_lastvisit: ", mobile_lastvisit_cookie ? Utils.getFormatTime("yyyy-MM-dd HH:mm:ss",parseInt(mobile_lastvisit_cookie) * 1000) : mobile_login_cookie);
return pc_login || mobile_login_cookie || mobile_lastvisit_cookie;
}
function getFormHash() {
/* 获取账号的formhash */
let inputFormHash = top.document.querySelector("input[name=formhash]");
let sidenv_exit = top.document.querySelector("div[class=sidenv_exit]>a"); /* 退出按钮(登录(不可用)状态才有),电脑版的 */
let sidenv_exit_match = null;
let comiis_recommend_addkey = top.document.querySelector("a.comiis_recommend_addkey"); /* 论坛浏览图片下的点赞按钮,获取formhash */
let comiis_recommend_addkey_match = null;
inputFormHash = inputFormHash ? inputFormHash.value : null;
if (sidenv_exit) {
sidenv_exit_match = sidenv_exit.href.match(mt_config.rexp.formhash);
sidenv_exit_match = sidenv_exit_match ? sidenv_exit_match[sidenv_exit_match.length - 1] : null;
}
if (comiis_recommend_addkey) {
comiis_recommend_addkey_match = comiis_recommend_addkey.href.match(mt_config.rexp.hash);
comiis_recommend_addkey_match = comiis_recommend_addkey_match ? comiis_recommend_addkey_match[comiis_recommend_addkey_match.length - 1] : null;
}
return inputFormHash || sidenv_exit_match || comiis_recommend_addkey_match;
}
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") {
popup2.toast({
"text": "签到: 成功",
"delayTime": 4000
});
return;
};
let signInContent = r.lastChild.firstChild.nodeValue;
if (signInContent.indexOf("您已经被列入黑名单") != -1) {
popup2.toast({
"text": "签到: 您已经被列入黑名单",
"delayTime": 4000
});
return
}
if (signInContent.indexOf("今日已签" != -1)) {
popup2.toast({
"text": "签到: 今日已签",
"delayTime": 4000
});
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) {
popup2.toast({
"text": "签到: 您已经被列入黑名单",
"delayTime": 4000
});
return
}
if (content.indexOf("今日已签") != -1) {
popup2.toast({
"text": "签到: 今日已签",
"delayTime": 4000
});
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];
console.log(`金币${con},排名${line}`);
popup2.toast({
"text": `<div style="display: flex;${!Utils.discuzEnvIsMobile()? "padding: 20px;":""}"><div style="align-self: center;margin-right: 20px;">签到</div><div>排名 ${line}<br>金币 ${con}</div></div>`,
"delayTime": 4000
});
return
}
popup2.toast({
"text": "签到: 未知结果,请查看控制台信息",
"delayTime": 4000
});
}
if (typeof r == "string") {
/* 无油猴函数的版本的签到成功是没有返回值的 */
popup2.toast({
"text": "签到: 成功",
"delayTime": 4000
});
return
}
},
onerror: (r) => {
console.log(r);
console.log("签到: 网络异常");
popup2.toast({
"text": "签到: 网络异常",
"delayTime": 4000
});
}
})
}
if (!GM_getValue("v17")) {
return;
};
if(Utils.discuzEnvIsMobile() && window.location.href.match(mt_config.rexp.k_misign_sign) ){
var deleteLocalStorageSignInfo = $jq(`
<div style="display: flex;align-items: center;justify-content: end;margin-right: 8px;"><i class="comiis_font" style="font-size: 24px;padding-left: 6px;"></i>
</div>
`);
deleteLocalStorageSignInfo.on("click",()=>{
popup2.confirm({
"text": "<p>是否清空脚本签到记录的时间?</p>",
"ok":{
"callback": () => {
GM_deleteValue("mt_sign");
if(GM_getValue("mt_sign",null) != null){
popup2.toast("删除失败");
}else{
popup2.toast("删除成功");
popup2.mask_close();
popup2.confirm_close();
}
},
},
"mask": true,
})
})
$jq(".comiis_head.f_top")?.append(deleteLocalStorageSignInfo);
}
if (!checkLogin()) {
popup2.toast("当前尚未登录(不可用)账号");
return;
}
let formhash = getFormHash();
if (formhash == null) {
if (document.querySelector("#comiis_picshowbox")) {
/* 当前为评论区的看图模式 */
console.log("当前为评论区的看图模式 ");
return
}
console.log("获取账号formhash失败");
popup2.toast({
"text": "获取账号formhash失败"
});
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 {
popup2.toast(`倒计时: ${current_time}`);
}
}, 1000);
return;
}
if (GM_getValue("mt_sign") == parseInt(Utils.getFormatTime("yyyyMMdd"))) {
return;
} else {
signIn(formhash);
}
},
blackHome: {
showBlackHomeView: async () => {
/* 显示小黑屋界面 */
if (typeof $jq.NZ_MsgBox == "undefined") {
popup2.toast("加载NZMsgBox.js中");
await GM_asyncLoadScriptNode("https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js");
if (typeof $jq.NZ_MsgBox == "undefined") {
popup2.toast("网络异常,加载NZMsgBox.js失败");
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 = Utils.jsonStrToObject(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 _time_ = parseInt(Date.now() / 1000);
let _time_after_count_ = 0;
let sec_data = value["dateline"].match(/([0-9]+|半)[\s\S]*秒前/); /* xx|半秒前 */
let min_data = value["dateline"].match(/([0-9]+|半)[\s\S]*分钟前/); /* xx|半分钟前 */
let hour_data = value["dateline"].match(/([0-9]+|半)[\s\S]*小时前/); /* xx|半小时前 */
let yesterday_time_data = value["dateline"].match(/昨天[\s\S]*(\d{2}):(\d{2})/); /* 昨天 xx:xx */
let before_yesterday_time_data = value["dateline"].match(/前天[\s\S]*(\d{2}):(\d{2})/); /* 前天 xx:xx */
let day_data = value["dateline"].match(/([0-9]+|半)[\s\S]*天前/); /* xx天前 */
if (sec_data) {
sec_data = sec_data[sec_data.length - 1];
sec_data = sec_data.replace(/半/g, 0.5);
sec_data = parseFloat(sec_data);
_time_after_count_ = _time_ - sec_data;
} else if (min_data) {
min_data = min_data[min_data.length - 1];
min_data = min_data.replace(/半/g, 0.5);
min_data = parseFloat(min_data);
_time_after_count_ = _time_ - min_data * 60;
} else if (hour_data) {
hour_data = hour_data[hour_data.length - 1];
hour_data = hour_data.replace(/半/g, 0.5);
hour_data = parseFloat(hour_data);
_time_after_count_ = _time_ - hour_data * 60 * 60;
} else if (yesterday_time_data) {
let yesterday_hour_data = yesterday_time_data[1];
let yesterday_min_data = yesterday_time_data[2];
_time_after_count_ = _time_ - 86400 - parseInt(yesterday_hour_data) * 3600 - parseInt(yesterday_min_data) * 60;
} else if (before_yesterday_time_data) {
let before_yesterday_hour_data = before_yesterday_time_data[1];
let before_yesterday_min_data = before_yesterday_time_data[2];
_time_after_count_ = _time_ - 86400 * 2 - parseInt(before_yesterday_hour_data) * 3600 - parseInt(before_yesterday_min_data) * 60;
} else if (day_data) {
day_data = day_data[day_data.length - 1];
day_data = day_data.replace(/半/g, 0.5);
day_data = parseFloat(day_data);
_time_after_count_ = _time_ - day_data * 60 * 60 * 24;
}
value["time"] = parseInt(_time_after_count_) * 1000;
_list_ = _list_.concat(value);
return
} else {
date = date[0]
};
value["time"] = Utils.formatTextToTimeStamp(date);
_list_ = _list_.concat(value);
});
_list_.sort(Utils.sortListByProperty("time"));
if (_no_time_list_.length) {
_no_time_list_.sort(Utils.sortListByProperty("sortTime",false));
}
_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"] + `&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) => {
/* 获取黑名单列表 */
cid = cid == null ? "" : 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);
popup2.toast("网络异常,请重新获取");
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);
popup2.toast("保存成功");
}
},
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) {
popup2.toast("auth_token成功获取");
res(token[1]);
} else {
console.log(r);
popup2.toast("auth_token获取失败");
res(null);
}
},
onerror: () => {
popup2.toast("网络异常");
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("注销")) {
popup2.toast('登陆成功');
res(true);
} else {
popup2.toast('登录(不可用)失败');
res(false);
}
},
onerror: () => {
popup2.toast('网络异常');
res(404);
}
})
});
},
uploadImage(url, auth_token, imageFile) {
/* 上传图片请求 */
let res_data = {
"imageUri": null,
"json_data": null
};
console.log(imageFile);
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) {
popup2.toast('上传成功');
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) {
popup2.toast(mobile.chartBed.ret_code[status_code][json_data["error"]["code"]]);
res(res_data);
} else {
console.log(json_data);
res(res_data);
}
},
onerror: (r) => {
console.log(r.responseText);
popup2.toast("网络异常");
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) {
popup2.toast(mobile.chartBed.ret_code["200"]["200"]);
res(true);
} else if (status_code == 400 && json_data["error"]["code"] == 100) {
popup2.toast(mobile.chartBed.ret_code["400"]["100"]);
res(true);
} else if (mobile.chartBed.ret_code[status_code] != null && mobile.chartBed.ret_code[status_code][json_data["error"]["code"]] != null) {
popup2.toast(mobile.chartBed.ret_code[status_code][json_data["error"]["code"]]);
res(false);
} else {
console.log(json_data);
popup2.toast(json_data["error"]["message"]);
res(false);
}
},
onerror: () => {
popup2.toast('网络异常');
res(false);
}
})
})
},
popupUserPwd(chartbedname, register_url, callbackfun) {
popup2.confirm({
text: `
<p style="padding: 10px 0px;">${chartbedname}</p>
<div>
<div style="display: flex;">
<p style="width: 60px;padding: 0;align-self: center;">账号</p>
<input type="text" placeholder="请输入图床的账号" style="
-webkit-appearance: none;
width: 100%;
height: 2.5em;
line-height: 1.4;
font-size: inherit;
border: none;
outline: none;
background-color: transparent;
border-bottom: 1px solid #000000;
" id="chartbed_user">
</div>
<div style="display: flex;">
<p style="width: 60px;padding: 0;align-self: center;">密码</p>
<input type="password" placeholder="请输入图床的密码" style="
-webkit-appearance: none;
width: 100%;
height: 2.5em;
line-height: 1.4;
font-size: inherit;
border: none;
outline: none;
background-color: transparent;
border-bottom: 1px solid #000000;
" id="chartbed_pwd">
</div>
<p><a style="color: #003ffa !important;" href="${register_url}" target="_blank">没有账号?点我去注册(不可用)!</a></p>
</div>`,
mask: true,
only: true,
ok:{
callback: () => {
callbackfun();
}
}
});
}
},
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) {
popup2.toast(code[r.status]);
res(null);
return;
}
let json_data = JSON.parse(r.responseText);
if (json_data["status"]) {
popup2.toast("token成功获取");
res(json_data["data"]["token"]);
} else {
popup2.toast(json_data["message"]);
res(null);
}
},
onerror: () => {
popup2.toast("网络异常");
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) {
popup2.toast(code[r.status]);
res(res_data);
return;
}
let json_data = JSON.parse(r.responseText);
console.log(json_data);
if (json_data["status"]) {
popup2.toast('上传成功');
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);
popup2.toast(json_data["message"]);
res(res_data);
}
},
onerror: (r) => {
popup2.toast("网络异常");
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) {
popup2.toast(code[r.status]);
res(res_data);
return;
}
let json_data = JSON.parse(r.responseText);
console.log(json_data);
},
onerror: (r) => {
popup2.toast("网络异常");
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_kggzs a", async function () {
if (tokenStatus) {
popup2.toast('正在配置中...');
return;
}
if (!chartBedUser || !chartBedPwd) {
let loginCallBack = () => {
let user = $jq("#chartbed_user").val().trim();
let pwd = $jq("#chartbed_pwd").val().trim();
if (user && pwd) {
GM_setValue("KggzsChartBedUser", user);
GM_setValue("KggzsChartBedPwd", pwd);
chartBedUser = user;
chartBedPwd = pwd;
popup2.toast('设置完毕,请重新点击');
popup2.confirm_close();
} else {
popup2.toast("账号或密码不能为空");
}
}
mobile.chartBed.popupUserPwd("康哥图床", "https://img.kggzs.cn/register", loginCallBack);
} else if (chartBedToken == null || !loginStatus) {
popup2.mask_loading_show();
tokenStatus = true;
popup2.toast('正在配置token');
chartBedToken = await getToken();
popup2.mask_close();
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
};
popup2.mask_loading_show();
popup2.toast("上传图片中...请稍后");
console.log(`图片数量:${chooseImageFiles.length}`);
let uploadFileAwaitFunction = async (params) => {
let imageFile = chooseImageFiles[params[0]];
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);
}
};
let completeFunction = () => {
popup2.mask_close();
$jq("#filedata_kggzs").val("");
}
Utils.asyncArrayForEach(chooseImageFiles, uploadFileAwaitFunction).then( ()=>{
Utils.tryCatch(completeFunction)
});
});
$jq(document).on("click", "#imglist_kggzs .delImg", async function (e) {
e.preventDefault();
e.currentTarget.parentElement.remove();
/* popup2.toast('删除中,请稍后');
let id_encoded = e.currentTarget.getAttribute("id-encode");
if(!id_encoded){
popup2.toast('获取id_encoded失败,请自行去Hello图床删除');
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_hello a", async function () {
if (authTokenStatus) {
popup2.toast('正在配置中...');
return;
}
if (!chartBedUser || !chartBedPwd) {
let loginCallBack = () => {
let user = $jq("#chartbed_user").val().trim();
let pwd = $jq("#chartbed_pwd").val().trim();
if (user && pwd) {
GM_setValue("HelloChartBedUser", user);
GM_setValue("HelloChartBedPwd", pwd);
chartBedUser = user;
chartBedPwd = pwd;
popup2.toast('设置完毕,请重新点击');
popup2.confirm_close();
} else {
popup2.toast("账号或密码不能为空");
}
}
mobile.chartBed.popupUserPwd("Hello图床", "https://www.helloimg.com/signup", loginCallBack);
} else if (chartBedAuthToken == null || !loginStatus) {
authTokenStatus = true;
popup2.mask_loading_show();
popup2.toast('正在配置auth_token');
chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
console.log("auth_token:" + chartBedAuthToken);
if (chartBedAuthToken != null) {
popup2.toast('正在登录(不可用)Hello图床');
let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
popup2.mask_close();
if (retloginStatus) {
loginStatus = true;
$jq("#filedata_hello").click();
} else if (retloginStatus == false) {
clearData();
}
}
popup2.mask_close();
authTokenStatus = false;
} else {
$jq("#filedata_hello").click();
}
})
$jq(document).on("change", "#filedata_hello", (e) => {
let chooseImageFiles = e.currentTarget.files;
if (chooseImageFiles.length == 0) {
return
};
popup2.mask_loading_show();
popup2.toast("上传图片中...请稍后");
let uploadFileAwaitFunction = async (params) => {
let imageFile = chooseImageFiles[params[0]];
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);
}
}
let completeFunction = () => {
popup2.mask_close();
$jq("#filedata_hello").val("");
}
Utils.asyncArrayForEach(chooseImageFiles, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});
})
$jq(document).on("click", "#imglist_hello .delImg", async function (e) {
e.preventDefault();
popup2.mask_loading_show();
popup2.toast("删除中,请稍后");
let id_encoded = e.currentTarget.getAttribute("id-encode");
if (!id_encoded) {
popup2.mask_close();
popup2.toast('获取id_encoded失败,请自行去Hello图床删除');
return;
}
let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
popup2.mask_close();
if (deleteStatus) {
$jq(this).parent().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_z4a a", async function () {
if (authTokenStatus) {
popup2.toast('正在配置中...');
return;
}
if (!chartBedUser || !chartBedPwd) {
let loginCallBack = () => {
let user = $jq("#chartbed_user").val().trim();
let pwd = $jq("#chartbed_pwd").val().trim();
if (user && pwd) {
GM_setValue("Z4AChartBedUser", user);
GM_setValue("Z4AChartBedPwd", pwd);
chartBedUser = user;
chartBedPwd = pwd;
popup2.toast('设置完毕,请重新点击');
popup2.confirm_close();
} else {
popup2.toast("账号或密码不能为空");
}
}
mobile.chartBed.popupUserPwd("Z4A图床", "https://www.z4a.net/signup", loginCallBack);
} else if (chartBedAuthToken == null || !loginStatus) {
popup2.mask_loading_show();
authTokenStatus = true;
popup2.toast('正在配置auth_token');
chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
console.log("auth_token:" + chartBedAuthToken);
if (chartBedAuthToken != null) {
popup2.toast('正在登录(不可用)Z4A图床');
let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
popup2.mask_close();
if (retloginStatus) {
loginStatus = true;
$jq("#filedata_z4a").click();
} else if (retloginStatus == false) {
clearData();
}
}
popup2.mask_close();
authTokenStatus = false;
} else {
$jq("#filedata_z4a").click();
}
})
$jq(document).on("change", "#filedata_z4a", async (e) => {
let chooseImageFiles = e.currentTarget.files;
if (chooseImageFiles.length == 0) {
return
};
popup2.mask_loading_show();
popup2.toast("上传图片中...请稍后");
let uploadFileAwaitFunction = async (params) => {
console.log("上传图片:" + chooseImageFiles[params[0]]);
let uploadImageReturn = await mobile.chartBed.uploadImage(chartBedUrl, chartBedAuthToken, chooseImageFiles[params[0]]);
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);
}
}
let completeFunction = () => {
popup2.mask_close();
$jq("#filedata_z4a").val("");
}
Utils.asyncArrayForEach(chooseImageFiles, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
})
$jq(document).on("click", "#imglist_z4a .delImg", async function (e) {
e.preventDefault();
popup2.mask_loading_show();
popup2.toast("删除中,请稍后");
let id_encoded = e.currentTarget.getAttribute("id-encode");
if (!id_encoded) {
popup2.mask_close();
popup2.toast('获取id_encoded失败,请自行去Z4A图床删除');
return;
}
let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
popup2.mask_close();
if (deleteStatus) {
$jq(this).parent().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}" data-src="${_thumb_url}" class="vm b_ok"></a>
</span>
<input type="hidden" name="${_name}">
</li>
`;
$jq("#imglist_history").append($jq(_imageHTML));
})
$jq("#menu_chartbed_history").on("click", function () {
$jq.each($jq("#imglist_history li img"), (i, v) => {
if (!v.getAttribute("src")) {
v.setAttribute("src", v.getAttribute("data-src"));
}
})
})
$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">
<i class="comiis_font"></i>
</a>
<input type="file" name="Filedata" id="filedata_kggzs" accept="image/*"">
</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">
<i class="comiis_font"></i>
</a>
<input type="file" name="Filedata" id="filedata_hello" accept="image/*"">
</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">
<i class="comiis_font"></i>
</a>
<input type="file" name="Filedata" id="filedata_z4a" accept="image/*"">
</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", []);
}
Utils.tryCatch(chatKGChartBed);
Utils.tryCatch(chatHelloChartBed);
Utils.tryCatch(chatZ4AChartBed);
Utils.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 = () => {
popup2.toast("已复制代码");
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 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) {
popup2.toast(code[r.status]);
res(null);
return;
}
let json_data = JSON.parse(r.responseText);
if (json_data["status"]) {
popup2.toast("token成功获取");
res(json_data["data"]["token"]);
} else {
popup2.toast(json_data["message"]);
res(null);
}
},
onerror: () => {
popup2.toast("网络异常");
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) {
popup2.toast(code[r.status]);
res(res_data);
return;
}
if (r.responseText.match("502 Bad Gateway")) {
popup2.toast("获取返回结果502失败");
res(res_data);
return
}
let json_data = JSON.parse(r.responseText);
console.log(json_data);
if (json_data["status"]) {
popup2.toast('上传成功');
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);
popup2.toast(json_data["message"]);
res(res_data);
}
},
onerror: (r) => {
popup2.toast("网络异常");
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) {
popup2.toast(code[r.status]);
res(res_data);
return;
}
let json_data = JSON.parse(r.responseText);
console.log(json_data);
},
onerror: (r) => {
popup2.toast("网络异常");
res(res_data);
}
})
})
}
function clearData() {
chartBedUser = "";
chartBedPwd = "";
chartBedToken = null;
GM_deleteValue("KggzsChartBedUser");
GM_deleteValue("KggzsChartBedPwd");
}
function checkLogin() {
return new Promise(async (res) => {
if (!chartBedUser || !chartBedPwd) {
let loginCallBack = () => {
let user = $jq("#chartbed_user").val().trim();
let pwd = $jq("#chartbed_pwd").val().trim();
if (user && pwd) {
GM_setValue("KggzsChartBedUser", user);
GM_setValue("KggzsChartBedPwd", pwd);
chartBedUser = user;
chartBedPwd = pwd;
popup2.toast('设置完毕,请重新点击');
popup2.confirm_close();
res(false);
} else {
popup2.toast("账号或密码不能为空");
}
}
mobile.chartBed.popupUserPwd("康哥图床", "https://img.kggzs.cn/register", loginCallBack);
} else if (chartBedToken == null) {
popup2.mask_loading_show();
popup2.toast('正在配置token');
chartBedToken = await getToken();
popup2.mask_close();
console.log("token:" + chartBedToken);
if (chartBedToken != null) {
res(true);
} else {
clearData();
res(false);
}
} else {
res(false);
}
})
}
$jq(document).on("click", "#imglist_kggzs .up_btn a", async function () {
$jq("#filedata_kggzs").val("");
$jq("#filedata_kggzs").click();
});
$jq(document).on("change", "#filedata_kggzs", async (e) => {
let chooseImageFiles = e.currentTarget.files;
if (chooseImageFiles.length == 0) {
return
};
let needUploadImageArray = [];
let needUploadImageFileArray = [];
let uploadFileAwaitFunction = async (params) => {
let imageFile = chooseImageFiles[params[0]];
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);
}
}
let completeFunction = () => {
popup2.mask_close();
$jq("#filedata_kggzs").val("");
}
let waterMarkAwaitFunction = async () => {
popup2.mask_loading_show();
Promise.all(
Array.from(chooseImageFiles).map(async (item, index) => {
if (item.type === "image/gif") {
/* 不支持对GIF添加水印 */
let image_base64 = await Utils.asyncFileToBase64(item);
needUploadImageArray = needUploadImageArray.concat(image_base64);
needUploadImageFileArray = needUploadImageFileArray.concat(item);
} else {
popup2.toast(`添加水印 ${index+1}/${chooseImageFiles.length}`);
var watermark = new Watermark();
await watermark.setFile(item);
watermark.addText({
"text": [GM_getValue("chartBedWaterMarkText", "MT论坛")],
"fontSize": GM_getValue("chartBedWaterMarkFontSize"),
"color": GM_getValue("chartBedWaterMarkFontColor"),
"globalAlpha": GM_getValue("chartBedWaterGlobalAlpha"),
"rotateAngle": GM_getValue("chartBedWaterMarkRotationAngle"),
"xMoveDistance": GM_getValue("chartBedWaterXMoveDistance"),
"yMoveDistance": GM_getValue("chartBedWaterYMoveDistance")
});
needUploadImageArray = needUploadImageArray.concat(watermark.render("png"));
needUploadImageFileArray = needUploadImageFileArray.concat(Utils.base64ToFile(watermark.render("png"), "WaterMark_" + item.name));
}
})
).then(async () => {
chooseImageFiles = needUploadImageFileArray;
popup2.mask_close();
if (GM_getValue("chartBedWaterMarkAutoDefault")) {
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传水印图片中...请稍后");
console.log(`图片数量:${needUploadImageFileArray.length}`);
Utils.asyncArrayForEach(needUploadImageFileArray, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
return null;
}
}
let renderHTML = "";
Array.from(needUploadImageArray).forEach(item => {
renderHTML = renderHTML + '<img src="' + item + '">';
})
popup2.confirm({
text: `<style>
.dialogbox.popup2-popmenu {
width: 80vw;
height: 55vh;
}
#popup2-confirm,
#popup2-confirm .comiis_tip.bg_f{
width: inherit;
height: inherit;
}
#popup2-confirm .comiis_tip.bg_f dt.f_b{
height: calc(100% - 115px);
}
.upload-image-water{
height: 100%;
}
</style><div class="upload-image-water">${renderHTML}<div>`,
mask: true,
only: true,
ok:{
text:"继续上传",
callback: async () => {
popup2.confirm_close();
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传水印图片中...请稍后");
console.log(`图片数量:${needUploadImageFileArray.length}`);
Utils.asyncArrayForEach(needUploadImageFileArray, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
}
}
},
other:{
enable: true,
text: "保存至本地",
callback: () => {
Array.from(needUploadImageFileArray).forEach(async (item, index) => {
let base64Image = await Utils.asyncFileToBase64(item);
Utils.downloadBase64(item.name, base64Image);
})
}
}
});
})
}
if (GM_getValue("chartBedAddWaterMark")) {
Utils.tryCatch(waterMarkAwaitFunction);
} else {
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传图片中...请稍后");
console.log(`图片数量:${chooseImageFiles.length}`);
Utils.asyncArrayForEach(chooseImageFiles, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
}
}
});
$jq(document).on("click", "#imglist_kggzs .delImg", async (e) => {
e.preventDefault();
e.currentTarget.parentElement.remove();
/* popup2.toast('删除中,请稍后');
let id_encoded = e.currentTarget.getAttribute("id-encode");
if(!id_encoded){
popup2.toast('获取id_encoded失败,请自行去Hello图床删除');
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 clearData = () => {
GM_deleteValue("HelloChartBedUser");
GM_deleteValue("HelloChartBedPwd");
loginStatus = false;
chartBedUser = "";
chartBedPwd = "";
chartBedAuthToken = null;
}
function checkLogin() {
return new Promise(async (res) => {
if (!chartBedUser || !chartBedPwd) {
let loginCallBack = () => {
let user = $jq("#chartbed_user").val().trim();
let pwd = $jq("#chartbed_pwd").val().trim();
if (user && pwd) {
GM_setValue("HelloChartBedUser", user);
GM_setValue("HelloChartBedPwd", pwd);
chartBedUser = user;
chartBedPwd = pwd;
popup2.toast('设置完毕,请重新点击');
popup2.confirm_close();
res(false);
} else {
popup2.toast("账号或密码不能为空");
}
}
mobile.chartBed.popupUserPwd("Hello图床", "https://www.helloimg.com/signup", loginCallBack);
} else if (chartBedAuthToken == null && !loginStatus) {
popup2.mask_loading_show();
popup2.toast('正在配置auth_token');
chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
console.log("auth_token:" + chartBedAuthToken);
if (chartBedAuthToken != null) {
popup2.toast('正在登录(不可用)Hello图床');
let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
popup2.mask_close();
if (retloginStatus) {
loginStatus = true;
res(true);
return;
} else {
clearData();
res(false);
return;
}
}
popup2.mask_close();
res(false);
} else {
res(false);
}
})
}
$jq(document).on("click", "#imglist_hello .up_btn a", async function () {
$jq("#filedata_hello").val("");
$jq("#filedata_hello").click();
})
$jq(document).on("change", "#filedata_hello", async (e) => {
let chooseImageFiles = e.currentTarget.files;
if (chooseImageFiles.length == 0) {
return
};
let needUploadImageArray = [];
let needUploadImageFileArray = [];
let uploadFileAwaitFunction = async (params) => {
let imageFile = chooseImageFiles[params[0]];
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);
}
}
let completeFunction = () => {
popup2.mask_close();
$jq("#filedata_hello").val("");
}
let waterMarkAwaitFunction = async () => {
popup2.mask_loading_show();
Promise.all(
Array.from(chooseImageFiles).map(async (item, index) => {
if (item.type === "image/gif") {
/* 不支持对GIF添加水印 */
let image_base64 = await Utils.asyncFileToBase64(item);
needUploadImageArray = needUploadImageArray.concat(image_base64);
needUploadImageFileArray = needUploadImageFileArray.concat(item);
} else {
popup2.toast(`添加水印 ${index+1}/${chooseImageFiles.length}`);
var watermark = new Watermark();
await watermark.setFile(item);
watermark.addText({
"text": [GM_getValue("chartBedWaterMarkText", "MT论坛")],
"fontSize": GM_getValue("chartBedWaterMarkFontSize"),
"color": GM_getValue("chartBedWaterMarkFontColor"),
"globalAlpha": GM_getValue("chartBedWaterGlobalAlpha"),
"rotateAngle": GM_getValue("chartBedWaterMarkRotationAngle"),
"xMoveDistance": GM_getValue("chartBedWaterXMoveDistance"),
"yMoveDistance": GM_getValue("chartBedWaterYMoveDistance")
});
needUploadImageArray = needUploadImageArray.concat(watermark.render("png"));
needUploadImageFileArray = needUploadImageFileArray.concat(Utils.base64ToFile(watermark.render("png"), "WaterMark_" + item.name));
}
})
).then(async () => {
chooseImageFiles = needUploadImageFileArray;
popup2.mask_close();
if (GM_getValue("chartBedWaterMarkAutoDefault")) {
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传水印图片中...请稍后");
console.log(`图片数量:${needUploadImageFileArray.length}`);
Utils.asyncArrayForEach(needUploadImageFileArray, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
return null;
}
}
let renderHTML = "";
Array.from(needUploadImageArray).forEach(item => {
renderHTML = renderHTML + '<img src="' + item + '">';
})
popup2.confirm({
text: `<style>
.dialogbox.popup2-popmenu {
width: 80vw;
height: 55vh;
}
#popup2-confirm,
#popup2-confirm .comiis_tip.bg_f{
width: inherit;
height: inherit;
}
#popup2-confirm .comiis_tip.bg_f dt.f_b{
height: calc(100% - 115px);
}
.upload-image-water{
height: 100%;
}
</style><div class="upload-image-water">${renderHTML}<div>`,
mask: true,
only: true,
ok:{
text: "继续上传",
callback: async () => {
popup2.confirm_close();
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传水印图片中...请稍后");
console.log(`图片数量:${needUploadImageFileArray.length}`);
Utils.asyncArrayForEach(needUploadImageFileArray, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
}
}
},
other: {
enable: true,
text: "保存至本地",
callback: () => {
Array.from(needUploadImageFileArray).forEach(async (item, index) => {
let base64Image = await Utils.asyncFileToBase64(item);
Utils.downloadBase64(item.name, base64Image);
})
}
}
});
})
}
if (GM_getValue("chartBedAddWaterMark")) {
Utils.tryCatch(waterMarkAwaitFunction);
} else {
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传图片中...请稍后");
console.log(`图片数量:${chooseImageFiles.length}`);
Utils.asyncArrayForEach(chooseImageFiles, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
}
}
})
$jq(document).on("click", "#imglist_hello .delImg", async function (e) {
e.preventDefault();
popup2.mask_loading_show();
popup2.toast("删除中,请稍后");
let id_encoded = e.currentTarget.getAttribute("id-encode");
if (!id_encoded) {
popup2.mask_close();
popup2.toast('获取id_encoded失败,请自行去Hello图床删除');
return;
}
let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
popup2.mask_close();
if (deleteStatus) {
$jq(this).parent().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 clearData = () => {
GM_deleteValue("Z4AChartBedUser");
GM_deleteValue("Z4AChartBedPwd");
loginStatus = false;
chartBedUser = "";
chartBedPwd = "";
chartBedAuthToken = null;
}
function checkLogin() {
return new Promise(async (res) => {
if (!chartBedUser || !chartBedPwd) {
let loginCallBack = () => {
let user = $jq("#chartbed_user").val().trim();
let pwd = $jq("#chartbed_pwd").val().trim();
if (user && pwd) {
GM_setValue("Z4AChartBedUser", user);
GM_setValue("Z4AChartBedPwd", pwd);
chartBedUser = user;
chartBedPwd = pwd;
popup2.toast('设置完毕,请重新点击');
popup2.confirm_close();
res(false);
} else {
popup2.toast("账号或密码不能为空");
}
}
mobile.chartBed.popupUserPwd("Z4A图床", "https://www.z4a.net/signup", loginCallBack);
} else if (chartBedAuthToken == null && !loginStatus) {
popup2.mask_loading_show();
popup2.toast('正在配置auth_token');
chartBedAuthToken = await mobile.chartBed.getAuthToken(chartBedUrl);
console.log("auth_token:" + chartBedAuthToken);
if (chartBedAuthToken != null) {
popup2.toast('正在登录(不可用)Z4A图床');
let retloginStatus = await mobile.chartBed.login(chartBedUrl, chartBedUser, chartBedPwd, chartBedAuthToken);
popup2.mask_close();
if (retloginStatus) {
console.log("登录(不可用)成功");
loginStatus = true;
res(true);
return;
} else {
clearData();
res(false);
return;
}
}
popup2.mask_close();
res(false);
} else {
res(false);
}
})
}
$jq(document).on("click", "#imglist_z4a .up_btn a", async function (e) {
$jq("#filedata_z4a").val("");
$jq("#filedata_z4a").click();
})
$jq(document).on("change", "#filedata_z4a", async (e) => {
let chooseImageFiles = e.currentTarget.files;
if (chooseImageFiles.length == 0) {
return
};
let needUploadImageArray = [];
let needUploadImageFileArray = [];
let uploadFileAwaitFunction = async (params) => {
let imageFile = chooseImageFiles[params[0]];
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);
}
}
let completeFunction = () => {
popup2.mask_close();
$jq("#filedata_z4a").val("");
}
let waterMarkAwaitFunction = async () => {
popup2.mask_loading_show();
Promise.all(
Array.from(chooseImageFiles).map(async (item, index) => {
if (item.type === "image/gif") {
/* 不支持对GIF添加水印 */
let image_base64 = await Utils.asyncFileToBase64(item);
needUploadImageArray = needUploadImageArray.concat(image_base64);
needUploadImageFileArray = needUploadImageFileArray.concat(item);
} else {
popup2.toast(`添加水印 ${index+1}/${chooseImageFiles.length}`);
var watermark = new Watermark();
await watermark.setFile(item);
watermark.addText({
"text": [GM_getValue("chartBedWaterMarkText", "MT论坛")],
"fontSize": GM_getValue("chartBedWaterMarkFontSize"),
"color": GM_getValue("chartBedWaterMarkFontColor"),
"globalAlpha": GM_getValue("chartBedWaterGlobalAlpha"),
"rotateAngle": GM_getValue("chartBedWaterMarkRotationAngle"),
"xMoveDistance": GM_getValue("chartBedWaterXMoveDistance"),
"yMoveDistance": GM_getValue("chartBedWaterYMoveDistance")
});
needUploadImageArray = needUploadImageArray.concat(watermark.render("png"));
needUploadImageFileArray = needUploadImageFileArray.concat(Utils.base64ToFile(watermark.render("png"), "WaterMark_" + item.name));
}
})
).then(async () => {
chooseImageFiles = needUploadImageFileArray;
popup2.mask_close();
if (GM_getValue("chartBedWaterMarkAutoDefault")) {
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传水印图片中...请稍后");
console.log(`图片数量:${needUploadImageFileArray.length}`);
Utils.asyncArrayForEach(needUploadImageFileArray, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
return null;
}
}
let renderHTML = "";
Array.from(needUploadImageArray).forEach(item => {
renderHTML = renderHTML + '<img src="' + item + '">';
})
popup2.confirm({
text: `<style>
.dialogbox.popup2-popmenu {
width: 80vw;
height: 55vh;
}
#popup2-confirm,
#popup2-confirm .comiis_tip.bg_f{
width: inherit;
height: inherit;
}
#popup2-confirm .comiis_tip.bg_f dt.f_b{
height: calc(100% - 115px);
}
.upload-image-water{
height: 100%;
}
</style><div class="upload-image-water">${renderHTML}<div>`,
mask: true,
only: true,
ok:{
text: "继续上传",
callback: async () => {
popup2.confirm_close();
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传水印图片中...请稍后");
console.log(`图片数量:${needUploadImageFileArray.length}`);
Utils.asyncArrayForEach(needUploadImageFileArray, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
}
},
},
other: {
enable: true,
text: "保存至本地",
callback: () => {
Array.from(needUploadImageFileArray).forEach(async (item, index) => {
let base64Image = await Utils.asyncFileToBase64(item);
Utils.downloadBase64(item.name, base64Image);
})
}
}
});
})
}
if (GM_getValue("chartBedAddWaterMark")) {
Utils.tryCatch(waterMarkAwaitFunction);
} else {
let login_status = await checkLogin();
if (login_status) {
popup2.mask_loading_show();
popup2.toast("上传图片中...请稍后");
console.log(`图片数量:${chooseImageFiles.length}`);
Utils.asyncArrayForEach(chooseImageFiles, uploadFileAwaitFunction).then(()=>{
Utils.tryCatch(completeFunction);
});;
}
}
})
$jq(document).on("click", "#imglist_z4a .delImg", async function (e) {
e.preventDefault();
popup2.mask_loading_show();
popup2.toast("删除中,请稍后");
let id_encoded = e.currentTarget.getAttribute("id-encode");
if (!id_encoded) {
popup2.toast('获取id_encoded失败,请自行去Z4A图床删除');
return;
}
let deleteStatus = await mobile.chartBed.deleteImage(chartBedUrl, chartBedAuthToken, id_encoded);
popup2.mask_close();
if (deleteStatus) {
$jq(this).parent().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;
}
.comiis_tip dt p{
padding: 10px 0px;
}
.upload-image-water{
overflow-y: auto;
}
.upload-image-water img{
width: 100%;
margin: 10px 0px;
}
`);
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);
Utils.tryCatch(chartbedByMT);
Utils.tryCatch(chartbedByKggzs);
Utils.tryCatch(chartbedByHello);
Utils.tryCatch(chartbedByZ4a);
Utils.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,
#comiis_foot_menu_beautify .reply_area ul{
width: 100%;
}
#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: 100%;
}
#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: 65%;
margin: 0px 3%;
text-align: center;
}
#comiis_foot_menu_beautify .reply_area li:not(first-child){
width: 7%;
text-align: -webkit-center;
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: -webkit-box;
top: 0px;
left: 0px;
height: 42px;
line-height: 42px;
overflow: hidden;
overflow-x: auto;
}
#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/*" multiple>
</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>
</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>
</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>
</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='comiis_upbox comiis_chartbed_settings' style='display: none;height: 170px;overflow-y: auto;background: #fff;'>
<ul id="imglist_settings" class="cl">
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">水印</div>
<div class="styli_r">
<input type="checkbox" name="addwatermark" id="addwatermark" value="1" class="comiis_checkbox_key" checked="checked" style="display: none;">
<label for="addwatermark" class="wauto"><code class="bg_f b_ok comiis_checkbox comiis_checkbox_close"></code></label>
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">自动添加水印并上传</div>
<div class="styli_r">
<input type="checkbox" name="autowatermarkdefault" id="autowatermarkdefault" value="1" class="comiis_checkbox_key" checked="checked" style="display: none;">
<label for="autowatermarkdefault" class="wauto"><code class="bg_f b_ok comiis_checkbox comiis_checkbox_close"></code></label>
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">文字</div>
<div class="styli_r">
<input type="text" style="
height: 32px;
line-height: 32px;
padding: 0 20px;
margin-top: 1px;
margin-right: 12px;
border: none !important;
font-size: 15px;
border-radius: 20px;
" name="watermarktext" id="watermarktext" placeholder="请输入需要添加水印的文字">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">颜色</div>
<div class="styli_r">
<input type="color" style="width: 60px;
border-radius: unset;
padding: unset;
margin-right: 32px;
height: 32px;
line-height: 32px;
margin-top: 1px;
font-size: 15px;
border: none;" name="watermarkfontcolor" id="watermarkfontcolor">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">大小</div>
<div class="styli_r">
<input type="number" style="
height: 32px;
line-height: 32px;
padding: 0 20px;
margin-top: 1px;
margin-right: 12px;
border: none !important;
font-size: 15px;
border-radius: 20px;
width:60px;
" name="watermarkfontsize" id="watermarkfontsize" placeholder="单位px" value="" min="0" max="300" step="1">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">透明度</div>
<div class="styli_r">
<input type="number" style="
height: 32px;
line-height: 32px;
padding: 0 20px;
margin-top: 1px;
margin-right: 12px;
border: none !important;
font-size: 15px;
border-radius: 20px;
width:60px;
" name="watermarkglobalalpha" id="watermarkglobalalpha" placeholder="0~1" value="" min="0" max="1" step="0.01">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">左右间距</div>
<div class="styli_r">
<input type="number" style="
height: 32px;
line-height: 32px;
padding: 0 20px;
margin-top: 1px;
margin-right: 12px;
border: none !important;
font-size: 15px;
border-radius: 20px;
width:60px;
" name="watermarkxmovedistance" id="watermarkxmovedistance" placeholder="1~200" value="" min="1" max="200" step="1">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">上下间距</div>
<div class="styli_r">
<input type="number" style="
height: 32px;
line-height: 32px;
padding: 0 20px;
margin-top: 1px;
margin-right: 12px;
border: none !important;
font-size: 15px;
border-radius: 20px;
width:60px;
" name="watermarkymovedistance" id="watermarkymovedistance" placeholder="1~200" value="" min="1" max="200" step="1">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex" style="text-align: left;">旋转角度</div>
<div class="styli_r">
<input type="number" style="
height: 32px;
line-height: 32px;
padding: 0 20px;
margin-top: 1px;
margin-right: 12px;
border: none !important;
font-size: 15px;
border-radius: 20px;
width:60px;
" name="watermarkrotationangle" id="watermarkrotationangle" placeholder="-360~360" value="" min="-360" max="360" step="1">
</div>
</li>
</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>
<li class="" id="comiis_pictitle_tab_n_6"><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('');
$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();
}
}
popup2.toast('已取消点赞');
}
})
} else if (s.indexOf("您不能评价自己的帖子") >= 0) {
popup2.toast('不能点赞自己的帖子');
} else if (s.indexOf("今日评价机会已用完") >= 0) {
popup2.toast('您今日的点赞机会已用完');
} 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('');
$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();
}
}
popup2.toast('点赞成功' + (b['daycount'] ? ', 您今天还能点赞 ' + (b['daycount'] - 1) + ' 次' : ''));
} 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 {
popup2.toast('没有点赞权限或帖子不存在');
}
setTimeout(function () {
comiis_recommend_key = 0;
}, 500);
},
error: () => {
window.location.href = obj.attr('href');
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 */
popup2.toast(v["popup_text"]);
}
return_status = true;
return;
}
})
return return_status;
}
$jq('#fastpostsubmit').on('click', function () {
/* 发表按钮|回复按钮点击事件 */
if ($jq("#needmessage").val() == null || $jq("#needmessage").val() == '') {
return;
}
popup2.mask_loading_show();
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) {
popup2.mask_close();
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) {
popup2.mask_close();
console.log(e);
/* window.location.href = form_action; */
popup2.toast("连接超时,网络异常");
}
});
} 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) {
popup2.mask_close();
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) => {
popup2.mask_close();
console.log(e);
/* window.location.href = $jq('#comiis_foot_menu_beautify_big .reply_user_content').attr('data-reply-action'); */
popup2.toast("连接超时,网络异常");
}
})
}
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");
popup2.mask_loading_show();
console.log($jq(this));
$jq.ajax({
type: 'GET',
url: obj.attr('datahref') + '&inajax=1',
dataType: 'xml',
timeout: 5000,
success: function (s) {
popup2.mask_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) => {
popup2.mask_close();
console.log(e);
/* window.location.href = obj.attr('datahref'); */
popup2.toast("连接超时,网络异常");
}
})
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();
})
function chartbedWaterMarkEvent() {
/* 图床-水印-设置的各种事件 */
$jq("label[for='autowatermarkdefault']").on("click", function () {
let obj = $jq(this);
let code_obj = obj.find("code");
if (code_obj.hasClass("comiis_checkbox_close")) {
/* 开 */
code_obj.removeClass("comiis_checkbox_close");
GM_setValue("chartBedWaterMarkAutoDefault", true);
} else {
/* 关 */
code_obj.addClass("comiis_checkbox_close");
GM_setValue("chartBedWaterMarkAutoDefault", false);
}
})
$jq("label[for='addwatermark']").on("click", function () {
let obj = $jq(this);
let code_obj = obj.find("code");
if (code_obj.hasClass("comiis_checkbox_close")) {
/* 开 */
code_obj.removeClass("comiis_checkbox_close");
GM_setValue("chartBedAddWaterMark", true);
} else {
/* 关 */
code_obj.addClass("comiis_checkbox_close");
GM_setValue("chartBedAddWaterMark", false);
}
})
$jq("#watermarktext").on("input propertychange", function () {
GM_setValue("chartBedWaterMarkText", $jq(this).val());
})
$jq("#watermarkfontcolor").on("input propertychange", function () {
let value = $jq(this).val();
GM_setValue("chartBedWaterMarkFontColor", value);
})
$jq("#watermarkglobalalpha").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 0.7;
} else if (value > max) {
value = 1;
} else if (value < min) {
value = 0;
}
GM_setValue("chartBedWaterGlobalAlpha", value);
})
$jq("#watermarkfontsize").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 16;
} else if (value > max) {
value = 100;
} else if (value < min) {
value = 1;
}
GM_setValue("chartBedWaterMarkFontSize", value);
})
$jq("#watermarkxmovedistance").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 30;
} else if (value > max) {
value = 300;
} else if (value < min) {
value = 1;
}
GM_setValue("chartBedWaterXMoveDistance", value);
})
$jq("#watermarkymovedistance").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 30;
} else if (value > max) {
value = 300;
} else if (value < min) {
value = 30;
}
GM_setValue("chartBedWaterYMoveDistance", value);
})
$jq("#watermarkrotationangle").on("input propertychange", function () {
let value = parseInt($jq(this).val());
let max = parseInt($jq(this).attr("max"));
let min = parseInt($jq(this).attr("min"));
if (isNaN(value)) {
value = 45;
} else if (value > max) {
value = 360;
} else if (value < min) {
value = -360;
}
GM_setValue("chartBedWaterMarkRotationAngle", value);
})
if (GM_getValue("chartBedAddWaterMark")) {
/* 初始化默认值 */
$jq("label[for='addwatermark'] code").removeClass("comiis_checkbox_close");
}
if (GM_getValue("chartBedWaterMarkAutoDefault")) {
/* 初始化默认值 */
$jq("label[for='autowatermarkdefault'] code").removeClass("comiis_checkbox_close");
}
$jq("#watermarktext").val(GM_getValue("chartBedWaterMarkText", "MT论坛")).trigger("propertychange");
$jq("#watermarkfontsize").val(GM_getValue("chartBedWaterMarkFontSize", 16)).trigger("propertychange");
$jq("#watermarkfontcolor").val(GM_getValue("chartBedWaterMarkFontColor", "#000000")).trigger("propertychange");
$jq("#watermarkglobalalpha").val(GM_getValue("chartBedWaterGlobalAlpha", 0.7)).trigger("propertychange");
$jq("#watermarkxmovedistance").val(GM_getValue("chartBedWaterXMoveDistance", 30)).trigger("propertychange");
$jq("#watermarkymovedistance").val(GM_getValue("chartBedWaterYMoveDistance", 30)).trigger("propertychange");
$jq("#watermarkrotationangle").val(GM_getValue("chartBedWaterMarkRotationAngle", 45)).trigger("propertychange");
}
Utils.tryCatch(mobile.editorChartBed);
Utils.tryCatch(mobile.quickUBB.insertQuickReplyUBB);
Utils.tryCatch(mobile.editorOptimizationOffDefaultBottomReplyBtnClickEvent);
Utils.tryCatch(chartbedWaterMarkEvent);
},
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
};
Utils.tryCatch(mobile.editorChartBed);
Utils.tryCatch(mobile.previewPostForum);
Utils.tryCatch(mobile.quickUBB.insertReplayUBB);
GM_addStyle(`
.f_c, .f_c a, .ntc_body{
color: #000000 !important;
}
input::placeholder,
textarea::placeholder {
color: #cfcfcf;
}
#needsubject::placeholder{
font-weight: bold;
}
#needmessage::placeholder{
}
#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;
display: flex !important;
-webkit-box-align: center;
align-items: center;
}
#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: 110px;
}
#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: -webkit-box;
top: 0px;
left: 0px;
height: 42px;
line-height: 42px;
overflow: hidden;
overflow-x: auto;
background: #f8f8f8;
}
#comiis_pictitle_key a {
color: #333 !important;
padding: 0px 10px;
}
#comiis_mh_sub{
height: auto !important;
}
#comiis_mh_sub .swiper-wrapper.comiis_post_ico{
flex-flow: wrap;
}
#comiis_mh_sub a{
margin:5px 0px;
}
#comiis_post_tab .comiis_over_box{
max-height: 225px;
}
`);
$jq(".comiis_scrollTop_box").parent().hide();
$jq("#postform .comiis_post_from.mt15").css("cssText", "margin-top:0px !important");
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();
if ($jq(".comiis_scrollTop_box").length) {
$jq("#htmlon").parent().append(`
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">发表帖子</div>
<div class="styli_r">
<input type="checkbox" name="usesig" value="1" class="comiis_checkbox_key">
<label for="" class="wauto">
<code class="bg_f b_ok comiis_checkbox comiis_choose_post comiis_checkbox_close"></code>
</label>
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">发投票</div>
<div class="styli_r">
<input type="checkbox" name="usesig" value="1" class="comiis_checkbox_key">
<label for="" class="wauto">
<code class="bg_f b_ok comiis_checkbox comiis_choose_vote comiis_checkbox_close"></code>
</label>
</div>
</li>
`);
if ($jq(".comiis_scrollTop_box .swiper-slide a:contains('发表帖子')").attr("class") != "f_c") {
$jq(".comiis_checkbox.comiis_choose_post").removeClass("comiis_checkbox_close");
} else {
$jq(".comiis_checkbox.comiis_choose_vote").removeClass("comiis_checkbox_close");
}
$jq(".comiis_checkbox.comiis_choose_post").on("click", function () {
let obj = $jq(this);
obj.addClass("comiis_checkbox_close");
$jq(".comiis_checkbox.comiis_choose_vote").addClass("comiis_checkbox_close");
obj.removeClass("comiis_checkbox_close");
window.location.href = window.location.href.replace("&special=1", '');
});
$jq(".comiis_checkbox.comiis_choose_vote").on("click", function () {
let obj = $jq(this);
obj.addClass("comiis_checkbox_close");
$jq(".comiis_checkbox.comiis_choose_post").addClass("comiis_checkbox_close");
obj.removeClass("comiis_checkbox_close");
window.location.href = window.location.href + "&special=1";
});
}
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 () {
popup2.confirm({
"text": "<p>是否删除帖子?</p>",
"mask": true,
"ok":{
"callback": () => {
popup2.mask_close();
popup2.confirm_close();
comiis_delthread();
},
}
})
});
}
if (btn_save_caogao.length) {
$jq("#comiis_head .header_y").append($jq(`<input class="new_btn_save_temp" type="button" value="保存草稿">`));
var editHistoryText = GM_getValue("editHistoryText","");
var editHistorySubjectText = GM_getValue("editHistorySubjectText","");
$jq("#needmessage")?.on("input propertychange",function(){
GM_setValue("editHistoryText",$jq(this)?.val());
})
$jq("#needsubject")?.on("input propertychange",function(){
GM_setValue("editHistorySubjectText",$jq(this)?.val());
})
if( (editHistoryText || editHistorySubjectText) && (editHistoryText !== "" || editHistorySubjectText !== "") && $jq(".comiis_scrollTop_box .swiper-slide a:contains('发表帖子')").attr("class") != "f_c" ){
popup2.confirm({
text: "<p>存在历史写入的数据,是否恢复到编辑器里?</p>",
ok:{
text: "恢复",
callback: () => {
if($jq("#needmessage")?.val() == "" || $jq("#needsubject")?.val() == ""){
$jq("#needmessage")?.val(editHistoryText);
$jq("#needsubject")?.val(editHistorySubjectText);
popup2.confirm_close();
popup2.toast("恢复成功");
}else{
popup2.confirm({
text: "<p>当前编辑器里存在数据,是否覆盖?</p>",
callback: () => {
$jq("#needmessage")?.val(editHistoryText);
$jq("#needsubject")?.val(editHistorySubjectText);
popup2.confirm_close();
popup2.toast("覆盖成功");
},
mask: true,
only: true
})
}
},
},
mask: true,
only: true,
other: {
enable: true,
text: "删除该数据",
callback: () => {
GM_deleteValue("editHistoryText");
GM_deleteValue("editHistorySubjectText");
popup2.confirm_close();
popup2.toast("删除成功");
}
}
})
}
$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(0);
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 = document.documentElement.clientHeight - 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");
$jq(".gm_plugin_previewpostforum_html.double-preview .comiis_over_box").css("height", "100px");
} else {
console.log("设置输入框、预览高度", needMessageSeeHeight - 5);
$jq("#needmessage").css("height", needMessageSeeHeight - 5 + "px");
$jq(".gm_plugin_previewpostforum_html.double-preview .comiis_over_box").css("height", needMessageSeeHeight - 5 + "px");
}
/* 之后更新外部容器等操作 */
});
mutationObserver.observe($tar, {
/* 子节点的变动(新增、删除或者更改) */
childList: true,
/* 属性的变动 */
attributes: true,
/* 节点内容或节点文本的变动 */
characterData: true,
/* 是否将观察器应用于该节点的所有后代节点 */
subtree: true
})
$jq(window).on("resize", function (e) {
let needMessageSeeHeight = document.documentElement.clientHeight - 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");
$jq(".gm_plugin_previewpostforum_html.double-preview .comiis_over_box").css("height", "100px");
} else {
console.log("设置输入框、预览高度", needMessageSeeHeight - 5);
$jq("#needmessage").css("height", needMessageSeeHeight - 5 + "px");
$jq(".gm_plugin_previewpostforum_html.double-preview .comiis_over_box").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>
</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>
</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>
</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='comiis_upbox comiis_chartbed_settings' style='display: none;height: 170px;overflow-y: auto;'>
<ul id="imglist_settings" class="cl">
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">水印</div>
<div class="styli_r">
<input type="checkbox" name="addwatermark" id="addwatermark" value="1" class="comiis_checkbox_key" checked="checked" style="display: none;">
<label for="addwatermark" class="wauto"><code class="bg_f b_ok comiis_checkbox comiis_checkbox_close"></code></label>
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">自动添加水印并上传</div>
<div class="styli_r">
<input type="checkbox" name="autowatermarkdefault" id="autowatermarkdefault" value="1" class="comiis_checkbox_key" checked="checked" style="display: none;">
<label for="autowatermarkdefault" class="wauto"><code class="bg_f b_ok comiis_checkbox comiis_checkbox_close"></code></label>
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">文字</div>
<div class="styli_r">
<input type="text" name="watermarktext" id="watermarktext" placeholder="请输入需要添加水印的文字">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">颜色</div>
<div class="styli_r">
<input type="color" style="width: 60px;border-radius: unset;padding: unset;margin-right: 32px;" name="watermarkfontcolor" id="watermarkfontcolor">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">大小</div>
<div class="styli_r">
<input type="number" style="width:60px;" name="watermarkfontsize" id="watermarkfontsize" placeholder="单位px" value="" min="1" max="300" step="1">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">透明度</div>
<div class="styli_r">
<input type="number" style="width:60px;" name="watermarkglobalalpha" id="watermarkglobalalpha" placeholder="0~1" value="" min="0" max="1" step="0.01">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">左右间距</div>
<div class="styli_r">
<input type="number" style="width:60px;" name="watermarkxmovedistance" id="watermarkxmovedistance" placeholder="1~200" value="" min="1" max="200" step="1">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">上下间距</div>
<div class="styli_r">
<input type="number" style="width:60px;" name="watermarkymovedistance" id="watermarkymovedistance" placeholder="1~200" value="" min="1" max="200" step="1">
</div>
</li>
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">旋转角度</div>
<div class="styli_r">
<input type="number" style="width:60px;" name="watermarkrotationangle" id="watermarkrotationangle" placeholder="-360~360" value="" min="-360" max="360" step="1">
</div>
</li>
</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>
<li class="" id="comiis_pictitle_tab_n_6"><a href="javascript:;" class="">设置</a></li>
</ul>
</div>`));
$jq(".gm_plugin_chartbed .comiis_chartbed_luntan").append(before_image_luntan);
$jq("#filedata").attr("multiple", true); /* 添加上传多个文件功能 */
$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();
})
function chartbedWaterMarkEvent() {
/* 图床-水印-设置的各种事件 */
$jq("label[for='autowatermarkdefault']").on("click", function () {
let obj = $jq(this);
let code_obj = obj.find("code");
if (code_obj.hasClass("comiis_checkbox_close")) {
/* 开 */
code_obj.removeClass("comiis_checkbox_close");
GM_setValue("chartBedWaterMarkAutoDefault", true);
} else {
/* 关 */
code_obj.addClass("comiis_checkbox_close");
GM_setValue("chartBedWaterMarkAutoDefault", false);
}
})
$jq("label[for='addwatermark']").on("click", function () {
let obj = $jq(this);
let code_obj = obj.find("code");
if (code_obj.hasClass("comiis_checkbox_close")) {
/* 开 */
code_obj.removeClass("comiis_checkbox_close");
GM_setValue("chartBedAddWaterMark", true);
} else {
/* 关 */
code_obj.addClass("comiis_checkbox_close");
GM_setValue("chartBedAddWaterMark", false);
}
})
$jq("#watermarktext").on("input propertychange", function () {
GM_setValue("chartBedWaterMarkText", $jq(this).val());
})
$jq("#watermarkfontcolor").on("input propertychange", function () {
let value = $jq(this).val();
GM_setValue("chartBedWaterMarkFontColor", value);
})
$jq("#watermarkglobalalpha").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 0.7;
} else if (value > max) {
value = 1;
} else if (value < min) {
value = 0;
}
GM_setValue("chartBedWaterGlobalAlpha", value);
})
$jq("#watermarkfontsize").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 16;
} else if (value > max) {
value = 100;
} else if (value < min) {
value = 1;
}
GM_setValue("chartBedWaterMarkFontSize", value);
})
$jq("#watermarkxmovedistance").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 30;
} else if (value > max) {
value = 300;
} else if (value < min) {
value = 1;
}
GM_setValue("chartBedWaterXMoveDistance", value);
})
$jq("#watermarkymovedistance").on("input propertychange", function () {
let value = parseFloat($jq(this).val());
let max = parseFloat($jq(this).attr("max"));
let min = parseFloat($jq(this).attr("min"));
if (isNaN(value)) {
value = 30;
} else if (value > max) {
value = 300;
} else if (value < min) {
value = 30;
}
GM_setValue("chartBedWaterYMoveDistance", value);
})
$jq("#watermarkrotationangle").on("input propertychange", function () {
let value = parseInt($jq(this).val());
let max = parseInt($jq(this).attr("max"));
let min = parseInt($jq(this).attr("min"));
if (isNaN(value)) {
value = 45;
} else if (value > max) {
value = 360;
} else if (value < min) {
value = -360;
}
GM_setValue("chartBedWaterMarkRotationAngle", value);
})
if (GM_getValue("chartBedAddWaterMark")) {
/* 初始化默认值 */
$jq("label[for='addwatermark'] code").removeClass("comiis_checkbox_close");
}
if (GM_getValue("chartBedWaterMarkAutoDefault")) {
/* 初始化默认值 */
$jq("label[for='autowatermarkdefault'] code").removeClass("comiis_checkbox_close");
}
$jq("#watermarktext").val(GM_getValue("chartBedWaterMarkText", "MT论坛")).trigger("propertychange");
$jq("#watermarkfontsize").val(GM_getValue("chartBedWaterMarkFontSize", 16)).trigger("propertychange");
$jq("#watermarkfontcolor").val(GM_getValue("chartBedWaterMarkFontColor", "#000000")).trigger("propertychange");
$jq("#watermarkglobalalpha").val(GM_getValue("chartBedWaterGlobalAlpha", 0.7)).trigger("propertychange");
$jq("#watermarkxmovedistance").val(GM_getValue("chartBedWaterXMoveDistance", 30)).trigger("propertychange");
$jq("#watermarkymovedistance").val(GM_getValue("chartBedWaterYMoveDistance", 30)).trigger("propertychange");
$jq("#watermarkrotationangle").val(GM_getValue("chartBedWaterMarkRotationAngle", 45)).trigger("propertychange");
}
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>`))
}
if (window.location.href.match(mt_config.rexp.edit_forum) && $jq("#needsubject").val() === "") {
$jq(".comiis_styli.comiis_flex").hide();
} else {
$jq("#needsubject").attr("placeholder", "请输入完整的帖子标题 (1-80个字)");
}
$jq("#needmessage").attr("placeholder", "来吧,尽情发挥吧...");
Utils.tryCatch(mobile.selectPostingSection);
Utils.tryCatch(chartbedWaterMarkEvent);
},
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) {
xtips.toast("获取formhash成功");
res(formhash[1]);
} else if (!r.responseText.match("登录(不可用)")) {
res(4);
} else {
console.log(r);
xtips.toast("获取formhash失败");
res(null);
}
},
onerror: () => {
xtips.toast("网络异常,获取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)) {
xtips.toast(JSON.parse(r.responseText)["info"]);
} else {
xtips.toast("登录(不可用)失败");
console.log(r);
}
res(false);
}
},
onerror: () => {
xtips.toast("网络异常,登录(不可用)失败");
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) {
xtips.toast(json_data["info"]);
res(json_data["text"][0]);
} else {
xtips.toast(json_data["info"]);
console.log(r);
res(null);
}
},
onerror: () => {
xtips.toast("网络异常,删除失败");
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);
xtips.toast(data["info"]);
res(true);
} catch (error) {
xtips.toast("删除失败");
console.log(r);
res(false);
}
},
onerror: () => {
xtips.toast("网络异常,删除失败");
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: () => {
xtips.toast("网络异常,退出失败");
res(false);
}
})
})
}
}
async function showUploadFiles() {
/* 历史上传的文件们 */
lanZouViewShowLock = false;
if (typeof $jq.NZ_MsgBox == "undefined") {
popup2.toast({
"text": "加载NZMsgBox.js中"
});
await GM_asyncLoadScriptNode("https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js");
if (typeof $jq.NZ_MsgBox == "undefined") {
popup2.toast({
"text": "网络异常,加载NZMsgBox.js失败"
});
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;
}
`)
let plugin_delete_lanzou_file = (t_id, t_f_id, index) => {
lanzou.deleteFile(t_id);
console.log("删除文件", t_f_id);
lanzou.storage.delUploadFiles(t_f_id);
$jq(".msgcontainer .msgcon div").eq(index).remove();
xtips.toast("删除成功");
}
$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();
popup2.confirm({
text: "<p>确定删除该文件?</p>",
ok:{
callback: () => {
plugin_delete_lanzou_file(t_id, t_f_id, index);
popup2.confirm_close();
},
},
mask: true,
only: true
})
});
}
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 != "") {
xtips.toast("登录(不可用)中请稍后...");
let _formhash_ = await lanzou.login_getFormHash(inputUser, inputPwd);
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 {
xtips.toast('账号或密码不能为空');
}
}
}
});
}
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) {
xtips.toast("登录(不可用)过期");
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"]}`);
xtips.toast("已复制到剪贴板");
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) {
xtips.toast("退出登录(不可用)成功");
lanzou.storage.delFormhash();
anyTouchNode.off("tap");
xtip.close(sheet);
lanZouViewShowLock = false;
} else {
xtips.toast("退出登录(不可用)失败");
}
}
});
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);
if (window === top.window) {
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);
if (window === top.window) {
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);
if (window === top.window) {
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);
if (window === top.window) {
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() {
/* 手机版按顺序加载的函数 */
Utils.tryCatch(mobile.commentsAddReviews);
Utils.tryCatch(mobile.recoveryIMGWidth);
Utils.tryCatch(mobile.identifyLinks);
Utils.tryCatch(mobile.showUserUID);
Utils.tryCatch(mobile.previewPictures);
Utils.tryCatch(mobile.removeForumPostFontStyle);
Utils.tryCatch(mobile.removeForumPostCommentFontStyle);
Utils.tryCatch(mobile.autoSignIn);
Utils.tryCatch(mobile.autoExpendFullTextByForumPost);
Utils.tryCatch(mobile.searchHistory);
Utils.tryCatch(mobile.loadNextComments, '', '$jq("#loading-comment-tip").text("加载评论失败")');
Utils.tryCatch(mobile.loadPrevComments, '', '$jq("#loading-comment-tip-prev").text("加载评论失败")');
Utils.tryCatch(mobile.repairClearSearchInput);
Utils.tryCatch(mobile.repairUnableToEnterOtherSpaceCorrectly);
Utils.tryCatch(mobile.chatChartBed);
Utils.tryCatch(mobile.pageSmallWindowBrowsingForumPost);
Utils.tryCatch(mobile.codeQuoteCopyBtn);
Utils.tryCatch(mobile.editorOptimization);
Utils.tryCatch(mobile.editorOptimizationFull);
Utils.tryCatch(mobile.shieldUser);
Utils.tryCatch(mobile.shieldPlate);
Utils.tryCatch(mobile.userCheckBoxSettings); /* 选项主要界面内容 */
Utils.tryCatch(mobile.blackHome.insertMobileBlackHomeButton);
Utils.tryCatch(mobile.lanzouFunction);
Utils.tryCatch(mobile.paymentSubjectReminder);
Utils.tryCatch(mobile.blacklistShieldUsersOrBlocks);
Utils.tryCatch(mobile.showTodayStar);
Utils.tryCatch(mobile.showSignInRanking);
Utils.tryCatch(mobile.setDynamicAvatar);
Utils.tryCatch(mobile.pageAfterDOMChangeRunFunction);
Utils.tryCatch(mobile.showSpaceContreteReply);
unsafeWindow.popup2 = popup2;
popup2.init();
},
needRepeatLoadingJSResource() {
/* 帖子内需要重复执行的js */
Utils.tryCatch(mobile.shieldUser);
Utils.tryCatch(mobile.commentsAddReviews);
Utils.tryCatch(mobile.identifyLinks);
Utils.tryCatch(mobile.showUserUID);
Utils.tryCatch(mobile.previewPictures);
Utils.tryCatch(mobile.pageSmallWindowBrowsingForumPost);
Utils.tryCatch(mobile.codeQuoteCopyBtn);
Utils.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() {
Utils.tryCatch(mobile.showUserUID);
Utils.tryCatch(mobile.previewPictures);
Utils.tryCatch(mobile.shieldUser);
Utils.tryCatch(mobile.shieldPlate);
Utils.tryCatch(mobile.pageSmallWindowBrowsingForumPost);
Utils.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;
} */
let small_icon_width = 24;
let small_right_btn_width = 115;
let small_title_width = "calc(100% - " + (small_icon_width + small_right_btn_width) + "px)";
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: ${small_icon_width}px;
height: ${small_icon_width}px;
align-self: center;
}
.xtiper_sheet_tit.xtiper_sheet_left .xtiper_tit_content{
margin-left: 22px;
width: ${small_title_width};
}
.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: ${small_right_btn_width}px;
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 constructURL = new URL(forumPostUrl);
let isHTTPS = constructURL.protocol.indexOf("https:") != -1 ? true : false;
let safeIcon = `<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>`;
let unsafeIcon = `<svg t="1663899632280"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3360"
width="12"
height="12">
<path d="M770.423989 451.309956H368.89432V284.246158c0-80.739434 65.689748-146.429182 146.429182-146.429182S661.738235 203.506724 661.738235 284.246158a43.350032 43.350032 0 0 0 86.700063 0c0-128.547294-104.581952-233.129246-233.122021-233.129246-128.547294 0-233.129246 104.581952-233.129245 233.129246v167.063798h-21.978466a43.350032 43.350032 0 0 0-43.350032 43.350031v437.965371a43.350032 43.350032 0 0 0 43.350032 43.350032h510.215423a43.350032 43.350032 0 0 0 43.350032-43.350032V494.659987a43.350032 43.350032 0 0 0-43.350032-43.350031z"
fill="#2c2c2c"
p-id="3361"></path>
</svg>`;
let blankOpenIcon = `<svg t="1660459294973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3580"
width="17" height="17">
<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>`;
let closeIcon = `<svg t="1660459530654"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="5064"
width="17"
height="17">
<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>`;
let showWebsiteSafeIcon = isHTTPS ? safeIcon : unsafeIcon;
let websiteTitle = `
<div class="xtiper_sheet_tit_top_drag"><div></div></div>
<div style="display:flex;justify-content: space-between;">
<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">
${showWebsiteSafeIcon}
<p>${constructURL.host}</p>
</div>
</div>
<div class="xtiper_tit_right">
<div class="xtiper_tit_right_windowopen">
${blankOpenIcon}
</div>
<div class="xtiper_tit_right_windowclose">
${closeIcon}
</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}`);
xtips.toast('已复制链接', {
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") {
popup2.toast("加载NZMsgBox.js中");
await GM_asyncLoadScriptNode("https://gf.qytechs.cn/scripts/449562-nzmsgbox/code/NZMsgBox.js");
if (typeof $jq.NZ_MsgBox == "undefined") {
popup2.toast("网络异常,加载NZMsgBox.js失败");
return;
} else {
console.log("成功加载NZMsgBox.js");
}
}
let data = paymentSubjectReminderHome.getData();
console.log(data);
$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;
}else{
console.log(v);
console.log("该帖子已经访问过");
}
}
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);
}
});
console.log(isFreeNotVisitedContentList);
console.log(isFreeContentList);
isFreeNotVisitedContentList.sort(Utils.sortListByProperty("timestamp", false));
isFreeContentList.sort(Utils.sortListByProperty("timestamp", false));
isFreeContent = Utils.mergeArrayToString(isFreeNotVisitedContentList, "content") + Utils.mergeArrayToString(isFreeContentList, "content");
isPaidContent = Utils.mergeArrayToString(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 t_index = e.target.parentElement.getAttribute("t-index");
popup2.confirm({
"text": "<p>确定移出付费主题白嫖列表?</p>",
"mask": true,
"ok":{
"callback": () => {
data.splice(t_index, 1);
console.log(data);
paymentSubjectReminderHome.setData(data);
e.target.parentElement.parentElement.parentElement.parentElement.parentElement.remove();
popup2.confirm_close();
},
},
"only": true
});
});
$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", function () {
popup2.confirm({
text: "<p>确定移出付费主题白嫖列表?</p>",
ok:{
callback: function () {
let isRemove = false;
Array.from(setTipForumPostList).forEach((item, index) => {
if (window.location.href.match(item["url"])) {
setTipForumPostList.splice(index, 1);
GM_setValue("tipToFreeSubjectForumPost", setTipForumPostList);
isRemove = true;
Utils.asyncSetTimeOut("window.location.reload()", 1500);
return;
}
});
if (!isRemove) {
popup2.toast("移出失败");
} else {
popup2.confirm_close();
popup2.toast({
"text": "移出成功"
});
}
},
},
mask: true
});
});
} 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) {
popup2.toast({
"text": "获取付费主题到期时间失败"
});
return;
}
let expirationTime = expirationTimeMatch[0];
let expirationTimeStamp = Utils.formatTextToTimeStamp(expirationTime);
setTipForumPostList = setTipForumPostList.concat({
"url": window.location.href,
"title": document.title.replace(" - MT论坛", ""),
"expirationTime": expirationTime,
"expirationTimeStamp": expirationTimeStamp,
"isVisited": false
});
GM_setValue("tipToFreeSubjectForumPost", setTipForumPostList);
popup2.toast({
"text": "添加成功"
});
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;
font-weight: initial;
line-height: 24px;
}
.gm_plugin_previewpostforum_html .comiis_message_table a{
height: auto;
float: unset;
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;
}
.gm_plugin_previewpostforum_html.double-preview{
width: 50vw;
}
.gm_plugin_previewpostforum_html.double-preview .comiis_over_box.comiis_input_style{
border-left: 1px solid;
}
`);
let open_double = GM_getValue("preview_post_forum_by_double");
function addMenu_preview() {
/* 添加底部菜单-预览 */
$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>`));
}
function addMenu_doubleColumnPreview() {
/* 添加底部菜单-高级-使用双列预览 */
$jq("#htmlon").parent().append($jq(`
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">使用双列预览</div>
<div class="styli_r">
<input type="checkbox" name="postformdouble" id="postformdouble" value="" class="comiis_checkbox_key">
<label for="postformdouble" class="wauto">
<code class="bg_f b_ok comiis_checkbox ${open_double? "":"comiis_checkbox_close"}"></code>
</label>
</div>
</li>
`));
$jq("#postformdouble").on("click", function () {
let obj = $jq(this);
let code_obj = obj.parent().find(".comiis_checkbox");
if (code_obj.hasClass("comiis_checkbox_close")) {
GM_setValue("preview_post_forum_by_double", true)
} else {
GM_setValue("preview_post_forum_by_double", false)
}
})
}
function addMenu_immersiveInput() {
/* 添加底部菜单-高级-使用沉浸输入 */
$jq("#htmlon").parent().append($jq(`
<li class="comiis_styli_m f15 comiis_flex b_b">
<div class="flex">使用沉浸输入</div>
<div class="styli_r">
<input type="checkbox" name="immersiveinput" id="immersiveinput" value="" class="comiis_checkbox_key">
<label for="immersiveinput" class="wauto">
<code class="bg_f b_ok comiis_checkbox comiis_checkbox_close"></code>
</label>
</div>
</li>
`));
$jq("#immersiveinput").on("click", function () {
let obj = $jq(this);
let code_obj = obj.parent().find(".comiis_checkbox");
console.log(code_obj.attr("class"));
if (code_obj.hasClass("comiis_checkbox_close")) {
$jq(".comiis_wzpost ul li.comiis_flex").hide(); /* 板块、标题 */
$jq(".comiis_wzpost ul li.comiis_styli.kmquote").hide(); /* 回复别人的quote */
$jq("#pollchecked").parent().parent().hide(); /* 投票,最多可填写 20 个选项 */
$jq("#pollm_c_1").hide(); /* 投票,增加一项 */
$jq(".comiis_polloption_add+div.f_0").hide(); /* 投票,增加一项(编辑状态下) */
$jq(".comiis_wzpost ul li.comiis_thread_content:contains('内容')").hide(); /* 投票,内容 */
} else {
$jq(".comiis_wzpost ul li.comiis_flex").show();
$jq(".comiis_wzpost ul li.comiis_styli.kmquote").show();
$jq("#pollchecked").parent().parent().show();
$jq("#pollm_c_1").show();
$jq(".comiis_polloption_add+div.f_0").show();
$jq(".comiis_wzpost ul li.comiis_thread_content:contains('内容')").show();
}
window.dispatchEvent(new Event("resize"));
})
}
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) {
/* 预览按钮点击事件 */
if ($jq("#polldatas").length) {
/* 当前是投票帖子 */
replaceVote();
}
if (!$jq(this).find("i.comiis_font").hasClass("f_0")) {
$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;
if (open_double) {
$jq(".gm_plugin_previewpostforum_html.double-preview .comiis_over_box.comiis_input_style").css("height", $jq("#needmessage").css("height"));
}
} else {
$jq(".gm_plugin_previewpostforum_html").hide();
}
};
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> 付费主题, 价格: <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 replaceVote() {
/* 替换预览投票 */
let chooseColor = ["rgb(233, 39, 37)",
"rgb(242, 123, 33)",
"rgb(242, 166, 31)",
"rgb(90, 175, 74)",
"rgb(66, 196, 245)",
"rgb(0, 153, 204)",
"rgb(51, 101, 174)",
"rgb(42, 53, 145)",
"rgb(89, 45, 142)",
"rgb(219, 49, 145)",
"rgb(233, 39, 37)",
"rgb(242, 123, 33)",
"rgb(242, 166, 31)",
"rgb(90, 175, 74)",
"rgb(66, 196, 245)",
"rgb(0, 153, 204)",
"rgb(51, 101, 174)",
"rgb(42, 53, 145)",
"rgb(89, 45, 142)",
"rgb(219, 49, 145)"
]; /* 选择的背景 */
let chooseContent = $jq(".comiis_polloption_add ul li:first-child div.flex .comiis_input.kmshow[type='text']"); /* 选项,最多20个 */
let maxchoices = parseInt($jq("input#maxchoices").val()); /* 最多可选 */
maxchoices = isNaN(maxchoices) ? 0 : maxchoices;
maxchoices = maxchoices > 0 ? maxchoices : 0;
maxchoices = maxchoices > chooseContent.length ? chooseContent.length : maxchoices; /* 大于当前选项数量的话为当前最大选项数量 */
let polldatas = parseInt($jq("input#polldatas").val()); /* 记票天数 */
polldatas = isNaN(polldatas) ? 0 : polldatas;
let visibilitypoll = $jq("input#visibilitypoll").parent().find(".comiis_checkbox").hasClass("comiis_checkbox_close") ? false : true; /* 投票后结果可见 */
let overt = $jq("input#overt").parent().find(".comiis_checkbox").hasClass("comiis_checkbox_close") ? false : true; /* 公开投票参与人 */
let html = "";
let choosehtml = "";
console.log(chooseContent);
chooseContent.each((i, v) => {
if (i >= 20) {
/* 最多20个 */
return;
}
choosehtml = choosehtml + `
<li class="kmnop">
<input type="${(maxchoices > 1) ? 'checkbox':'radio'}">
<label><i class="comiis_font f_d"></i>${v.value}</label>
</li>
<li class="poll_ok cl">
<span class="bg_b">
<em style="width:2%;background-color:${chooseColor[i]}"></em>
</span>
<em style="color:${chooseColor[i]}">0% (0)</em>
</li>`;
});
html = `
<div class="comiis_poll cl comiis_input_style b_t postforum_vote">
<div class="comiis_poll_top">
<i class="comiis_font bg_a f_f"></i>
<h2>${(maxchoices > 1) ? '多选投票'+'<em class="f_c"> 最多可选 '+maxchoices+' 项</em>':"单选投票"}</h2>
<p class="f_c">共有 0 人参与投票</p>
${polldatas > 0 ? ` <p class="kmbtn">
<span class="bg_e">距结束还有:
${polldatas > 1 ? '<em class="f_a">'+(polldatas-1)+'</em> 天 ':''}<em class="f_a">23</em> 小时 <em class="f_a">59</em> 分钟</span>
</p>`:""}
</div>
<div class="comiis_poll_list comiis_input_style cl">
<ul>
${choosehtml}
</ul>
</div>
<div class="comiis_poll_bottom cl">
<input type="submit" value="提交" class="formdialog comiis_btn kmshow bg_c f_f" disabled>
${overt ? '<div class="comiis_quote bg_h b_dashed f_a"><i class="comiis_font"></i>此为公开投票,其他人可看到您的投票项目</div>':""}
</div>
</div>
`;
$jq(".gm_plugin_previewpostforum_html .postforum_vote").remove();
$jq(".gm_plugin_previewpostforum_html .comiis_messages.comiis_aimg_show").children().eq(0).before($jq(html));
}
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'));
}
}
addMenu_doubleColumnPreview();
addMenu_preview();
addMenu_immersiveInput();
if (open_double) {
/* box-shadow: -1px 0px 8px; */
$jq("#needmessage").parent().css("display", "flex");
$jq("#needmessage").after($jq(`
<div class="bg_f cl gm_plugin_previewpostforum_html double-preview" style="display: none;">
<div class="comiis_over_box comiis_input_style">
<div class="comiis_postli comiis_list_readimgs nfqsqi" style="width: 50vw;">
<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="overflow-y: auto;position: relative;">
<div class="comiis_a comiis_message_table cl" style="margin: 0;">
</div>
</div>
</div>
</div>
</div>
</div>`));
} else {
$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="overflow-y: auto;position: relative;">
<div class="comiis_a comiis_message_table cl">
</div>
</div>
</div>
</div>
</div>
</div>`));
}
$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");
popup2.confirm({
text: `<input type="text" placeholder="请输入需要${value["key"]}的文字" class="quickinsertbbsdialog">
<style>
.quickinsertbbsdialog::-webkit-input-placeholder{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
color: #cfcfcf;
}
.quickinsertbbsdialog{
height: 32px;
line-height: 32px;
border: none;
font-size: 15px;
border-bottom: 1px solid #000;
margin: 30px 12px 10px 12px;
width: -webkit-fill-available;
}</style>`,
mask: true,
only: true,
ok:{
callback: () => {
let userInput = $jq(".quickinsertbbsdialog").val().trim();
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); /* 插入贴内 */
}
popup2.confirm_close();
/* 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 == '') {
popup2.toast('请输入需要插入的内容');
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)) {
if ($jq(".comiis_a.comiis_message_table.cl").eq(0).html()) {
$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`;
}
},
async searchHistory() {
/* 搜索历史 */
class searchSelect{
constructor (config){
this.parentDOM = config.parentDOM ? config.parentDOM : null;
this.list = this.arrayDistinct(config.list ? config.list : []); /* 用于搜索的数组 */
this.showList = this.list.length ? this.list: []; /* 用于显示在界面上的数组 */
this.inputValueChangeEvent = config.inputValueChangeEvent ? config.inputValueChangeEvent: ()=>{return []};
this.css = {
falInDuration: config?.css?.falInDuration ? config?.css?.falInDuration : 0.5,
falInTiming: config?.css?.falInTiming ? config?.css?.falInTiming : "linear",
falOutDuration: config?.css?.falOutDuration ? config?.css?.falOutDuration : 0.5,
falOutTiming: config?.css?.falOutTiming ? config?.css?.falOutTiming : "linear",
PaddingTop: config?.css?.PaddingTop ? config?.css?.PaddingTop : 8,/* 选择框距离输入框距离 */
}
this.searchSelectClassName = config.searchSelectClassName ? config.searchSelectClassName:"WhiteSevsSearchSelect"; /* 可修改div */
this.searchSelectHintClassName= config.searchSelectHintClassName ? config.searchSelectHintClassName:"whiteSevSearchHint"; /* 可修改ul */
this.searchSelectHTMLNoData = config.searchSelectHTMLNoData ? `<li class="none">${config.searchSelectHTMLNoData}</li>`: '<li class="none">暂无其他数据</li>';
this.searchSelectHTML =
`<div class="${this.searchSelectClassName}" style="display: none;">
<ul class="${this.searchSelectHintClassName}">
${this.searchSelectHTMLNoData}
</ul>
</div>`;
this.searchSelectDeleteItemHTML = `
<svg t="1669172591973" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2719" width="16" height="16" style="
position: absolute;
right: 8px;
"><path d="M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z" p-id="2720" fill="#e3dfdd"></path><path d="M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z" p-id="2721" fill="#e3dfdd"></path></svg>
`;
this.searchSelectDeleteItemClicked = false;
this.searchSelectCss =
`<style>
div.${this.searchSelectClassName}{
position: absolute;
z-index: ${this.parentDOM.style.zIndex === "" ? "auto": parseInt(this.parentDOM.style.zIndex) + 100};
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 0;
margin-top: ${this.parentDOM.getBoundingClientRect().bottom+this.css.PaddingTop}px;
}
div.${this.searchSelectClassNameHide}{
display: none;
}
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName}{
width: ${this.parentDOM.getBoundingClientRect().width}px;
margin-left: ${this.parentDOM.getBoundingClientRect().left}px;
max-height: 200px;
overflow-x: hidden;
overflow-y: auto;
padding: 5px 0;
background-color: #fff;
box-sizing: border-box;
border-radius: 4px;
box-shadow: 0 1px 6px rgb(0 0 0 / 20%);
position: absolute;
z-index: inherit;
left: 0;
}
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName} li{
margin: 0;
line-height: normal;
padding: 7px 16px;
clear: both;
color: #515a6e;
font-size: 14px!important;
list-style: none;
cursor: pointer;
transition: background .2s ease-in-out;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
padding-right: 32px;
}
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName} li:hover{
background-color: rgba(0, 0, 0, .1);
}
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName} .none{
padding: 0 16px;
text-align: center;
color: #ccc;
}
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName} .active{
color: #57a3f3;
}
/*定义滚动条高宽及背景
高宽分别对应横竖滚动条的尺寸*/
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName}::-webkit-scrollbar {
width: 5px;
height: 5px;
background-color: #fff;
}
/*定义滚动条轨道
内阴影+圆角*/
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName}::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3);
border-radius: 2px;
background-color: #fff;
}
/*定义滑块
内阴影+圆角*/
div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName}::-webkit-scrollbar-thumb {
border-radius: 2px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3);
background-color: #ccc;
}
@keyframes searchSelectFalIn {
from {
opacity: 0;
display:none;
}
to {
display:block;
opacity: 1;
}
}
@keyframes searchSelectFalOut {
from {
display:block;
opacity: 1;
}
to {
opacity: 0;
display:none;
}
}
</style>`;
if(document.querySelector(`.${this.searchSelectClassName}`) == null){
document.body.appendChild(this.parseTextToDOM(this.searchSelectHTML));
document.body.appendChild(this.parseTextToDOM(this.searchSelectCss));
};
this.setParentEvent();
this.setItemEvent();
if(this.showList.length !== 0){
this.update(this.showList);
}
};
parseTextToDOM(arg) {
arg = arg.replace(/^[\n|\s]*/g,'').replace(/[\n|\s]*$/g,''); /* 去除前后的换行和空格 */
var objE = document.createElement("div");
objE.innerHTML = arg;
var result = objE.childNodes.length == 1 ? objE.childNodes[0] :objE.childNodes;
return result;
};
addSearching(){
document.querySelector(`ul.${this.searchSelectHintClassName}`).appendChild(this.parseTextToDOM(`<li class="searching">正在搜索中...</li>`));
};
removeSearching(){
document.querySelector(`ul.${this.searchSelectHintClassName} .searching`)?.remove();
};
update(data){ /* 更新页面显示的搜索结果 */
if( !(data instanceof Array) ){
console.log(data);
throw "传入的数据不是数组";
};
this.showList = this.arrayDistinct(data);
document.querySelectorAll(`ul.${this.searchSelectHintClassName} li`).forEach( item =>{
item?.remove();
});
let that = this;
var parentUlDOM = document.querySelector(`ul.${this.searchSelectHintClassName}`);
if(this.showList.length === 0 ){
this.clear();
if(this.parentDOM.value === ""){
document.querySelectorAll(`ul.${this.searchSelectHintClassName} li`).forEach( item =>{
item?.remove();
});
this.list.forEach( (item,index)=>{
parentUlDOM.appendChild(this.parseTextToDOM(`<li class="item" data-id="${index}">${item}${that.searchSelectDeleteItemHTML}</li>`));
});
this.setItemEvent();
}else{
this.parentDOM.dispatchEvent(new Event("focus"));
}
}else{
this.showList.forEach( (item,index)=>{
parentUlDOM.appendChild(this.parseTextToDOM(`<li class="item" data-id="${index}">${item}${that.searchSelectDeleteItemHTML}</li>`));
});
this.setItemEvent();
}
};
arrayDistinct(data){
/* 数组去重 */
var result = [];
data = new Set(data);
for(let item of data.values()){
result = [item,...result];
};
return result;
};
clear(){
this.showList = [];
document.querySelectorAll(`ul.${this.searchSelectHintClassName} li`).forEach( item =>{
item?.remove();
});
document.querySelector(`ul.${this.searchSelectHintClassName}`)?.appendChild(this.parseTextToDOM(this.searchSelectHTMLNoData));
};
hide(){
document.querySelector(`div.${this.searchSelectClassName}`)?.setAttribute("style","display: none;");
};
show(){
document.querySelector(`div.${this.searchSelectClassName}`)?.removeAttribute("style");
};
setParentValue(value){
this.parentDOM.value = value;
};
setParentEvent(){
let that = this;
function _focus_event_(event){
// event.stopPropagation();
document.querySelector(`div.${that.searchSelectClassName}`).setAttribute("style",`
-moz-animation: searchSelectFalIn ${that.css.falInDuration}s 1 ${that.css.falInTiming};
-webkit-animation: searchSelectFalIn ${that.css.falInDuration}s 1 ${that.css.falInTiming};
-o-animation: searchSelectFalIn ${that.css.falInDuration}s 1 ${that.css.falInTiming};
-ms-animation: searchSelectFalIn ${that.css.falInDuration}s 1 ${that.css.falInTiming};
`);
/* setTimeout(()=>{
document.querySelector(`div.${that.searchSelectClassName}`).removeAttribute("style");
},that.css.falInDuration*1000); */
//Fade.fadeIn(document.querySelector(`div.${that.searchSelectClassName}`,40));
};
function _blur_event_(event){
//event.stopPropagation();
setTimeout(() => {
if(that.searchSelectDeleteItemClicked){
return;
}
document.querySelector(`div.${that.searchSelectClassName}`).setAttribute("style",`
-moz-animation: searchSelectFalOut ${that.falOutDuration}s 1 ${that.falOutTiming};
-webkit-animation: searchSelectFalOut ${that.falOutDuration}s 1 ${that.falOutTiming};
-o-animation: searchSelectFalOut ${that.falOutDuration}s 1 ${that.falOutTiming};
-ms-animation: searchSelectFalOut ${that.falOutDuration}s 1 ${that.falOutTiming};
`);
setTimeout(()=>{
document.querySelector(`div.${that.searchSelectClassName}`).setAttribute("style","display:none;");
},that.falOutDuration*1000);
}, 100);
}
async function _propertychange_event_(event){
that.parentDOM.dispatchEvent(new Event("focus"));
var getListResult = await that.getList(event.target.value);
that.update(getListResult);
}
this.parentDOM?.setAttribute("autocomplete","off");/* 禁用输入框自动提示 */
this.parentDOM.addEventListener("focus",function(event){
_focus_event_(event);
},true);
this.parentDOM.addEventListener("click",function(event){
event.target.dispatchEvent(new Event("focus"));
},true);
this.parentDOM.addEventListener("blur",function(event){
_blur_event_(event);
},false);
this.parentDOM.addEventListener("input",function(event){
_propertychange_event_(event);
},true);
};
setItemEvent(){
let that = this;
document.querySelectorAll(`div.${this.searchSelectClassName} ul.${this.searchSelectHintClassName} li`).forEach( (item,index)=>{
((v,i)=>{
v.addEventListener("click",function(event){
event.stopPropagation();
that.searchSelectDeleteItemClicked = false;
that.parentDOM.dispatchEvent(new Event("focus"));
if(event.target.localName === "li"){
that.parentDOM.value = this.innerText;
that.parentDOM.dispatchEvent(new Event("blur"));
}else{
that.searchSelectDeleteItemClicked = true;
var dataId = parseInt(v.getAttribute("data-id"));
console.log("删除 "+that.showList[dataId]);
that.list.forEach( (item,index)=>{
if(item === this.innerText){
that.list.splice(index,1);
return;
}
});
that.showList.splice(dataId,1);
v.remove();
document.querySelectorAll(`ul.${that.searchSelectHintClassName} li`).forEach( (item,index)=>{
item.setAttribute("data-id",index);
});
that.list = that.list;
that.showList = that.showList;
GM_setValue("search_history",that.list);
}
},true);
})(item,index)
})
};
getList(text){
var event = {};
var that = this;
event.userInputText = text;
event.target = this.parentDOM;
event.list = this.list;
event.showList = this.showList;
this.addSearching();
return new Promise( res=>{
var result = that.inputValueChangeEvent(event);
if(this.parentDOM.value !== "" && result.length == 0){
this.parentDOM.dispatchEvent(new Event("focus"));
}
that.removeSearching();
res(result);
})
}
}
if (GM_getValue("v19") && location.href.match(mt_config.rexp.search_url)) {
GM_addStyle(`
#comiis_search_noe{
display: none !important;
}
#comiis_search_two{
display: block !important;
}
`);
var searchHistoryList = await GM_getValue("search_history",[]);
new searchSelect({
parentDOM:document.querySelector("#scform_srchtxt"),
list:searchHistoryList,
inputValueChangeEvent:(event)=>{
var result = [];
event.userInputText = event.userInputText.trim();
if(event.userInputText == ""){
return result;
};
event.list.forEach( item =>{
if(item.match(event.userInputText.replace(/[\-\/\\\^\$\*\+\?\.\(\)\|\[\]\{\}]/g, '\\$&'))){
result = [item,...result];
}
})
return result;
}
});
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);
let classifyClassNameDict = {
"求助问答": {
"className": "gm_user_select_help",
"optionHTML": `<option value="0" selected="selected">请选择</option>
<option value="59">求助问答</option>
<option value="58">已解决</option>`
},
"建议反馈": {
"className": "gm_user_select_feedback",
"optionHTML": `<option value="0" selected="selected">请选择</option>
<option value="62">BUG反馈</option>
<option value="63">意见反馈</option>
<option value="65">论坛问题</option>
<option value="64">已解决</option>`
},
"站务专区": {
"className": "gm_user_select_depot",
"optionHTML": `<option value="0" selected="selected">请选择</option>
<option value="42">版主申请</option>
<option value="43">职位调整</option>`
}
}
if (classifyClassNameDict[section_dict[fid]]) {
if ($jq(".comiis_post_from .styli_tit:contains('分类')").length) {
$jq(".comiis_post_from .styli_tit:contains('分类')").parent().remove();
}
$jq(".comiis_stylino.comiis_needmessage").before($jq(`
<li class="comiis_styli comiis_flex b_b ${classifyClassNameDict[section_dict[fid]]["className"]}">
<div class="styli_tit f_c">分类</div>
<div class="flex comiis_input_style">
<div class="comiis_login_select">
<span class="inner">
<i class="comiis_font f_d"></i>
<span class="z">
<span class="comiis_question" id="typeid_name">请选择</span>
</span>
</span>
<select id="typeid" name="typeid">
${classifyClassNameDict[section_dict[fid]]["optionHTML"]}
</select>
</div>
</div>
</li>
`));
} else {
Object.keys(classifyClassNameDict).forEach(function (key) {
$jq(".comiis_post_from ." + classifyClassNameDict[key]["className"]).remove();
})
}
$jq('#postform').attr('action', postSection);
});
} else {
selectNode.attr("disabled", true);
}
selectNode.val(currentSection).trigger('change');
},
setDynamicAvatar() {
/* 设置动态头像 */
if (!window.location.href.match(mt_config.rexp.data_setting_url) ||
!GM_getValue("v51", false)) {
return
}
let formhash = $jq(".sidenv_exit a:nth-child(1)").attr("href").match(/formhash=([0-9a-zA-Z]+)/);
let uid = $jq(".sidenv_exit a:nth-child(2)").attr("href").match(/uid=([0-9]+)/);
let bigStatus = false;
let mediumStatus = false;
let smallStatus = false;
formhash = formhash[formhash.length - 1];
uid = uid[uid.length - 1];
let dynamicAvater = $jq(`
<a href="javascript:;" class="comiis_flex comiis_edit_dynamic_avatar comiis_styli bg_f b_t cl">
<div class="flex">修改动态头像</div>
<img style="
float: right;
width: 30px;
height: 30px;
border-radius: 50%;
overflow: hidden;
" src="https://avatar-bbs.mt2.cn/uc_server/avatar.php?uid=${uid}&size=big&ts=1" class="kmtximg">
<img style="
float: right;
width: 30px;
height: 30px;
border-radius: 50%;
overflow: hidden;
margin-left: 10px;
margin-right: 10px;
" src="https://avatar-bbs.mt2.cn/uc_server/avatar.php?uid=${uid}&size=middle&ts=1" class="kmtximg">
<img style="
float: right;
width: 30px;
height: 30px;
border-radius: 50%;
overflow: hidden;
" src="https://avatar-bbs.mt2.cn/uc_server/avatar.php?uid=${uid}&size=small&ts=1" class="kmtximg">
<div class="styli_ico"><i class="comiis_font f_e"></i></div>
</a>
`);
function getStatus() {
return bigStatus && mediumStatus && smallStatus;
}
function getPCUploadNewAvater() {
return new Promise(res => {
GM_xmlhttpRequest({
url: "https://bbs.binmt.cc/home.php?mod=spacecp&ac=avatar",
method: "GET",
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) {
res(resp.responseText)
},
onerror: function () {
popup2.toast("网络异常,请重新获取");
res("");
}
})
})
}
$jq(".comiis_edit_avatar").after(dynamicAvater);
dynamicAvater.on("click", () => {
popup2.confirm({
text: `
<style>.comiis_tip{width: 80vw;}</style>
<p style="padding: 10px 0px;">修改动态头像</p>
<div style="height: 45vh;overflow: auto;">
<div style="display: inline-grid;justify-items: start;width: -webkit-fill-available;">
<p style="float: left;font-weight: bold;">1. 电脑版帖内头像: 200×250 </p>
<p class="status" style="padding: 0px;padding-left: 10px;font-weight: bold;width: -webkit-fill-available;text-align: left;">🤡请先上传图片</p>
<input type="file" id="comiis_file_dynamic_avater_big" data-maxwidth=200 data-maxheight=250 style="margin: 20px 0px;" accept="image/*">
</div>
<div style="display: inline-grid;justify-items: start;width: -webkit-fill-available;">
<p style="float: left;font-weight: bold;">2. 一般通用的头像: 120×120 </p>
<p class="status" style="padding: 0px;padding-left: 10px;font-weight: bold;width: -webkit-fill-available;text-align: left;">🤡请先上传图片</p>
<input type="file" id="comiis_file_dynamic_avater_medium" data-maxwidth=120 data-maxheight=120 style="margin: 20px 0px;" accept="image/*"></div>
<div style="display: inline-grid;justify-items: start;width: -webkit-fill-available;">
<p style="float: left;font-weight: bold;">3. 电脑版右上角小头像: 48×48 </p>
<p class="status" style="padding: 0px;padding-left: 10px;font-weight: bold;width: -webkit-fill-available;text-align: left;">🤡请先上传图片</p>
<input type="file" id="comiis_file_dynamic_avater_small" data-maxwidth=48 data-maxheight=48 style="margin: 20px 0px;" accept="image/*"></div>
</div>
`,
mask: true,
only: true,
ok:{
text: "上传",
callback: async () => {
if (!getStatus()) {
popup2.toast("图片校验不通过");
return;
}
popup2.mask_loading_show();
popup2.toast("正在处理数据中...");
let baseBig = await Utils.asyncFileToBase64($jq("#comiis_file_dynamic_avater_big").prop('files')[0]);
let baseMedium = await Utils.asyncFileToBase64($jq("#comiis_file_dynamic_avater_medium").prop('files')[0]);
let baseSmall = await Utils.asyncFileToBase64($jq("#comiis_file_dynamic_avater_small").prop('files')[0]);
let base64Arr = [baseBig, baseMedium, baseSmall];
const dataArr = base64Arr.map(str => str.substr(str.indexOf(",") + 1)); //拿到3个头像的Base64字符串
let data_resp = await getPCUploadNewAvater();
if (data_resp == "") {
popup2.toast("获取PC数据失败");
popup2.mask_close();
return
}
let data = data_resp.match(/var[\s]*data[\s]*=[\s]*"(.+?)"/);
if (data == null || data.length != 2) {
popup2.toast("获取变量-data失败");
popup2.mask_close();
return
}
data = data[data.length - 1];
let data_split = data.split(",");
let uploadUrl = data_split[data_split.indexOf("src") + 1].replace('images/camera.swf?inajax=1', 'index.php?m=user&a=rectavatar&base64=yes');
let formData = new FormData();
formData.append("Filedata", "");
formData.append("avatar1", dataArr[0]);
formData.append("avatar2", dataArr[1]);
formData.append("avatar3", dataArr[2]);
formData.append("formhash", formhash);
GM_xmlhttpRequest({
url: uploadUrl,
method: "POST",
data: formData,
headers: {
"origin": "https://bbs.binmt.cc",
"referer": "https://bbs.binmt.cc/home.php?mod=spacecp&ac=avatar",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"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 text = resp.responseText;
if (text.indexOf("window.parent.postMessage('success','*')") != -1) {
popup2.toast("上传成功");
popup2.confirm_close();
setTimeout(() => {
window.location.reload();
}, 1500);
} else {
popup2.toast(text);
}
},
onerror: function () {
popup2.toast("网络异常,请重新获取");
}
})
},
},
});
});
$jq(document).on("change", "#popup2-confirm input[type='file']", function () {
let fileObj = $jq(this);
if (fileObj.prop('files').length == 0) {
return
};
let statusObj = fileObj.parent().find(".status");
let maxWidth = parseInt(fileObj.attr("data-maxwidth"));
let maxHeight = parseInt(fileObj.attr("data-maxheight"));
statusObj.text("🤡获取尺寸大小中...");
let uploadImageFile = fileObj.prop('files')[0];
let tmpImage = new Image();
let reader = new FileReader();
reader.readAsDataURL(uploadImageFile);
reader.onload = function (e) {
tmpImage.src = e.target.result;
tmpImage.onload = function () {
if (fileObj.attr("id") == "comiis_file_dynamic_avater_big") {
if (this.width > maxWidth || this.height > maxHeight) {
bigStatus = false;
fileObj.val("");
statusObj.text("🤡校验失败,图片尺寸不符合 " + this.width + "×" + this.height);
return
}
bigStatus = true;
} else if (fileObj.attr("id") == "comiis_file_dynamic_avater_medium") {
if (this.width > maxWidth || this.height > maxHeight) {
mediumStatus = false;
fileObj.val("");
statusObj.text("🤡校验失败,图片尺寸不符合 " + this.width + "×" + this.height);
return
}
mediumStatus = true
} else {
if (this.width > maxWidth || this.height > maxHeight) {
smallStatus = false;
fileObj.val("");
statusObj.text("🤡校验失败,图片尺寸不符合 " + this.width + "×" + this.height);
return
}
smallStatus = true;
}
statusObj.text("🤣 通过 " + this.width + "×" + this.height);
}
}
});
$jq("#comiis_file_dynamic_avater_big").on("change", function () {
let maxWidth = 200;
let maxHeight = 250;
let uploadImageFile = this.files[0];
let tmpImage = new Image();
let reader = new FileReader();
reader.readAsDataURL(uploadImageFile);
reader.onload = function (e) {
tmpImage.src = e.target.result;
tmpImage.onload = function () {
if (this.width > maxWidth || this.height > maxHeight) {
$jq("#comiis_file_dynamic_avater_big").val("");
popup2.toast({
"text": "图片尺寸超出,当前宽:" + this.width + " 高:" + this.height,
"delayTime": 4000
});
return
}
}
}
})
$jq("#comiis_file_dynamic_avater_medium").on("change", function () {
let maxWidth = 120;
let maxHeight = 120;
let uploadImageFile = this.files[0];
let tmpImage = new Image();
let reader = new FileReader();
reader.readAsDataURL(uploadImageFile);
reader.onload = function (e) {
tmpImage.src = e.target.result;
tmpImage.onload = function () {
if (this.width > maxWidth || this.height > maxHeight) {
$jq("#comiis_file_dynamic_avater_medium").val("");
popup2.toast({
"text": "图片尺寸超出,当前宽:" + this.width + " 高:" + this.height,
"delayTime": 4000
});
return
}
}
}
})
$jq("#comiis_file_dynamic_avater_small").on("change", function () {
let maxWidth = 48;
let maxHeight = 48;
let uploadImageFile = this.files[0];
let tmpImage = new Image();
let reader = new FileReader();
reader.readAsDataURL(uploadImageFile);
reader.onload = function (e) {
tmpImage.src = e.target.result;
tmpImage.onload = function () {
if (this.width > maxWidth || this.height > maxHeight) {
$jq("#comiis_file_dynamic_avater_small").val("");
popup2.toast({
"text": "图片尺寸超出,当前宽:" + this.width + " 高:" + this.height,
"delayTime": 4000
});
return
}
}
}
})
},
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 {
popup2.toast("获取页失败");
res(0);
}
} else {
popup2.toast("请求最先签到的页失败");
res(0);
}
},
onerror: function (resp) {
console.log(resp);
popup2.toast("网络异常,请重新获取");
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&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&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);
popup2.toast(`${mt_uid}已复制`);
console.log("复制:", mt_uid)
} catch (err) {
popup2.toast(`${mt_uid}复制失败`);
console.log("复制失败:" + mt_uid, err);
}
}
mtUidDomInsertElement.parentElement.append(uid_control);
}
}
})
console.log("成功找到帖子DOM");
clearInterval(findSetInval);
} else {
findUserFormListNums += 1;
}
}, 800)
}
},
async showSpaceContreteReply() {
/* 显示空间-帖子-具体回复 */
if (!window.location.href.match(mt_config.rexp.space_post) ||
!GM_getValue("v52")) {
return;
}
function getPCReply() {
/* 获取PC端的回复内容 */
return new Promise(res => {
GM_xmlhttpRequest({
url: window.location.href,
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 pageHTML = $jq(r.responseText);
let form = pageHTML.find("#delform tr.bw0_all+tr");
let arrayData = [];
Array.from(form).forEach((v, i) => {
let replyData = [];
let tdHTML = $jq($jq(v).find("td"));
let value = tdHTML?.html().replace(/^ /, '');
replyData = replyData.concat(value);
let nextHTML = $jq(v).next();
for (let j = 0; j < pageHTML.find("#delform tr")?.length; j++) {
if (nextHTML.attr("class") === "bw0_all" || nextHTML.length == 0) {
break;
}
let nextTdHTML = nextHTML?.find("td");
let nextValue = nextTdHTML?.html().replace(/^ /, '');
replyData = replyData.concat(nextValue);
nextHTML = nextHTML.next();
}
arrayData.push(replyData);
})
res(arrayData);
},
onerror: () => {
console.log("网络异常,获取PC回复失败");
popup2.toast("网络异常,获取PC回复失败");
res(null);
}
})
})
}
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;
}
var pcReplyArray = await getPCReply();
if (pcReplyArray == null) {
return
};
let formList = getFormList();
GM_addStyle(`
div.contrete-reply{
padding: 5px 10px;
border-top: 1px solid #f3f3f3;
}
div.contrete-reply a{
margin: 0px 10px;
}
`);
Array.from(formList).forEach((v, i) => {
Array.from(pcReplyArray[i]).forEach((v2, i2) => {
$jq(v).append($jq(`<div class="contrete-reply">${v2}</div>`))
})
})
},
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 ? '设置-开启' : '设置-关闭';
popup2.toast(showText);
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>' +
'<option value="v51">上传动态头像<\/option>' +
'<option value="v52">空间-帖子-显示具体回复内容<\/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);
Utils.tryCatch(setSelectNodeCSS);
Utils.tryCatch(setLastClickItem);
Utils.tryCatch(setCodeNodeClickEvent);
Utils.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() {
/* 这是入口 */
if (!Utils.discuzEnvIsMobile()) {
console.log("PC端显示");
Utils.tryCatch(pc.repairPCNoLoadResource);
$jq(document).ready(function () {
Utils.tryCatch(pc.main);
});
} else {
console.log("移动端显示");
$jq(document).ready(function () {
Utils.tryCatch(mobile.main);
})
}
};
if (envCheck()) {
$jq(document).ready(function () {
entrance();
console.log(`执行完毕,耗时${Date.now()-mt_config.GMRunStartTime}ms`);
});
}
})();