情人节单身的我是如何在敲完代码之后收到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 相关文章推荐
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
Mar 06 Javascript
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
jQuery学习笔记之jQuery选择器的使用
Dec 22 Javascript
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
合并table相同单元格的jquery插件分享(很精简)
Jun 20 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
Dec 26 Javascript
Javascript的&amp;&amp;和||的另类用法
Jul 23 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
Dec 30 Javascript
详解JavaScript中new操作符的解析和实现
Sep 04 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 cli模式学习(PHP命令行模式)
2013/06/03 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
JS删除数组元素的函数介绍
2013/03/27 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
简单的Apache+FastCGI+Django配置指南
2015/07/22 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
在Mac上删除自己安装的Python方法
2018/10/29 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
PyTorch中常用的激活函数的方法示例
2019/08/20 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
办理居住证介绍信
2014/01/15 职场文书
销售人员自我评价
2014/02/01 职场文书
校园文化标语
2014/06/18 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS