情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)


Posted in Javascript onAugust 21, 2015

废话不多说了,先给大家展示下效果图:

情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)

总结,本篇是要介绍的一个刷星星(闪存里面的)的脚本,用于挂机刷星星。在七夕就是刷的玫瑰,所以绝不是标题党,就让我带大家一起刷星星吧!

一、 发送消息

看请求并自己模拟发送

情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)

$.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对象

二、 判断刚刚发的消息是否有幸运闪

仍然是看图说话,照着做

情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript) 

请求地址是: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) {
    //处理的逻辑<br>    //window.doc=$(result); //可以在控制台看看出来的是什么鬼
   }
  });

之所以用 dataType:"text" 是因为:

情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)

返回的是一段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("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 }));
 }
}

以上就是本文情人节单身的我是如何在敲完代码之后收到12束玫瑰的,希望大家喜欢。

Javascript 相关文章推荐
点击下载链接 弹出页面实现代码
Oct 01 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
Nov 23 Javascript
jQuery实现悬浮在右上角的网页客服效果代码
Oct 24 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
微信小程序request出现400的问题解决办法
May 23 Javascript
详解Vue-Cli 异步加载数据的一些注意点
Aug 12 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
JS中offset和匀速动画详解
Feb 06 Javascript
vue h5移动端禁止缩放代码
Oct 28 Javascript
如何手写一个简易的 Vuex
Oct 10 Javascript
Vue如何实现组件间通信
May 15 Vue.js
jquery带翻页动画的电子杂志代码分享
Aug 21 #Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 #Javascript
纯javascript实现图片延时加载方法
Aug 21 #Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 #Javascript
js变形金刚文字特效代码分享
Aug 20 #Javascript
js限制文本框的输入内容代码分享(3类)
Aug 20 #Javascript
JS实现的通用表单验证插件完整实例
Aug 20 #Javascript
You might like
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
javascript 对象的定义方法
2007/01/10 Javascript
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
UserData用法总结 lanyu出品
2010/07/01 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
setTimeout()递归调用不加引号出错的解决方法
2014/09/05 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
JQuery删除DOM节点的方法
2015/06/11 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
python构造函数init实例方法解析
2020/01/19 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
你所在的项目是如何确定版本号的
2015/12/28 面试题
合同专员岗位职责
2013/12/18 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
公司委托书范本
2014/04/04 职场文书
期中考试反思800字
2014/05/01 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
门卫岗位职责
2015/02/09 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
Windows环境下实现批量执行Sql文件
2021/10/05 SQL Server