本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 [署名 4.0 国际 (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/deed.zh) 本文作者: 苏洋 创建时间: 2014年06月20日 统计字数: 1683字 阅读时间: 4分钟阅读 本文链接: https://soulteary.com/2014/06/20/how-to-get-a-book-at-ata.html ----- # 论如何在 ATA 获得一本书 原标题《论如何在ata获得一本书,我不是来要咖啡券的,也不是来讨赞的》 下午收到旺旺推送: ```text 阿里巴巴技术协会:ATA热点推荐2014-06-20 15:56:41 晓白你好!周末送福利啦!鬼道的新书《跨终端 Web》开始预售,这里提供了书的样章和序,欢迎鉴赏。跟帖楼层号在斐波纳挈数列中的能获得书一本,抢楼进行中..... 查看详情 ``` 但是等看到的时候...已经5点了... 点开评论楼层,一看,我去...都500多了... 不过记忆中斐波那契数列越往后数值越大越有机会。 ```javascript (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; })(); ``` 运行输出: ```text [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层真的不如自己写了),感觉很麻烦,自己写一个提交好了。 ```javascript //如果你在ATA查看评论楼层,会在渲染模板的时候,添加好多comment模块, //和我们刷帖有关系的是最后一个form var target = $('.js-comment-create:last'); //机器代替手工填写一个`赞`好了 target.find('#comment').val('赞'); //自动提交 target.submit(); ``` 直接扔console,诶,是不是提交成功了。 接下来是刷楼,最简单的刷是什么呢? ```javascript for(;;){ console.log('嘻唰唰') } ``` 好吧,我是逗比,这个肯定不行,do loop也是,浏览器会卡死的...或者报告有死循环神马的... 我们用安全循环好了。 ```javascript setTimeout(function () { console.log('嘻唰唰') setTimeout(arguments.callee, interval); }, interval); ``` 随便给定一个interval,比如100(我是不是太仁慈了),循环就能嗨起来了. 那么我们组合一下,其实这里可以缓存targat的,不过,不要在意这些细节了(如果实在看不爽效率,那么换全部原生好了...)。 ```javascript setTimeout(function () { var target = $('.js-comment-create:last'); target.find('#comment').val('赞'); target.submit(); setTimeout(arguments.callee, 100); }, 100); ``` 最后特别提醒一下,不准用这个代码刷我! 感谢要送书的 @鬼道 大神。。 ![](https://attachment.soulteary.com/2014/06/20/ata-book.jpg)