CL_AutoReply_102.4s

草榴102.4秒自动回复

  1. // ==UserScript==
  2. // @name CL_AutoReply_102.4s
  3. // @description 草榴102.4秒自动回复
  4. // @include http://t66y.com/*
  5. // @include http://cl.bearhk.info/*
  6. // @include http://cl.1024live.org/*
  7. // @include http://cl.yaocl.me/*
  8. // @author 1024
  9. // @version 1.0.2.4
  10. // @grant none
  11. // @namespace https://greasyfork.org/zh-CN/scripts/10038-cl-autoreply-102-4s
  12. // ==/UserScript==
  13.  
  14. function addStyle(css) {
  15. document.head.appendChild(document.createElement("style")).textContent = css;
  16. }
  17. addStyle("#autoReply{margin-left:800px}");
  18. var rou = ["%D0%BB%D0%BB%B7%D6%CF%ED", "%B8%D0%D0%BB%C2%A5%D6%F7%B5%C4%B7%D6%CF%ED", "%B8%D0%D0%BB%B7%D6%CF%ED", "%B8%D0%D0%BB%C2%A5%D6%F7%B7%D6%CF%ED", "%D6%A7%B3%D6%D2%BB%CF%C2", "%D0%BB%D0%BB%B7%D6%CF%ED", "%B8%D0%D0%BB%C2%A5%D6%F7%B5%C4%B7%D6%CF%ED", "%B8%D0%D0%BB%B7%D6%CF%ED", "%B8%D0%D0%BB%C2%A5%D6%F7%B7%D6%CF%ED", "%D6%A7%B3%D6%D2%BB%CF%C2"];
  19. var kinds = ["7", "7", "7", "7", "7", "2", "2", "2", "15", "15", "4", "16", "16", "16", "8", "20", "20", "20"];
  20. var ede;
  21.  
  22. function runAutoreply() {
  23. clearTimeout(ede);
  24. var thisFid = kinds[Math.floor(kinds.length * Math.random())];
  25. var pages = Math.ceil(10 * Math.random());
  26. var fidListurl = "http://" + window.location.hostname + "/thread0806.php?fid=" + thisFid + "&search=&page=" + pages;
  27. var getFidList = new XMLHttpRequest();
  28. getFidList.open("GET", fidListurl, true);
  29. getFidList.send(null);
  30. setListPowerTimeout = setTimeout(function () {
  31. console.log("请等待102.4秒后重试……");
  32. getFidList.abort();
  33. runAutoreply();
  34. }, 102400);
  35. getFidList.onreadystatechange = function () {
  36. if (getFidList.readyState == 4) {
  37. if (getFidList.status == 200) {
  38. console.log("顺利进入 fid" + thisFid + " 的第 " + pages + " 页,取消前面设置的强制延时,开始随机获取主题信息");
  39. clearTimeout(setListPowerTimeout);
  40. var reTextTxt = getFidList.responseText;
  41. var tr2n = (pages == 1) ? reTextTxt.split('>��ͨ���}<')[1] : reTextTxt.split('>����l��</td')[reTextTxt.match(/>����l��<\/td/g).length];
  42. var tdthis = tr2n.match(/<h3>.*?<\/h3>/g)[Math.ceil(90 * Math.random())];
  43. var tid = tdthis.match(/tid=\d{6,}|\d{6,}\.html/)[0].match(/\d+/)[0];
  44. var tdtitle = tdthis.match(/">(.*)?<\//)[1];
  45. var td_content = rou[Math.floor(rou.length * Math.random())];
  46. var dataa = "atc_money=0&atc_rvrc=0atc_usesign=1&atc_convert=1&atc_autourl=1&atc_title=Re:" + tdtitle + "&atc_content=" + td_content + "&step=2&action=reply&fid=" + thisFid + "&tid=" + tid + "&editor=0&atc_attachment=none&pid=&article=&verify=verify"; // + (thisFid == "7" ? "3de7ee9f" : "verify");
  47. console.log("主题信息获取成功,开始回复主题" + tid);
  48. var urll = "http://" + window.location.hostname + "/post.php?";
  49. var myPost = new XMLHttpRequest();
  50. myPost.open("POST", urll, true);
  51. myPost.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  52. myPost.setRequestHeader("Content-length", dataa.length);
  53. myPost.setRequestHeader("Connection", "close");
  54. myPost.send(dataa);
  55. setPostPowerTimeout = setTimeout(function () {
  56. console.log("请等待102.4秒后重试……");
  57. myPost.abort();
  58. getFidList.abort();
  59. runAutoreply();
  60. }, 102400);
  61. myPost.onreadystatechange = function () {
  62. if (myPost.readyState == 4) {
  63. if (myPost.status == 200) {
  64. console.log("服务器响应顺利,取消前面设置的强制延时");
  65. clearTimeout(setPostPowerTimeout);
  66. var res = myPost.responseText;
  67. if (res.indexOf("�l�N�ꮅ�c���M�����}�б�") != -1) {
  68. var jyy = new Date();
  69. var recardTime = jyy.getTime();
  70. var edwwq = jyy.toLocaleTimeString();
  71. console.log("您于 " + edwwq + " 回复成功...102.4秒后重试");
  72. localStorage["recardTime"] = recardTime;
  73. ede = setTimeout(runAutoreply, 102400);
  74. } else if (res.indexOf("��ˮ�A���C���ѽ����_����1024��Ȳ��ܰl�N") != -1) {
  75. console.log("发贴时间未到...102.4秒后重试");
  76. ede = setTimeout(runAutoreply, 102400);
  77. } else if (res.indexOf("�Ñ��M���ޣ������ٵ��Ñ��Mÿ������ܰl 10 ƪ����.") != -1) {
  78. console.log("新人每天回复不能超过10帖");
  79. document.getElementById("autoReply").checked = false;
  80. localStorage['autoReplybox'] = "false";
  81. } else {
  82. console.log("回复响应出错,要求重新登录");
  83. alert("请尝试重新登录")
  84. }
  85. }
  86. }
  87. }
  88. }
  89. }
  90. }
  91. }
  92.  
  93. //添加按钮
  94. var replySpan = document.createElement("span");
  95. replySpan.innerHTML = "CL_AutoReply_102.4s";
  96. var autoReplybox = document.createElement("input");
  97. autoReplybox.type = "checkbox";
  98. autoReplybox.id = "autoReply";
  99. autoReplybox.title = "选中此项,启动自动回复,否则,关闭自动回复";
  100. autoReplybox.checked = !localStorage.autoReplybox || localStorage.autoReplybox == "false" ? false : true;
  101. autoReplybox.addEventListener('click', function () {
  102. localStorage['autoReplybox'] = document.getElementById("autoReply").checked;
  103. }, true);
  104. document.querySelector(".banner").appendChild(autoReplybox);
  105. document.querySelector(".banner").appendChild(replySpan);
  106.  
  107. if (document.getElementById("autoReply").checked) {
  108. var nrt = new Date();
  109. var nowTime = nrt.getTime();
  110. var edwww = nrt.toLocaleTimeString();
  111. var lastTime = localStorage.recardTime ? localStorage.recardTime : 0;
  112. var tbt = nowTime - lastTime;
  113. if (tbt > 102400) {
  114. runAutoreply();
  115. } else {
  116. clearTimeout(ede);
  117. console.log("现在是 " + edwww + ",上次回复是" + tbt + "毫秒前");
  118. ede = setTimeout(runAutoreply, 102400 - tbt);
  119. }
  120. }