Greasy Fork

来自缓存

Greasy Fork is available in English.

蜜蜂侠

蜜蜂抢单

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         蜜蜂侠
// @namespace    http://tampermonkey.net/
// @version      0.7.3
// @description  蜜蜂抢单
// @author       Shinelin
// @match        http://*.mf178.cn/customer/order/pools*
// @match        http://mf178.cn/customer/order/pools*
// @match        http://mf178.cn/customer/order/mytasks
// @grant        none
// ==/UserScript==


(function() {
    'use strict';
    // 消息提示
    var stop = false;
    var cnt = 1;
    var intervalId = 0;


    var my_message = function (message) {
        $.notify({ message:message }, { delay:2000, allow_dismiss:false, type: 'success', placement: { from: "top", align: "center" }, offset: 400});
    };
    // 播放提示音
    $.getScript("https://cdn.bootcss.com/jplayer/2.9.2/jplayer/jquery.jplayer.min.js", function() {
        $("#jplayer").jPlayer({
            // swfPath: "http://www.jplayer.org/latest/js/Jplayer.swf",
            ready: function () {
                $(this).jPlayer("setMedia", {
                    mp3: "http://hao.1015600.com/upload/ring/000/994/63ac8513b87bb67e87042b856e2b6f01.mp3"
                });
            },
            supplied: "mp3"
        });
    });


    var sumbit_ticket_without_comfirm = function(orderId) {
           var url = 'ajax?action=task_report&op=succ&id=' + orderId;
           X.get(url);
    };

    // 附加的html
    var html = (function () {/*
		<div class='row' id='robDiv'>
			<div class='col-xs-3'>
				<select class="form-control" id='amount' name='amount'>
					<option  value="30">30元</option>
					<option  value="50">50元</option>
					<option  value="100">100元</option>
					<option  value="200">200元</option>
                    <option  value="300">300元</option>
                    <option  value="500">500元</option>
				</select>
			</div>
            <div class='col-xs-2'>
				<select class="form-control" id='carrier' name='carrier'>
                    <option  value="0">不限</option>
					<option  value="1">移动</option>
					<option  value="2">联通</option>
				</select>
			</div>
			<div class='col-xs-2'>
				<select id="prov_name" name="prov_name" class="form-control">
					<option value="">不限</option>
					<option value="北京">北京</option>
					<option value="广东">广东</option>
					<option value="上海">上海</option>
					<option value="天津">天津</option>
					<option value="重庆">重庆</option>
					<option value="辽宁">辽宁</option>
					<option value="江苏">江苏</option>
					<option value="湖北">湖北</option>
					<option value="四川">四川</option>
					<option value="陕西">陕西</option>
					<option value="河北">河北</option>
					<option value="山西">山西</option>
					<option value="河南">河南</option>
					<option value="吉林">吉林</option>
					<option value="黑龙江">黑龙江</option>
					<option value="内蒙古">内蒙古</option>
					<option value="山东">山东</option>
					<option value="安徽">安徽</option>
					<option value="浙江">浙江</option>
					<option value="福建">福建</option>
					<option value="湖南">湖南</option>
					<option value="广西">广西</option>
					<option value="江西">江西</option>
					<option value="贵州">贵州</option>
					<option value="云南">云南</option>
					<option value="西藏">西藏</option>
					<option value="海南">海南</option>
					<option value="甘肃">甘肃</option>
					<option value="宁夏">宁夏</option>
					<option value="青海">青海</option>
					<option value="新疆">新疆</option>
				</select>
			</div>
			<div class='col-xs-2'>
				<button class='btn btn-default btn-info'  id='getOrderBtn'>自动抢单</button>
			</div>
			<div class='col-xs-2'>
				<button class='btn btn-default btn-danger' disabled="true" id='stopGetOrderBtn'>停止抢单</button>
			</div>
            <div id="jplayer"></div>
		</div>
        <br />
       
    */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
    /*
     /// 测试
     <div class='row'>
             <div class='form-inline'>
				 <label>
                    <input type="checkbox" id="autosubmit"  value="1" checked="false">
                    (测试,非押金用户慎用)自动提交待充值:剩余时间设置
                    <input type="number" id="limit" value=3 class="form-control"/>
                    分钟。
                    <a id='diff_time'>-1</a>秒后将自动提交。
                 </label>
			</div>
         </div>
         <div class='row'>
             <div class='col-xs-5' id="phonenumDiv">
                 <label class='form-control'>
                     <b id="phone_num"><font color='red'>无</font></b>
                </label>
			</div>
         </div>
    */
    var setup_ui = function() {
        $('body > div.main_content > div > div > div > div > div.col-sm-10 > div.row.customer_container > div:nth-child(2)').append(html);

        // 复制黏贴号码工具,方便做单。
        var realtime_table = $('body > div.main_content > div > div > div.col-lg-10.col-sm-9 > div > div:nth-child(5) > table');
        if(realtime_table.find("tr").size() > 1) {
            var number = realtime_table.find("tr").eq(1).find('td').eq(2).children('button').val();
            $('#phone_num').children('font').text(number);
            $('#phonenumDiv').after("<div class='col-xs-2'> <button class='btn btn-info copy_btn' id='mycopybtn' value='"+ number + "'>复制</button></div>");
            $("#mycopybtn").click(function(){
                copyText($(this).val());
            });
            var orderId = realtime_table.find("tr").eq(1).find('td').eq(0).text();
            $('#mycopybtn').parent('div').after("<div class='col-xs-2'> <button id='succ_btn' class='btn btn-success' >我已充值</button></div>");
            $("#succ_btn").on('click', function(){
                   sumbit_ticket_without_comfirm(orderId);
            });
        }

    };



    var setup_storage = function() {
        // 本地存储面值,那么就使用本地存储的面值。
        if(localStorage.getItem('TICKET_PRICE') != null) {
            $('#amount').find("option:selected").attr("selected",false);
            $('#amount').find("option[value='"+ localStorage.getItem('TICKET_PRICE')+"']").attr("selected",true);
        }
        // 本地存储倒计时,就是用本地的倒计时
        if(localStorage.getItem("AUTOSUBMIT") != null) {
            $('#limit').val(parseInt(localStorage.getItem("AUTOSUBMIT")));
        }
    };

    setup_ui();
    setup_storage();




    var check_submit = function () {
        if ($('#autosubmit').attr("checked") == undefined) return ;
        var limit = $('#limit').val() * 60;
        localStorage.setItem("AUTOSUBMIT", $('#limit').val());
        var timestamp = parseInt((new Date()) / 1000) - INIT_TIME;
        $("body > div.main_content > div > div > div.col-lg-10.col-sm-9 > div > div:nth-child(5) > table tr .timeout").each(function () {
            var t = $(this);
            var diff = parseInt(t.attr("otime")) - timestamp;
            $("#diff_time").html((diff-limit) + '');
            if (diff > 0 && diff < limit) {
                   sumbit_ticket_without_comfirm(t.closest('tr').find(' td:nth-child(1)').html());
            }
        });
    };

    // 每1s检测一次订单提交。
    intervalId = setInterval(check_submit, 1000);


    // 修改订单倒计时提交时调用。
    $("#autosubmit").on('change', function() {
        if ($('#autosubmit').attr("checked") == "checked") {
            $('#autosubmit').attr("checked", false);
            if(intervalId != 0) {
                clearInterval(intervalId);
            }
        }
        else {
            $('#autosubmit').attr("checked", "checked");
            intervalId = setInterval(check_submit, 1000);
        }
    });

    var Refresh = function () {
        if(stop == true) {return;}
        // 查询订单……
        $.get('/customer/order/mytasks', function(msg) {
            var label = "获取" + $('#amount').val() + "元订单";
            if(msg.indexOf(label) < 0) {
                 //my_message('已查询' + cnt + '次,平台暂未订单,请稍后再试');
                 $("#getOrderBtn").text('已查询' + cnt + '次');
                 cnt ++;
                 setTimeout(Refresh, 100);
            }
            else {
                 getOrder();
            }
        });
        // 到这里没有被return, 说明有订单了,但是不一定有指定省份。
        // 更特殊的,有人可能在你查到和获取期间抢走这个单。
        var getOrder = function() {
            var url = 'ajax?action=get_tasks&amount=' + $('#amount').val();
            $.getJSON(url, function(msg) {
                //alert(msg.data);
                //<input type=\"hidden\" name=\"SEQ\" value=\"1519654006\" \/>
                var index = msg.data.indexOf("SEQ\" value=\"");  //
                //var len = 'SEQ\" value=\"'.length;  // 12
                //alert(index + " " + len);
                var idx = parseInt(index) + 12;
                var end = msg.data.indexOf("\"",idx);
                var SEQ = msg.data.substring(idx, end);
                var data = {
                    'prov_name': $('#prov_name').val(),
                    'operator_id': $('#carrier').val(),
                    'amount':$('#amount').val(),
                    'count':1,
                    'contract': [1, 2, 4, 8, 16, 32, 64, 128, 256, 512],
                    'SEQ':SEQ
                };
                $.post('/customer/order/get_tasks', data, function(msg) {
                    if(msg.indexOf('上报我已充值') > 0){
                        my_message('成功获取订单, 1s后自动刷新');
                        $("#jplayer").jPlayer('play');
                        setTimeout(function() {
                            window.location.href = "/customer/order/mytasks";
                        }, 1000);
                    }
                    else {
                        my_message('没有所查询的省份,或者别人比你抢先一步了');
                        setTimeout(Refresh, 2000);
                        $("#getOrderBtn").text('已查询' + cnt + '次');
                        cnt ++;
                    }
                });
            });
        };
    };

    // 获取订单
    $("#getOrderBtn").on('click', function() {
		//alert("自动抢单");
		//css
		$("#stopGetOrderBtn").attr('disabled',false);
		$("#getOrderBtn").attr('disabled', 'disabled');
		//$("#getOrderBtn").text("抢单中");
        stop = false;
        cnt = 1;
        localStorage.setItem('TICKET_PRICE', $('#amount').val());

		Refresh();
     });

    // 结束抢单
    $("#stopGetOrderBtn").on('click', function() {
		my_message('停止抢单');
		//css
		$("#stopGetOrderBtn").attr('disabled','disabled');
		$("#getOrderBtn").attr('disabled',false);
		$("#getOrderBtn").text("自动抢单");
        stop = true;
     });

    // Your code here...
})();