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.1
// @description  用于海外版拼多多自动加入发货单
// @author       强仔
// @match        https://kuajing.pinduoduo.com/main/order-manage
// @icon         https://kj-bstatic.pddpic.com/static/sc-container/favicon.ico
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    const random = Math.random();
    const queryS = (selector) => {
        return document.querySelector(selector);
    }

    const css = css => {
            const myStyle = document.createElement('style');
            myStyle.textContent = css;
            const doc = document.head || document.documentElement;
            doc.appendChild(myStyle);
        }

    css(`#zuihuitao {cursor:pointer; position:fixed; top:100px; left:0px; width:0px; z-index:2147483647; font-size:12px; text-align:left;}
			#zuihuitao .logo { position: absolute;right: 0; width: 1.375rem;padding: 10px 2px;text-align: center;color: #fff;cursor: auto;user-select: none;border-radius: 0 4px 4px 0;transform: translate3d(100%, 5%, 0);background: deepskyblue;}
			#zuihuitao .die {display:none; position:absolute; left:26px; top:0; text-align:center;background-color:#B9B9FF; border:1px solid gray;}
			#zuihuitao .die li{font-size:12px; color:#fff; text-align:center; width:60px; line-height:21px; float:left; border:1px solid gray;border-radius: 6px 6px 6px 6px; padding:0 4px; margin:4px 2px;list-style-type: none;}
			#zuihuitao .die li:hover{color:#fff;background:#97CBFF;}
            @media print {body {display: block !important;}}
            *{-webkit-user-select: text; -moz-user-select: text; -ms-user-select: text; user-select: text;}
			.add{background-color:#BBFFFF;}
            .btn-success{position: fixed;font-weight: 400;color: #fff;background-color: #28a745;border-color: #28a745;text-align: center;vertical-align: middle;border: 1px solid transparent;padding: .375rem .75rem;font-size: 1rem;line-height: 1.5;border-radius: .25rem; z-index:2147483647;cursor: pointer;}`);


    const _html = `<div id='zuihuitao'>
		    <div class='item_text'>
		        <div class="logo"><a id="m">自动加入发货台</a></div>
		            <div class='die' >
		                <div style='display:flex;'>
		                    <div style='width:76px; padding:0px 0;'>
		                        <ul style="padding-left: 0px;">
                                    <li id="li0">开启</li>
                                    <li id="li1">关闭</li>
		                        </ul>
							</div>`;
    // $("#root").html(_html);
    //document.body.innerHTML += _html;
    const div = document.createElement('div');
    div.innerHTML = _html;
    document.body.appendChild(div);
    queryS("#zuihuitao > div").addEventListener("mouseover", () => {
        queryS("#zuihuitao > div > div.die").style.display = "block";
    });
    queryS("#zuihuitao > div").addEventListener("mouseout", () => {
        queryS("#zuihuitao > div > div.die").style.display = "none";
    });
    console.log(document.lastModified);

    let intervalId;
    let startnum = 0;
    let last_num = 0;
    let index = 0;

    queryS("#li0").addEventListener("click", e => {
        // var xpath = "/html/body/div[4]/div/div[1]/div/div/div/div[2]/button";
        ///html/body/div[5]/div/div[1]/div/div/div/div[2]/button
        ///html/body/div[5]/div/div[1]/div/div/div/div[2]/button
        var btnSelector = '.BTN_outerWrapper_5-72-0.BTN_primary_5-72-0.BTN_medium_5-72-0.BTN_outerWrapperBtn_5-72-0'

        // CSS选择器
        var cssSelector = 'a[data-tracking-id="custom-t3wO-KG-3BT_5xyK"]';
        // 使用document.querySelectorAll()方法查询所有匹配的元素
        var elements = document.querySelectorAll(cssSelector);

        last_num = elements.length;
        startnum = elements.length;

        let retry = 0;

        intervalId = setInterval(function() { // 每秒执行一次加入
            var elements = document.querySelectorAll(cssSelector);
            if (elements.length < last_num){ // 加入发货台成功,发送通知
                last_num = elements.length;
                console.log('通知加入成功!!!');
            }else{
                console.log('尝试失败,继续操作!');
            }

            if (last_num <= 0 || index >= last_num || retry > 1000) {
                clearInterval(intervalId); // 如果满足条件,停止循环
                console.log('没有找到对象,自动关闭!!!');
                alert("已关闭自动加入发货台功能。成功订单数量:" + (startnum - last_num));
                return;
            }
            while (index < last_num && elements[index].hasAttribute("disabled")) {
                index += 1;
            }
            console.log('点击对象序列:' + index);

            if (index >= last_num || elements[index].hasAttribute("disabled")) {
                // clearInterval(intervalId); // 如果满足条件,停止循环
                // console.log('没有找到对象,自动关闭!!!');
                // alert("已关闭自动加入发货台功能。成功订单数量:" + (startnum - last_num));
                // return;
                retry += 1;
                index = 0;
                console.log('==============重试次数:' + retry);
                document.querySelectorAll(btnSelector)[0].click();
                return;
            }

            elements[index].click();

            setTimeout(function() {
                document.querySelectorAll(btnSelector)[1].click();
            }, 800);
        }, random * (2000 - 1500) + 1500);
    });

    queryS("#li1").addEventListener("click", e => {
        clearInterval(intervalId); // 停止循环
        console.log('关闭成功!!!');
        alert("已关闭自动加入发货台功能。成功订单数量:" + (startnum - last_num));
    });
})();