zoukankan      html  css  js  c++  java
  • 七夕,单身的我是如何在敲完代码之后收到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("https://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: "https://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 delA = feedDiv.find("a.recycle");
                    if (delA.length > 0) {
                        console.log("..............找到发送的闪存,开始判断");
                    } else {
                        console.log("..............未找到发送的闪存,可能脚本错误");
                    }
                    var id = delA.attr("onclick").match(/DelIng((d+))$/)[1];
                    if (delA.prev("img.ing_icon_lucky").length > 0) {
                        console.log("..............幸运闪 +1 【星星】");
                    } else {
                        delMsg(id);
                    }                
                }
            });
        }
    
        //删除闪存
        function delMsg(id) {
            console.log("..............没有星星,删除该闪存,id为" + id);
            return $.post("https://ing.cnblogs.com/ajax/ing/del", JSON.stringify({ ingId: id }));
        }
    }
    
    
    // 更新于:2017/12/21
    var ing = (function () {
        /**
     * 发布闪存
     * 
     * @param {string} content 
     * @returns {promiseLike}
     */
        function publishTxt(content) {
            var url = 'https://ing.cnblogs.com/ajax/ing/Publish';
            var dfd = $.Deferred();
            console.log('-----------------------------------------');
            console.log('...发送闪存');
            $.post(url, {
                content: content,
                publicFlag: 1
            }, function (result) {
                if (result.isSuccess) {
                    console.log('...发送成功');
                    dfd.resolve();
                } else {
                    console.log('...发送失败');
                    dfd.reject();
                }
            }, 'json');
            return dfd;
        }
    
        function checkHasStarAndDel() {
            var url = 'https://ing.cnblogs.com/ajax/ing/GetIngList?IngListType=my&PageIndex=1&PageSize=30&Tag=&_=' + +new Date;
            console.log('...检测是否有星星');
            $.get(url, function (result) {
                var $ele = $(result).eq(2);
                var $feedBody = $ele.find('ul>li:first .feed_body'); // wrap
                var hasStar = $feedBody.children('.ing-icon').length; // 是否有star
                var id = $feedBody.attr('id').replace('feed_content_', '');
                if (!hasStar) {
                    delIng(id);
                    console.log('...没有star,删除');
                } else {
                    console.log('..............');
                    console.log('【星星】 +1')
                    console.log('..............');
                }
                console.log('-----------------------------------------');
            }, 'html');
        }
    
        function delIng(ingId) {
            $.post('/ajax/ing/del', {
                ingId: ingId
            });
        }
    
        return {
            send: function (content) {
                publishTxt(content).then(checkHasStarAndDel);
            },
            loop: function (content, interval) {
                var self = this;
                self.send(content);
                return setInterval(function () {
                    self.send(content);
                }, interval);
            }
        };
    })();
    

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

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










    .

  • 相关阅读:
    17-canvas绘制扇形
    16-canvas绘制圆弧
    15-canvas渐变色
    14-canvas绘制柱状图
    13-绘制矩形的简写方式
    12-es6类的方式封装折线图
    11-canvas绘制折线图
    10-canva绘制数据点
    jenkins 环境部署 (yum安装方式)
    BerkeleyDB安装
  • 原文地址:https://www.cnblogs.com/lianmin/p/4746565.html
Copyright © 2011-2022 走看看