七夕,单身的我是如何在敲完代码之后收到12束玫瑰的
你们肯定要说:
No picture u say a jb!!!
--- 那就先上图吧
总结,本篇是要介绍博主的一个刷星星(闪存里面的)的脚本,用于挂机刷星星。在七夕就是刷的玫瑰,所以绝不是标题党,就让我带大家一起刷星星吧!
一、 发送消息
看请求并自己模拟发送
$.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
由命名可知(也确实如此),可以选择类型(我的,我回应,新回应,提到我,回复我,全站),第几页,每页数量。最后一个是时间戳。
我们模拟请求:
$.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) { //处理的逻辑
//window.doc=$(result); //可以在控制台看看出来的是什么鬼 } });
之所以用 dataType:"text" 是因为:
返回的是一段html代码,使用$(result)在控制台可以看到是分为3部分,我们需要找到刚刚发送的部分,并判断是否有幸运闪。我这里只选择获取前3条来判断,如果有3个人以上刚刚跟我一起刷闪存,那我就找不到啦...所以可以让每页多一点数量。
这是我找到并判断是否有星星的代码:
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 { //没找到星星,看来运气不好。那么就把刚刚那条删除吧!!! }
三、 删掉刚刚那个没有星星的“废”闪存
对于只要星星(玫瑰)的人来说,没用的就扔掉吧...
这个我也不发图了,直接上代码:
//删除闪存 function delMsg(id) { console.log("..............没有星星,删除该闪存,id为" + id); return $.post("http://ing.cnblogs.com/ajax/ing/del", JSON.stringify({ ingId: id })); }
四、 总结
能否获取“星星”,真的跟脸有关,我6分钟刷一次,刷一下午一晚上才十几个。
现在是12点43,我很忐忑。我公司电脑挂这个脚本一直刷,我在家里看着没办法,不知道明天会不会小黑屋......明天早上早点去停了吧。
而且不知道是不是浏览器卡主了,偶尔有几个没有星星,它也没删掉...
以下是完整代码:
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 })); } }
// 更新于: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 上位者的怜悯 阅读(13456) 评论(169) 编辑 收藏 举报