您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
进入到讨论区,填写大佬名字,点击页面上的“开始复读”按钮,自动将大佬的20道最新讨论题答案抄过来提交。如果大佬还没回答就抄第一个回答的人,如果还没人回答就下一题
// ==UserScript== // @name 超星学习通-讨论自动复读 // @version 0.32 // @description 进入到讨论区,填写大佬名字,点击页面上的“开始复读”按钮,自动将大佬的20道最新讨论题答案抄过来提交。如果大佬还没回答就抄第一个回答的人,如果还没人回答就下一题 // @match *://*.chaoxing.com/bbscircle/grouptopic?* // @match *://*.chaoxing.com/bbscircle/gettopicdetail?* // @author duya12345 // @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js // @grant GM_setValue // @grant GM_getValue // @namespace https://greasyfork.org/users/517463 // ==/UserScript== //本代码测试环境为谷歌浏览器,有同学反映qq浏览器上无法看到按钮,作者表示暂时找不到原因,建议更换浏览器 var $ = unsafeWindow.jQuery; var done_times = GM_getValue("done_times"); var your_name = GM_getValue("your_name");//不用填了,自动获取 var list_length = GM_getValue("list_length"); var dalao_name = GM_getValue("dalao_name");//大佬的名字,此项可以留空,即所有答案都抄第一个回答的 function if_referred_other(url)//判断是不是刚进讨论页面 { var re = /bbscircle\/grouptopic/m; if(url.match(re) != null){ return true; } return false; } function if_done(){//判断下有没有回答过 var namelist = document.getElementsByClassName("name"); console.log("有"+namelist.length+"人回答过此问题"); for(var i = 0; i < namelist.length; i++){ if(your_name == namelist[i].innerText){ return true; } } return false; } function GetBigGodsAnswer() { //抓一个大佬的答案 var req = GetRequest(); var contentid = "topic_replys_"+req.topicid; var search_str = document.getElementById(contentid).innerHTML; var re1 = new RegExp(dalao_name + "([\\s\\S]+?)</h3>", 'm');//锁定大佬 var re2 = /(?<=<h3([\s\S]+?)>)([\s\S]+?)(?=<\/h3>)/m;//未锁定大佬时:任意回答;锁定大佬时:大佬的回答 var match1 = search_str.match(re2); var match2 = search_str.match(re1); if(match1 == null){//还没人回答 return "uwfigawuyhaofi3r983yhr89f[3h892ryrjq89rff"; } if(if_done(search_str) == true){//找到自己名字了 return "fuhqwaifuhuwaqfbgcuaosjfcdopwtfgn23333333";//瞎打一串不可能出现的content,交给下级判断去 } if(match2 == null){//大佬还没回答 console.log("找到大佬没有回答的题了"); return match1[0];//那就返回第一个回答的 } var match3 = match2[0].match(re2)[0]; var replace_out1 = match3.replace(/<br>/g, "\n"); var replace_out2 = replace_out1.replace(/ /g, " "); return replace_out2; } function GetRequest() {//获取url参数 var url = location.search; var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); var strs = str.split("&"); for(var i = 0; i < strs.length; i ++) { theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); } } return theRequest; } function getAllNoticeAttachment(){//拿上传文件的,用不到,但改了怕出问题先放着 var attachment = ""; var attachmentsByName = document.getElementsByName("attachment"); if (attachmentsByName != null && attachmentsByName.length > 0) { for (var i = 0; i < attachmentsByName.length; i++) { var attachmentA = attachmentsByName[i]; if (attachmentA == null) { continue; } attachment += attachmentA.getAttribute('value') + ","; } } return attachment; } function form_rep_submit(content){//提交函数,直接抄官方的改一改 var req = GetRequest(); var img=$("#images_img_"+req.topicid).find("img"); var str=""; for(var i=0;i<img.size();i++){ var imgsrc=img[i]; if(i==img.size()){ str=str+imgsrc.src.replace("100_100","origin"); }else{ str=str+imgsrc.src.replace("100_100","origin")+","; } } if(content=="fuhqwaifuhuwaqfbgcuaosjfcdopwtfgn23333333"){ console.log("系统检测到此问题已回答"); return false; } else if(content=="uwfigawuyhaofi3r983yhr89f[3h892ryrjq89rff"){ console.log("还没人回答,再等等吧"); return false; } var allAttachment = getAllNoticeAttachment(); $.ajax({ type: "post", url : "/bbscircle/addreply", dataType:'html', data: { clazzid : req.clazzid, topicId : req.topicid, content : content, files : str, cpi : req.cpi, ut : req.ut, attachmentFile:allAttachment, openc : req.openc }, success: function(data){ if (data.indexOf('error') == 0) { alert(data.replace('error;','')); return false; } var div=$("#more_reply_"+req.topicId); data = data.replace(/(^\s*)|(\s*$)/g,""); if(document.getElementById("lastInfo")){ $("#lastInfo").before(data); }else{ var doc = document.getElementById("topic_replys_"+req.topicId); doc.innerHTML += data; } $("#"+req.topicId).val(""); console.log('成功复读'); return true; }, error: function(data){ console.log('???'); return false; } }); } function content_list(i){ var see_all = document.getElementsByClassName("lookall")[parseInt(i/2)]; if(see_all != null){ see_all.click(); } else{ console.log("找不到按钮1"); } } function content_detail(){ var more_button = document.getElementById("more_reply"); if(more_button != null){ console.log("pressed"); more_button.click();//点一下加载更多 } else{ console.log("找不到按钮2"); } window.onload = function(){ var flag = form_rep_submit(GetBigGodsAnswer()); setTimeout(function(){ window.history.back(); if(flag == true){ window.history.back(); } }, 1000); } } function main(i){ var url = window.location.pathname; if(url == "/bbscircle/grouptopic"){ content_list(i); } else{ content_detail(); } } function create_input(){ var my_div = document.createElement("div"); my_div.setAttribute("id", "my_div"); my_div.innerText = "填入大佬名字(如果有的话):"; var inner_pos = document.getElementsByClassName("title1118")[0]; inner_pos.after(my_div); var name_text = document.createElement("input"); name_text.setAttribute("type", "input") name_text.setAttribute("id", "name_text"); my_div.append(name_text); } function create_button(){ var button = document.createElement("input"); button.setAttribute("type", "button"); button.setAttribute("value", "开始复读"); button.setAttribute("id", "start_button"); button.style.width = "80px"; button.style.height = "30px"; button.style.align = "center"; button.style.marginLeft = "0px"; button.style.marginBottom = "0px"; button.style.background = "#b46300"; button.style.border = "1px solid #b46300"; button.style.color = "white"; var inner_pos = document.getElementById("name_text"); inner_pos.after(button); $("#start_button").click(function() { button_click(); }); var button2 = document.createElement("input"); button2.setAttribute("type", "button"); button2.setAttribute("value", "结束复读"); button2.setAttribute("id", "start_button2"); button2.style.width = "80px"; button2.style.height = "30px"; button2.style.align = "center"; button2.style.marginLeft = "0px"; button2.style.marginBottom = "0px"; button2.style.background = "#b00000"; button2.style.border = "1px solid #b00000"; button2.style.color = "white"; var inner_pos2 = document.getElementById("start_button"); inner_pos2.after(button2); $("#start_button2").click(function() { button_click2(); }); } function button_click() { GM_setValue("done_times", 0); your_name = document.getElementsByClassName("zt_u_name")[0].innerText; GM_setValue("your_name", your_name); list_length = document.getElementsByClassName("lookall").length; GM_setValue("list_length", list_length); dalao_name = document.getElementById("name_text").value; GM_setValue("dalao_name", dalao_name); location.reload(); } function button_click2() { GM_setValue("done_times", list_length*2); location.reload(); } (function() { 'use strict'; if(window.location.pathname == "/bbscircle/grouptopic"){//done_times == list_length*2 create_input(); create_button(); } if(if_referred_other(document.referrer) == false && done_times > 0){//防止上次没跑完,导致下次进来的时候直接继续跑 done_times = 2*list_length; } if(done_times < 2*list_length){ setTimeout(function() { main(done_times); }, 800); GM_setValue("done_times", ++done_times); } })();