妖火复读机

妖火论坛每个回复后面加个复读按钮。

目前為 2024-08-04 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name 妖火复读机
  3. // @namespace http://yaohuo.me/
  4. // @supportURL http://blog.zgcwkj.cn
  5. // @version 20240804.02
  6. // @description 妖火论坛每个回复后面加个复读按钮。
  7. // @author zgcwkj
  8. // @match *://yaohuo.me/bbs*
  9. // @match *://www.yaohuo.me/bbs*
  10. // @grant none
  11. // @license MIT
  12. // ==/UserScript==
  13.  
  14. (function () {
  15. //发表回复
  16. window.reply = function (txt) {
  17. //填写内容
  18. let domTextarea = document.querySelector('textarea');
  19. domTextarea.value = txt;
  20. //点击回复按钮
  21. let domInput = document.querySelectorAll('input');
  22. for (let iii = domInput.length - 1; iii > 0; iii--) {
  23. if (domInput[iii].value == '快速回复') {
  24. domInput[iii].click();
  25. break;
  26. }
  27. else if (domInput[iii].value == '发表回复') {
  28. domInput[iii].click();
  29. break;
  30. }
  31. }
  32. }
  33. //注入更多按钮
  34. window.moreReplyBtn = function () {
  35. let moreButn = ['吃', '感谢分享', '刚好需要'];
  36. let domForm = document.querySelector('.recontent');
  37. if (domForm != null) {
  38. let btnHtml = '';
  39. let btnStyle = 'padding:5px;background:#3e933e;border-radius:5px;font-size:14px;color:#fff;';
  40. moreButn.forEach(f => {
  41. btnHtml += ` <a href='javascript:;' style='${btnStyle}' onclick='window.reply("${f}")'>${f}</a>`;
  42. });
  43. domForm.innerHTML = `<div style='margin:0 10px 7px;'>${btnHtml}</div>` + domForm.innerHTML;
  44. }
  45. }
  46. //注入复读按钮
  47. window.repeatBotBtn = function () {
  48. //获取当前主题版本
  49. let isNewLayout = false;
  50. let getNewLayout = localStorage.getItem('customLayoutEnabled');
  51. if (getNewLayout !== null) isNewLayout = JSON.parse(getNewLayout);
  52. let domTxt = {};
  53. if (isNewLayout) domTxt = document.querySelectorAll('.forum-post');//新主题
  54. else domTxt = document.querySelectorAll('.list-reply'); //旧主题
  55. //注入按钮
  56. domTxt.forEach(f => {
  57. let domClassName = 'repeatBotButn';
  58. let domSpan = f.querySelector('.retext');
  59. let isAddReply = domSpan.querySelector(`.${domClassName}`);
  60. if (isAddReply == null) {
  61. let txt = domSpan.textContent;
  62. let btnHtml = ` <a href='javascript:;' class='${domClassName}' onclick='window.reply("${txt}")'>+1</a>`;
  63. domSpan.innerHTML += btnHtml;
  64. }
  65. });
  66. }
  67. //注入更多按钮
  68. window.moreReplyBtn();
  69. //定时注入复读按钮
  70. let repeatTimeStart = true;
  71. if (document.querySelector('textarea') != null) {
  72. setInterval(() => { if (repeatTimeStart) window.repeatBotBtn() }, 1000);
  73. }
  74. //页面焦点事件(也许能减少性能损耗)
  75. document.addEventListener('visibilitychange', function () {
  76. repeatTimeStart = document.visibilityState != 'hidden';
  77. });
  78. })();

QingJ © 2025

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