情人节单身的我是如何在敲完代码之后收到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 相关文章推荐
jQuery Ajax 全解析
Feb 08 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
Jul 08 Javascript
原生js实现焦点轮播图效果
Jan 12 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
JavaScript实现简单计算器功能
Dec 19 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
May 15 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 Javascript
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
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
PHP多态代码实例
2015/06/26 PHP
基于php实现的验证码小程序
2016/12/13 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
python集合用法实例分析
2015/05/30 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
Python调用C++程序的方法详解
2017/01/24 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
关于python中的xpath解析定位
2020/03/06 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
欧姆龙医疗欧洲有限公司:Omron Healthcare Europe B.V
2020/06/13 全球购物
领导失职检讨书
2014/02/24 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
小学语文复习计划
2015/01/19 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
如何书写授权委托书?
2019/06/25 职场文书
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android