原标题《论如何在ata获得一本书,我不是来要咖啡券的,也不是来讨赞的》

下午收到旺旺推送:

阿里巴巴技术协会:ATA热点推荐2014-06-20 15:56:41
晓白你好!周末送福利啦!鬼道的新书《跨终端 Web》开始预售,这里提供了书的样章和序,欢迎鉴赏。跟帖楼层号在斐波纳挈数列中的能获得书一本,抢楼进行中..... 查看详情

但是等看到的时候…已经5点了… 点开评论楼层,一看,我去…都500多了…

不过记忆中斐波那契数列越往后数值越大越有机会。

(function () {
    var ret = [];
    for (var n = 1, x = 20; n < x; n++) {
        var val = [];
        for (var i = 0; i <= n; ++i) {
            val[i] = 0;
        }
        if (n == 1 || n == 2) {
            ret.push(1);
        }
        else {
            val[1] = 1;
            val[2] = 2;
            for (var i = 3; i <= n; ++i) {
                val[i] = val[i - 1] + val[i - 2];
            }
            ret.push(val[n - 1]);
        }
    }
    return ret;
})();

运行输出:

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]

所以,简单写个脚本,提交到610,就能拿到下一本书了。

手动发了几个回复,观察comment的接口接受的参数,发现没有csrf token,可以暴力刷新了。

现在前端都是使用揭示模块写法来写脚本,所以不要想直接调用js call来刷贴了,不过如果抽离出提交函数,那么一样可以进行提交。

因为项目改版移动端适配需求和老板的关爱,换了mac,失去了最顺手的fiddle(虚拟机里跑略沉重啊),否则直接reply到610就好了。

那么看一下脚本吧,打开源码,格式化了一下,居然不是KISSY代码,用JQ写的…

提交的DOM EVENT=>CLICK,发现有自己的事件适配器,(作弊这种事情,找调用超过2层真的不如自己写了),感觉很麻烦,自己写一个提交好了。

//如果你在ATA查看评论楼层,会在渲染模板的时候,添加好多comment模块,
//和我们刷帖有关系的是最后一个form
var target = $('.js-comment-create:last');
//机器代替手工填写一个`赞`好了
target.find('#comment').val('赞');
//自动提交
target.submit();

直接扔console,诶,是不是提交成功了。

接下来是刷楼,最简单的刷是什么呢?

for(;;){
    console.log('嘻唰唰')
}

好吧,我是逗比,这个肯定不行,do loop也是,浏览器会卡死的…或者报告有死循环神马的…

我们用安全循环好了。

setTimeout(function () {

    console.log('嘻唰唰')

    setTimeout(arguments.callee, interval);

}, interval);

随便给定一个interval,比如100(我是不是太仁慈了),循环就能嗨起来了.

那么我们组合一下,其实这里可以缓存targat的,不过,不要在意这些细节了(如果实在看不爽效率,那么换全部原生好了…)。

setTimeout(function () {

    var target = $('.js-comment-create:last');
    target.find('#comment').val('赞');
    target.submit();

    setTimeout(arguments.callee, 100);

}, 100);

最后特别提醒一下,不准用这个代码刷我!

感谢要送书的 @鬼道 大神。。