七夕,单身的我是如何在敲完代码之后收到12束玫瑰的
你们肯定要说:
No picture u say a jb!!!
--- 那就先上图吧

总结,本篇是要介绍博主的一个刷星星(闪存里面的)的脚本,用于挂机刷星星。在七夕就是刷的玫瑰,所以绝不是标题党,就让我带大家一起刷星星吧!
一、 发送消息
看请求并自己模拟发送

1 2 3 4 5 6 | $.post( "http://ing.cnblogs.com/ajax/ing/Publish" , //地址 JSON.stringify({ "content" : content, "publicFlag" : 1 }), //参数,json格式字符串 function (result) { //回调 console.log( "..............发送成功了,接下来判断是否有星星" ); result && result.IsSuccess && judgeStar(content) }, "json" ); //返回的内容转成js对象 |
二、 判断刚刚发的消息是否有幸运闪
仍然是看图说话,照着做

请求地址是:http://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=all&PageIndex=1&PageSize=30&Tag=&_=1440087133884
由命名可知(也确实如此),可以选择类型(我的,我回应,新回应,提到我,回复我,全站),第几页,每页数量。最后一个是时间戳。
我们模拟请求:
1 2 3 4 5 6 7 8 | $.ajax({ url: "http://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=all&PageIndex=1&PageSize=3&Tag=&_=" + (+ new Date), type: "get" , dataType: "text" , success: function (result) { //处理的逻辑<br> //window.doc=$(result); //可以在控制台看看出来的是什么鬼 } }); |
之所以用 dataType:"text" 是因为:
返回的是一段html代码,使用$(result)在控制台可以看到是分为3部分,我们需要找到刚刚发送的部分,并判断是否有幸运闪。我这里只选择获取前3条来判断,如果有3个人以上刚刚跟我一起刷闪存,那我就找不到啦...所以可以让每页多一点数量。
这是我找到并判断是否有星星的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var feedDiv = $(result).eq(2); var msgSpan = feedDiv.find( "span:contains('" + msg + "')" ); //这样找其实不严谨,尤其在大晚上的找的全是自己的... if (msgSpan.length > 0) { console.log( "..............找到发送的闪存,开始判断" ); } else { console.log( "..............未找到发送的闪存,可能脚本错误" ); } var id = msgSpan.attr( "id" ).match(/body_(\d+)$/)[1]; if (msgSpan.next( "img.ing_icon_lucky" ).length > 0) { console.log( "..............幸运闪 +1 【星星】" ); } else { //没找到星星,看来运气不好。那么就把刚刚那条删除吧!!! } |
三、 删掉刚刚那个没有星星的“废”闪存
对于只要星星(玫瑰)的人来说,没用的就扔掉吧...
1 2 3 4 5 | //删除闪存 function delMsg(id) { console.log( "..............没有星星,删除该闪存,id为" + id); return $.post( "http://ing.cnblogs.com/ajax/ing/del" , JSON.stringify({ ingId: id })); } |
四、 总结
能否获取“星星”,真的跟脸有关,我6分钟刷一次,刷一下午一晚上才十几个。
现在是12点43,我很忐忑。我公司电脑挂这个脚本一直刷,我在家里看着没办法,不知道明天会不会小黑屋......明天早上早点去停了吧。
而且不知道是不是浏览器卡主了,偶尔有几个没有星星,它也没删掉...
以下是完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | function memeda(input) { var times = 0; shuaXingXing(input); function shuaXingXing(content) { sendMsg(content); setInterval( function () { sendMsg(content); }, 1000 * 60 * 6 + 100); } //发送闪存消息 function sendMsg(content) { console.log( "...................................................................." ); times++; console.log( "当前时间:" + new Date().toLocaleTimeString() + " 第" + times + "次发送闪存" ); console.log( "..............发送闪存" ); return $.post( "https://ing.cnblogs.com/ajax/ing/Publish" , JSON.stringify({ "content" : content, "publicFlag" : 1 }), function () { }, "json" ) .done( function (result) { console.log( "..............判断是否有星星" ); result && result.IsSuccess && judgeStar(content) }); } //判断是否有星星 function judgeStar(msg) { $.ajax({ url: "https://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=all&PageIndex=1&PageSize=3&Tag=&_=" + (+ new Date), type: "get" , dataType: "text" , success: function (result) { var feedDiv = $(result).eq(2); var delA = feedDiv.find( "a.recycle" ); if (delA.length > 0) { console.log( "..............找到发送的闪存,开始判断" ); } else { console.log( "..............未找到发送的闪存,可能脚本错误" ); } var id = delA.attr( "onclick" ).match(/DelIng\((\d+)\)$/)[1]; if (delA.prev( "img.ing_icon_lucky" ).length > 0) { console.log( "..............幸运闪 +1 【星星】" ); } else { delMsg(id); } } }); } //删除闪存 function delMsg(id) { console.log( "..............没有星星,删除该闪存,id为" + id); return $.post( "https://ing.cnblogs.com/ajax/ing/del" , JSON.stringify({ ingId: id })); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | // 更新于:2017/12/21 var ing = ( function () { /** * 发布闪存 * * @param {string} content * @returns {promiseLike} */ function publishTxt(content) { var url = 'https://ing.cnblogs.com/ajax/ing/Publish' ; var dfd = $.Deferred(); console.log( '-----------------------------------------' ); console.log( '...发送闪存' ); $.post(url, { content: content, publicFlag: 1 }, function (result) { if (result.isSuccess) { console.log( '...发送成功' ); dfd.resolve(); } else { console.log( '...发送失败' ); dfd.reject(); } }, 'json' ); return dfd; } function checkHasStarAndDel() { var url = 'https://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=my&PageIndex=1&PageSize=30&Tag=&_=' + + new Date; console.log( '...检测是否有星星' ); $.get(url, function (result) { var $ele = $(result).eq(2); var $feedBody = $ele.find( 'ul>li:first .feed_body' ); // wrap var hasStar = $feedBody.children( '.ing-icon' ).length; // 是否有star var id = $feedBody.attr( 'id' ).replace( 'feed_content_' , '' ); if (!hasStar) { delIng(id); console.log( '...没有star,删除' ); } else { console.log( '..............' ); console.log( '【星星】 +1' ) console.log( '..............' ); } console.log( '-----------------------------------------' ); }, 'html' ); } function delIng(ingId) { $.post( '/ajax/ing/del' , { ingId: ingId }); } return { send: function (content) { publishTxt(content).then(checkHasStarAndDel); }, loop: function (content, interval) { var self = this ; self.send(content); return setInterval( function () { self.send(content); }, interval); } }; })(); |
下面是厚颜无耻的求赞时间
您有没有对这篇文章感兴趣呢?
.
posted on 2015-08-21 00:56 上位者的怜悯 阅读(13463) 评论(169) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验