学习通自动复读大佬的回答

这个学期,我们有门课的老师一上课就在学习通里面发布几十个讨论,最后大家基本都是看着前几个回答的一通复制粘贴,故想做一个自动复读的油猴插件

首先,看一下大概的工作流程:在*://*.chaoxing.com/bbscircle/grouptopic?*页面上获取到最新的二十个讨论题链接,依次点击进入,来到*://*.chaoxing.com/bbscircle/gettopicdetail?*页面上,找到指定大佬,正则匹配一下找到大佬的回答,将回答打包进ajax提交

 

说一下碰到的几个对js萌新(我)来说棘手的问题

第一个问题:正则的时候,js有两种正则初始化方式,如何使用

re = new RegExp("ab", 'g');
re = /ab/g;

这两句简单的正则是等价的,再复杂一点呢?

var re2 = new RegExp("(?<=<h3)([\\s\\S]+?)(?=</h3>)", 'm');
var re2 = /(?<=<h3)([\s\S]+?)(?=<\/h3>)/m;

可以看到,对转义的定义是不一样的,需要注意

那么再加入变量呢?

var re = new RegExp(setting.dalao_name + "([\\s\\S]+?)</h3>", 'm');

可以看到,第二种方法就无法将变量加入,只能使用函数方法

 

 

第二个碰到的问题:正则匹配的时候对html字符进行匹配,但是没有出来任何结果

这个是比较简单的问题,原因是我在提取div内容的时候用的是innerTEXT函数,这样返回结果不包含html字符,应使用innerHTML

 

第三个问题:在网页跳转的时候,程序会被自动重启,变量将全部初始化,如何计数让网页跳转40次后停下

这里我用到了油猴提供的GM_setvalue与GM_getvalue函数,它会将变量写入一个不会随油猴脚本重启而清空的表中,函数调用方法是:

GM_setValue("done_times", ++done_times);
done_times = GM_getValue("done_times");

同时在文件顶部加上

// @grant        GM_setValue
// @grant        GM_getValue

这样就可以将done_times这个变量在跳转网页的时候自加并记录

 

然后贴一下项目的Greasy Fork地址

灰常感谢几位测试员帮我定位了bug,提出了脚本的改进方向!

点赞
  1. 孙烨说道:
    QQbrowser Windows 10
    大佬啊,你这个开头姓名 大佬姓名我也都填了 但是打开学习通讨论区之后,这个插件没任何提示,就像没有启动一样,如果有时间请大佬联系指导一下我的使用 跪谢了 QQ2528825468
  2. WhiteFan说道:
    Google Chrome Windows 10
    都填好了,点开始复读 没有变化啊 :heixian:
    1. 渡鸦12345说道:
      Google Chrome Windows 10
      你好,首先对软件出现的问题表示抱歉(我也是第一次写js脚本233),然后可不可以留一个联系方式,帮忙定位一下问题呢? |´・ω・)ノ
  3. 薛定谔的猫说道:
    Google Chrome Windows 10
    不能用啊,方便的话qq1055228621交流
    1. 还是薛定谔说道:
      Google Chrome Windows 10
      带佬。如果方便的话
      1. 渡鸦12345说道:
        Google Chrome Windows 10
        啊抱歉,现在才看到。刚才试了试在chrome之外的浏览器似乎有问题,然后还有一个在某些机器上会出现的bug刚才修好了,正在添加一些新的功能,明天一起发布
      2. 渡鸦12345说道:
        Google Chrome Windows 10
        现在太晚啦,明天再加你qq吧。还有等新的一版发布,用chrome浏览器试试
  4. Firefox Windows 10
    火狐浏览器不显示
    1. 渡鸦12345说道:
      Google Chrome Windows 10
      抱歉啦~开发环境是Chrome,在别的浏览器上无法保证能够使用呢 >﹏<
  5. 萝卜红说道:
    Google Chrome Windows 8
    大佬 为啥点了复读跳出了讨论列表 就没反应了 也没有自动回复
    1. 渡鸦12345说道:
      Google Chrome Windows 10
      啊由于我不再需要使用这个项目了,所以不再维护啦,只能说在我当时的使用环境下是可以正常使用的,抱歉呀 :weiqv:

发表评论

电子邮件地址不会被公开。必填项已用 * 标注