Without further ado, let me show you the renderings first:
To summarize, this article is going to introduce a script for brushing stars (in flash memory), which is used to brush stars while hanging up. On Chinese Valentine's Day, roses are all about painting, so I'm definitely not a clickbait. Let me take everyone to paint stars together!
1. Send message
Look at the request and simulate sending it yourself
$.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对象
2. Determine whether the message just sent has a lucky flash
Look at the pictures and do the talking
The request address is: http://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=all&PageIndex=1&PageSize=30&Tag=&_=1440087133884
As you can see from the name (and it is true), you can choose the type (mine, my response, new response, mention me, reply to me, whole site), which page, and the number of each page. The last one is the timestamp.
We simulate the request:
$.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); //可以在控制台看看出来的是什么鬼 } });
The reason why dataType: "text" is used is because:
What is returned is a piece of html code. Using $(result), you can see in the console that it is divided into 3 parts. We need to find the part just sent and determine whether there is a lucky flash. I only choose to get the first 3 items here to judge. If there are more than 3 people who have just refreshed the flash memory with me, then I won’t be able to find them... So I can add a little more quantity per page.
This is the code I use to find and determine if there are stars:
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 { //没找到星星,看来运气不好。那么就把刚刚那条删除吧!!! }
3. Delete the “waste” flash drive without stars just now
For those who only want stars (roses), throw away the useless ones...
I won’t post a picture of this, just the code:
//删除闪存 function delMsg(id) { console.log("..............没有星星,删除该闪存,id为" + id); return $.post("http://ing.cnblogs.com/ajax/ing/del", JSON.stringify({ ingId: id })); }
4. Summary
Whether you can get "stars" really depends on your face. I swipe every 6 minutes, and I only get a dozen in an afternoon and a night.
It’s 12:43 now and I’m very worried. This script is installed on my company's computer and keeps flashing. I can't do anything about it at home. I don't know if there will be a dark room tomorrow... I'll go and stop it early tomorrow morning.
And I don’t know if the browser is stuck. Occasionally there are a few without stars, but it hasn’t been deleted...
The following is the complete code:
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("http://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: "http://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 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 { delMsg(id); } } }); } //删除闪存 function delMsg(id) { console.log("..............没有星星,删除该闪存,id为" + id); return $.post("http://ing.cnblogs.com/ajax/ing/del", JSON.stringify({ ingId: id })); } }
The above is how I received 12 bouquets of roses after typing the code as a single person on Valentine’s Day. I hope you all like it.