情人节单身的我是如何在敲完代码之后收到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 相关文章推荐
javascript下function声明一些小结
Dec 28 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
AngularJS模块管理问题的非常规处理方法
Apr 29 Javascript
JS实现当前页居中分页效果的方法
Jun 18 Javascript
学习JavaScript设计模式(链式调用)
Nov 26 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
浅谈jQuery双事件多重加载的问题
Oct 05 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
详解vue中使用微信jssdk
Apr 19 Javascript
jQuery实现简单评论区功能
Oct 26 jQuery
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
说明的比较细的php 正则学习实例
2008/07/30 PHP
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
php cc攻击代码与防范方法
2012/10/18 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
基于jQuery解决ios10以上版本缩放问题
2017/11/03 jQuery
详解weex默认webpack.config.js改造
2018/01/08 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
2019/06/18 jQuery
JavaScript中window和document用法详解
2020/07/28 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
wxpython绘制圆角窗体
2019/11/18 Python
解决Keras自带数据集与预训练model下载太慢问题
2020/06/12 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
业务员简历自我评价
2014/03/06 职场文书
体育之星事迹材料
2014/05/11 职场文书
公关活动策划方案
2014/05/25 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs