七夕,单身的我是如何在敲完代码之后收到12束玫瑰的

你们肯定要说:
No picture u say a jb!!!

--- 那就先上图吧

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

一、 发送消息

看请求并自己模拟发送


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

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

仍然是看图说话,照着做


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

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

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

×Close

下面是厚颜无耻的求赞时间

您有没有对这篇文章感兴趣呢?

还好啦 WQNMLGBD

.

时间: 2024-10-04 23:28:26

七夕,单身的我是如何在敲完代码之后收到12束玫瑰的的相关文章

java day_01(我在南方的寒夜里冻手冻脚地敲着代码!!!)

今天先学习了最基本的java环境的搭建. 首先从官网上下载了jdk,然后按照视频所给的流程进行了环境变量的配置,这样以来就能够更方便的应用java开发工具,简单来说也就是每次可以直接输入javac编译文件,不用输入前面的一大串内容. 接下来打开了java开发工具,敲了最简单的一串代码,代码如下: class LXM{      public static void main(String[] args)     {             System.out.println("Hello ja

写完代码再写诗,是多么陶醉~

文/向右奔跑(简书作者) 原文链接:http://www.jianshu.com/p/25e07f8095a8 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 两周前,我发起一个活动,让大家从现在开始每天记录学习的内容,可以是学习的感受感言,也可以整理学习笔记.知识点.要求就是每天都写,每天去记录. 每天坚持记录.总结,是一件不容易的事情.我以自己坚持跑步和早起为例,告诉大家怎样从一件小事开始持续坚持.也分享几篇文章,如<为什么你应该(从现在开始)写博客>等

正敲着代码,鼠标坏了!

本来是正工作好好的,结果屏幕一闪,却没想到,就这样将鼠标永远的定格. 重差了好几次,依旧不管,只好重启电脑.分分钟过去了,让几个同事试了下,还是不行,只能开启触摸键盘了. 这时突然想到有没有其它和我类似经历的程序员,百度了一下,别说,还真有,而且大神级回答让我这个用鼠标点自愧不如啊. 下面是大神快捷键时刻: Windows XP 键盘快捷键概述 在 Win XP 中工作和Windows中工作时一样,利用快捷键代替鼠标.可以 利用键盘快捷键打开.关闭和导航“开始”菜单.桌面.菜单.对话框以及 网页

Python基础教程:Python学习视频Python让你敲的代码不再是造轮子

你敲的代码是在造轮子?那就学Python呗!_Python基础教程 Bruce大神说" 人生苦短,我用Python ". 从公司角度而言: 国内基于Python创业成功的案例不在少数,豆瓣.知乎.果壳,全栈都是 Python,大家对Python自然有信心.并且从这几家公司出来的程序员与 CTO,创业的话一般都会选择Python. 从开发者个人角度而言: 计算机语言只是用来达成目的工具,?各种强大的第三方库,拿来就能用才是王道,让程序替代我们执行一些枯燥繁琐的工作.?至于句式是否优美.能

“玲珑杯”ACM比赛 Round #18 图论你先敲完模板(dp)

题目链接:http://www.ifrog.cc/acm/problem/1146 题意:中文题 题解:状态转移方程:dp[ i ] = min ( dp[ i ] ,dp[ j ] + 2xi-xj+a ). dp[1]=0,第一个点需要消耗的能量为0,从第二个点(假设这个点为A)开始,往前遍历一遍点(假设这个点为B)假定B点为休息点,然后直接到A点需要的能量, 依次然后找出最小能量,因为从第二个点依次往后,每次前面的都已经最优了,所以最后n位置得到的就是答案了. 然后有几个注意点INF尽量弄

当程序员写完代码后,看完感同身受……

如果你是程序员,相信看完后,你会默默点个! 从此循环,估计可能到头了-- 微信关注"蜗牛新视界",带你玩不同.  

mysql之单表查询__我自己敲的代码

1.select * from person; #查看全部 2.select name,sex from person;   #只选择name和sex这两列name和sex之间有一个逗号的 3.select name,sex as '性别' from person #将name和sex两列选择出来,并将sex这一列的列名字改名字为性别,或者是为字段起别名 4.select salary+200 from person;  #将person中的salary列选出来,并将salary中数据都加200

10个超实用的APP必备插件,让你少敲80%代码

一个APP的需求来自于哪儿?产品.老板.客户-.. 做程序员不容易,需求一句话,就是几千几万行代码!所幸,在AppCan平台开发APP,开发者只需完成应用的前端部分,至于各项复杂的功能,就交给AppCan来搞定吧! 这里列出AppCan10个新增的精品插件,IM.界面布局.视频.图片编辑等等,开发者简单调用插件接口,就可以轻松为应用接入丰富功能,非常实用. 1.uexNBListView 自定义布局列表插件:封装了自定义布局的功能,开发者可通过该插件实现原生布局. 插件效果图: 方法说明: se

一气呵成编完代码的感觉对不对

看一位大一学生的博文,他总结了他的项目的完成过程. 昨天早上在没有电脑的时候看了一下这个项目,因为不能直接输代码所以我在脑海里面构思了一下这个项目应该有的结构.正因如此,我一气呵成的输完了代码,即使有几个当时脑海中没意识到的错误,但是大思路有了编起来就很快.如果是一边输代码一边想的话,我以前经常是遇到问题就烦躁,导致一个程序耗时过长,自己也比较累,以后我拿到问题都要这样做,省时省力. 我评论: 这样做总结,编程怎么能拦住他! 然后,我将学生的总结分享到人人.这样的真实体会,应该共享. 有一位已经