情人节单身的我是如何在敲完代码之后收到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 选择器理解
Mar 16 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
May 05 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 Javascript
js中new一个对象的过程
Feb 20 Javascript
JQuery Ajax 异步操作之动态添加节点功能
May 24 jQuery
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
Jun 11 Javascript
Vue结合后台导入导出Excel问题详解
Feb 19 Javascript
webpack4 SplitChunks实现代码分隔详解
May 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
php 文件状态缓存带来的问题
2008/12/14 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
PHP实现验证码校验功能
2017/11/16 PHP
PHP 图片处理
2020/09/16 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
js实现简单的验证码
2015/12/25 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
Javascript 实现放大镜效果实例详解
2016/12/03 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
Python有序字典简单实现方法示例
2017/09/28 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
关键字final的用法
2013/10/02 面试题
中学综治宣传月活动总结
2015/05/07 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
Nginx HTTP跳转至HTTPS
2022/05/15 Servers