Greasy Fork is available in English.
妖火论坛每个回复后面加个复读按钮。
当前为
// ==UserScript==
// @name 妖火复读机
// @namespace http://yaohuo.me/
// @supportURL http://blog.zgcwkj.cn
// @version 20240807.01
// @description 妖火论坛每个回复后面加个复读按钮。
// @author zgcwkj
// @match *://yaohuo.me/bbs*
// @match *://www.yaohuo.me/bbs*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
let domTextarea = document.querySelector('textarea');
//发表回复
window.reply = function (txt, face) {
//填写内容
domTextarea.value = txt;
//选择表情
for (let i = 0; i < document.forms.length; i++) {
const form = document.forms[i];
if (form.name == 'f') {
form.face.value = face;
break;
}
}
//点击回复按钮
let domInput = document.querySelectorAll('input');
for (let i = domInput.length - 1; i > 0; i--) {
const btn = domInput[i];
if (btn.value == '快速回复' || btn.value == '发表回复') {
btn.click();
break;
}
}
}
//注入更多按钮
let moreButn = [
{ css: 'background:#3e933e;color:#fff', showText: '吃', text: '吃', face: '', },
{ css: 'background:#a7588d;color:#fffa28', showText: '感谢分享', text: '感谢分享', face: '谢谢.gif' },
{ css: 'background:#3e933e;color:#fff', showText: '哈哈', text: '哈哈', face: '哈哈.gif' },
{ css: 'background:#3e933e;color:#fff', showText: '大佬带带', text: '大佬带带', face: '放电.gif' },
{ css: 'background:#3e933e;color:#fff', showText: '不会了', text: '不会了', face: '哇哦.gif' },
{ css: 'background:#3e933e;color:#fff', showText: '厉害了', text: '厉害了', face: '亲亲.gif' },
];
window.moreReplyBtn = function () {
let domForm = document.querySelector('.recontent');
if (domForm != null) {
//注入按钮
let className = 'moreReplyButn';
let isAddBtn = domForm.querySelector(`.${className}`);
if (isAddBtn == null) {
let btnHtml = '';
let btnStyle = 'padding:5px;border-radius:5px;font-size:14px;';
moreButn.forEach(f => {
btnHtml += ` <a href='javascript:;' class='${className}' style='${btnStyle}${f.css}' onclick='window.reply("${f.text}","${f.face}")'>${f.showText}</a>`;
});
domForm.innerHTML = `<div style='margin:0 10px 7px;'>${btnHtml}</div>` + domForm.innerHTML;
}
}
}
//注入复读按钮
let isNewLayout = false;
let getNewLayout = localStorage.getItem('customLayoutEnabled');
if (getNewLayout !== null) isNewLayout = JSON.parse(getNewLayout);
window.repeatBotBtn = function () {
//获取当前主题版本
let domTxt = {};
if (isNewLayout) domTxt = document.querySelectorAll('.forum-post');//新主题
else domTxt = document.querySelectorAll('.list-reply'); //旧主题
//注入按钮
let className = 'repeatBotButn';
domTxt.forEach(f => {
let domSpan = f.querySelector('.retext');
let isAddBtn = domSpan.querySelector(`.${className}`);
if (isAddBtn == null) {
let txt = domSpan.textContent;
let btnHtml = ` <a href='javascript:;' class='${className}' onclick='window.reply("${txt}")'>+1</a>`;
domSpan.innerHTML += btnHtml;
}
});
}
//检查页面
if (domTextarea != null) {
//定时注入
let repeatTimeStart = true;
setInterval(() => {
if (repeatTimeStart) {
//隐藏提示
var showTipe = document.querySelector('#retip');
if (showTipe != null) showTipe.style.display = 'none';
//注入更多按钮
window.moreReplyBtn();
//注入复读按钮
window.repeatBotBtn();
}
}, 1000);
//页面焦点事件(也许能减少性能损耗)
document.addEventListener('visibilitychange', function () {
repeatTimeStart = document.visibilityState != 'hidden';
});
}
})();