七夕,單身的我是如何在敲完代碼以後收到12束玫瑰的

大家確定要說:
No picture u say a jb!!!

--- 那就先上圖吧html

總結,本篇是要介紹博主的一個刷星星(閃存裏面的)的腳本,用於掛機刷星星。在七夕就是刷的玫瑰,因此毫不是標題黨,就讓我帶你們一塊兒刷星星吧!ajax

看請求並本身模擬發送


$.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 json

由命名可知(也確實如此),能夠選擇類型(個人,我回應,新迴應,提到我,回覆我,全站),第幾頁,每頁數量。最後一個是時間戳。 promise

咱們模擬請求:

$.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我的以上剛剛跟我一塊兒刷閃存,那我就找不到啦...因此可讓每頁多一點數量。oop

這是我找到並判斷是否有星星的代碼:

 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,我很忐忑。我公司電腦掛這個腳本一直刷,我在家裏看着沒辦法,不知道明天會不會小黑屋......明天早上早點去停了吧。
並且不知道是否是瀏覽器卡主了,偶爾有幾個沒有星星,它也沒刪掉... post

如下是完整代碼:

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);
        }
    };
})();

下面是厚顏無恥的求贊時間

您有沒有對這篇文章感興趣呢?this

url










.spa

相關文章
相關標籤/搜索