智能标注-控制台

F12打开开发者模式,上方栏目选择控制台,输入需要进行的脚本。

注意备份!!!

(function() {
    const CLICK_INTERVAL_MS = 80;
    const SUCCESS_KEYWORDS = ['领取成功', '成功领取', '已领取'];
    
    const _0x4f = [0x4f51];
    const _0x62 = ['NWwyYzZJQ0Y3N3lhNUx5Wg=='];
    const AUTHOR = String.fromCharCode(_0x4f[0]);
    const ENCRYPTED_AUTHOR = atob(_0x62[0]);
    
    const QUOTES = [
        '✨ 此即,智慧之殿堂!—— 纳西妲',
        '🍖 牛福永恒,吃饱喝好!',
        '⚡ 稻光,亦是永恒!—— 雷电将军',
        '🎲 愿风神忽悠你!—— 温迪',
        '🌊 牛福如水,福泽绵长。',
        '🔥 天动万象!—— 钟离',
        '🍜 牛福面馆,今日特供。',
        '🌙 月光点亮的时候,牛福会保佑你。'
    ];

    let successCount = 0;
    let intervalId = null;
    let isRunning = false;
    let processedMessages = new WeakSet();
    let lastModalTime = 0;
    const MODAL_COOLDOWN_MS = 2000;

    function showAntiFakeModal() {
        const now = Date.now();
        if (now - lastModalTime < MODAL_COOLDOWN_MS) return;
        lastModalTime = now;

        const oldModal = document.getElementById('anti-fake-modal');
        if (oldModal) oldModal.remove();

        const randomQuote = QUOTES[Math.floor(Math.random() * QUOTES.length)];

        const modal = document.createElement('div');
        modal.id = 'anti-fake-modal';
        modal.style.cssText = `
            position: fixed; bottom: 90px; right: 20px; z-index: 1000000;
            background: rgba(20, 25, 40, 0.9); color: #f0e6d2;
            border: 1px solid #c9aa7b; border-radius: 16px;
            padding: 16px 20px; font-family: 'Segoe UI', 'Microsoft YaHei', sans-serif;
            box-shadow: 0 8px 24px rgba(0,0,0,0.5); backdrop-filter: blur(6px);
            min-width: 260px; pointer-events: none;
            animation: fadeSlideIn 0.3s ease-out;
        `;
        modal.innerHTML = `
            <div style="display: flex; align-items: center; gap: 8px; margin-bottom: 10px;">
                <span style="font-size: 22px;">👤</span>
                <span style="font-weight: bold; letter-spacing: 1px;">作者:${AUTHOR}</span>
                <span style="margin-left: auto; font-size: 12px; opacity: 0.7;">防伪认证</span>
            </div>
            <div style="background: #2a2f42; border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; font-family: monospace; font-size: 13px; border-left: 4px solid #d4af37;">
                🔐 ${ENCRYPTED_AUTHOR}
            </div>
            <div style="font-style: italic; color: #ffd966; text-align: right; border-top: 1px dashed #5a5f72; padding-top: 10px;">
                “${randomQuote}”
            </div>
            <div style="margin-top: 6px; font-size: 12px; text-align: right; opacity: 0.6;">
                🎉 累计成功 ${successCount} 次
            </div>
        `;

        const style = document.createElement('style');
        style.textContent = `
            @keyframes fadeSlideIn {
                from { opacity: 0; transform: translateY(20px); }
                to { opacity: 1; transform: translateY(0); }
            }
        `;
        if (!document.querySelector('#anti-fake-style')) {
            style.id = 'anti-fake-style';
            document.head.appendChild(style);
        }

        document.body.appendChild(modal);
        setTimeout(() => { if (modal.parentNode) modal.remove(); }, 6000);
    }

    function clickReceive() {
        const btns = document.querySelectorAll('button');
        for (let btn of btns) {
            const text = (btn.innerText || btn.textContent || '').trim();
            if (text === '领取' || text.includes('领取')) {
                btn.click();
                return;
            }
        }
    }

    function setupObserver() {
        const observer = new MutationObserver((mutations) => {
            for (const m of mutations) {
                for (const node of m.addedNodes) {
                    if (node.nodeType !== 1) continue;
                    const msg = node.classList?.contains('ant-message-notice')
                        ? node
                        : node.querySelector?.('.ant-message-notice');
                    if (msg && !processedMessages.has(msg)) {
                        processedMessages.add(msg);
                        const txt = msg.innerText || '';
                        if (SUCCESS_KEYWORDS.some(k => txt.includes(k))) {
                            successCount++;
                            console.log(`✅ 领取成功!累计成功: ${successCount} 次`);
                            showAntiFakeModal();
                        }
                    }
                }
            }
        });
        observer.observe(document.body, { childList: true, subtree: true });
        return observer;
    }

    let observer = null;

    function start() {
        if (intervalId) return;
        if (!observer) observer = setupObserver();
        isRunning = true;
        intervalId = setInterval(() => {
            try { clickReceive(); } catch(e) {}
        }, CLICK_INTERVAL_MS);
        console.log(`🚀 极速自动领取已启动,间隔 ${CLICK_INTERVAL_MS} ms`);
        updateButton(true);
    }

    function stop() {
        if (intervalId) {
            clearInterval(intervalId);
            intervalId = null;
        }
        isRunning = false;
        console.log(`🛑 已停止,累计成功领取 ${successCount} 次`);
        updateButton(false);
    }

    function toggle() { isRunning ? stop() : start(); }

    const btn = document.createElement('div');
    btn.id = 'quick-claim';
    btn.innerText = '▶️ 开始抢领';
    btn.style.cssText = `
        position: fixed; bottom: 20px; right: 20px; z-index: 999999;
        padding: 10px 16px; border-radius: 30px; background: #2ecc71;
        color: #fff; font-size: 14px; font-weight: bold; text-align: center;
        cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,0.2);
        font-family: sans-serif; border: none; user-select: none;
    `;
    btn.onclick = toggle;
    document.body.appendChild(btn);

    function updateButton(running) {
        btn.innerText = running ? '⏹️ 停止抢领' : '▶️ 开始抢领';
        btn.style.backgroundColor = running ? '#e74c3c' : '#2ecc71';
    }

    window.quickClaim = { start, stop, toggle };
    console.log('✅ 极速抢领脚本已加载 (80ms/次)');
})();

新增按钮,随启随用。

新增彩蛋。优化逻辑

(function() {
    let intervalId = setInterval(function() {
        let receiveButtons = Array.from(document.querySelectorAll('button, a, [role="button"]')).filter(btn => btn.innerText.includes('领取') && !btn.disabled);
        if (receiveButtons.length) {
            receiveButtons.forEach(btn => {
                console.log('点击领取按钮:', btn);
                btn.click();
            });
        } else {
            console.log('未找到可领取的按钮');
        }
    }, 3000);
    // 可以提供一个停止函数
    window.stopAutoClick = function() { clearInterval(intervalId); console.log('停止自动点击'); };
    console.log('已启动自动点击领取,每3秒一次,调用 window.stopAutoClick() 可停止');
})();

最初版本,最稳定

(async function() {
    const CONFIG = {
        invalidKeywords: [
            '您拨叫的用户正忙', '您拨打的电话正在通话中', '通话移转',
            '您拨打的电话已关机', '您拨打的电话暂时无法接通', '您拨打的电话已停机',
            '您拨打的电话正忙', '来电提醒', '正在通话中', '已转接', '呼转',
            '呼叫', '受限', '阅权', '请勿', '您呼叫的用户', '呼叫转移', '无法接通',
            '无法接听请在提示音后录制留言', '请在提示音后录制留言', '提示音后留言',
            '录制留言', '语音留言', '留言录音', '提示音',
            '还呗来电', '环呗来电', '还贝来电', '还呗提醒您', '您的还呗',
            '安逸包来电', '安逸保来电', '安逸宝来电', '安逸包提醒您', '您的安逸包',
            '还呗借款', '安逸花来电', '还呗客服',
            '爱医宝来电', '爱医保来电', '爱医宝提醒', '爱医保提醒', '您的爱医宝',
            '安宝来电', '安宝提醒', '您的安宝', '安宝借款', '安宝客服',
            '蚂以置信来电', '难以置信来电', '难以置信提醒', '蚂以置信提醒',
            '猎片来电', '猎片提醒', '重录请按', '重录请按井号键', '重新录制请按',
            '按井号键重录', '请按井号键', '重录情案',  // 新增错别字变体
            '安一包', '安一包来电', '安一包提醒',
            '星耀来电', '星耀提醒', '星耀借款',
            '通话助理', '通话助理来电', '通话助理提醒', '智能通话助理',
            '您拨打的用户已停机', '您拨的用户已停机', '用户已停机'
        ],
        englishRatioThreshold: 0.5,
        retryCount: 1,
        delayBetweenItems: 150,
        postFillDelay: 50,
        postClickDelay: 50,
        smartPunctuation: true,
        breakSentenceLength: 25
    };

    const digitMap = { '零':'0', '一':'1', '二':'2', '三':'3', '四':'4', '五':'5', '六':'6', '七':'7', '八':'8', '九':'9', '两':'2', '幺':'1' };
    const unitMap = { '十':10, '百':100, '千':1000, '万':10000, '亿':100000000 };
    const arabicToChineseMap = { '0':'零','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九' };

    // 保护词库(按长度降序应用)
    const protectedWords = [
        '一心一意', '三心二意', '朝三暮四', '七上八下', '九牛一毛', '三五成群', '五光十色', '四通八达',
        '一石二鸟', '一箭双雕', '一穷二白', '一马当先', '一针见血', '一鼓作气', '一模一样',
        '二龙戏珠', '三羊开泰', '四季平安', '五福临门', '六六大顺', '七星高照', '八方来财', '九九归一',
        '五月初五', '八月十五', '正月初一', '腊月三十', '大年三十',
        '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日',
        '三五人', '七八个', '八九成', '十一二岁', '百八十块', '万儿八千', '一两个', '两三天', '三四次',
        '第一千零一条', '第一百一十条', '第二十五条', '第三章', '第五条',
        '光绪二十四年', '康熙六十一年', '民国三十八年', '万历十五年',
        '两个黄鹂鸣翠柳', '一行白鹭上青天', '二十四桥明月夜', '三千尺', '九万里',
        '第一', '第二', '第三', '第四', '第五', '第六', '第七', '第八', '第九', '第十',
        '初一', '初二', '初三', '初四', '初五', '初六', '初七', '初八', '初九', '初十',
        '老大', '老二', '老三', '老四', '老五', '老六',
        '一千零一夜', '一千零一个', '一千零一', '一千零二', '一千零三',
        '三百六十五个祝福', '十万个为什么', '五十六个民族',
        '一般', '一样', '一直', '万一', '唯一', '统一', '单一', '专一', '同一',
        '一方面', '一把手', '一刹那', '一系列', '一窝蜂', '一溜烟',
        '二胡', '四书五经', '六神无主', '七窍生烟', '一次性', '一整天', '一辈子',
        '一百零八', '五百罗汉', '七十二变', '八十一难', '三十六计', '二十四节气',
        '一下', '看一下', '瞧一下', '听一下', '说一声', '问一声',
        '点一下', '按一下', '拍一下', '敲一下', '推一下', '拉一下',
        '试一下', '尝一下', '闻一下', '摸一下', '碰一下',
        '等一下', '等一会儿', '歇一会儿', '玩一下', '聊一下', '讲一下',
        '笑一下', '哭一下', '想一下', '考虑一下', '研究一下',
        '看一眼', '见一面', '走一趟', '跑一趟', '去一次', '来一次',
        '一点', '一点儿', '一点点', '一丁点', '一丁点儿',
        '一会', '一会儿', '一下下',
        '一些', '一些些', '一系列', '一部分',
        '快一点', '慢一点', '好一点', '多一点', '少一点', '大一点', '小一点',
        '早一点', '晚一点', '轻一点', '重一点', '高一点', '低一点',
        '快点儿', '慢点儿', '好点儿', '多点儿', '少点儿',
        '有一点', '有一点儿', '有点', '有点儿',
        '一点钟', '两点钟', '三点钟', '四点钟', '五点钟', '六点钟', '七点钟', '八点钟', '九点钟', '十点钟', '十一点钟', '十二点钟',
        '一点', '两点', '三点', '四点', '五点', '六点', '七点', '八点', '九点', '十点', '十一点', '十二点',
        '一点半', '两点半', '三点半', '四点半', '五点半', '六点半', '七点半', '八点半', '九点半', '十点半', '十一点半', '十二点半',
        '一刻', '三刻', '凌晨', '早上', '上午', '中午', '下午', '傍晚', '晚上', '深夜'
    ];

    // 阿拉伯数字转中文(针对数量/排行)
    function convertArabicToChineseForQuantifiers(text) {
        const pattern = /(\d+)(大行|个|位|只|条|张|本|支|块|次|趟|遍|顿|件|台|辆|部|首|句|家|所|间|座|扇|页|章|节|岁|年|月|天|小时|分钟|秒钟|元|角|分)/g;
        return text.replace(pattern, (match, numStr, unit) => {
            const num = parseInt(numStr, 10);
            if (isNaN(num)) return match;
            if (num === 10) return '十' + unit;
            if (num === 100) return '一百' + unit;
            if (num === 1000) return '一千' + unit;
            if (num === 10000) return '一万' + unit;
            let chineseNum = '';
            const str = num.toString();
            for (let ch of str) {
                chineseNum += arabicToChineseMap[ch] || ch;
            }
            return chineseNum + unit;
        });
    }

    // 中文数字整体转阿拉伯(支持小数)
    function chineseNumberToIntegerOrDecimal(str) {
        let s = str.replace(/两/g, '二');
        if (s.includes('点')) {
            const parts = s.split('点');
            const intVal = parseChineseInteger(parts[0]);
            if (intVal === null) return null;
            let decimalStr = '';
            for (let ch of parts[1]) {
                if (digitMap[ch]) decimalStr += digitMap[ch];
                else return null;
            }
            return intVal + '.' + decimalStr;
        } else {
            return parseChineseInteger(s);
        }
    }

    function parseChineseInteger(str) {
        let s = str;
        let result = 0, current = 0, section = 0;
        for (let i = 0; i < s.length; i++) {
            const ch = s[i];
            const digit = digitMap[ch] ? parseInt(digitMap[ch]) : null;
            if (digit !== null) {
                current = digit;
            } else if (unitMap[ch]) {
                const unit = unitMap[ch];
                if (unit >= 10000) {
                    section = (section + current) * unit;
                    result += section;
                    section = 0;
                } else {
                    if (current === 0) current = 1;
                    section += current * unit;
                }
                current = 0;
            } else {
                return null;
            }
        }
        result += section + current;
        return result.toString();
    }

    // 处理“百分之”特殊情况
    function convertPercentExpression(text) {
        return text.replace(/百分之([零一二三四五六七八九两十百千万亿点]+)/g, (match, numStr) => {
            const converted = chineseNumberToIntegerOrDecimal(numStr);
            if (converted !== null) return '百分之' + converted;
            return match;
        });
    }

    // 处理并列数字
    function splitAndConvertChineseNumbers(str) {
        if (!/[十百千万亿]/.test(str) && str.length >= 7) {
            let result = '';
            for (let ch of str) {
                result += digitMap[ch] !== undefined ? digitMap[ch] : ch;
            }
            return result;
        }
        const units = ['亿', '万', '千', '百', '十'];
        for (let unit of units) {
            const count = (str.match(new RegExp(unit, 'g')) || []).length;
            if (count > 1) {
                const parts = str.split(unit);
                const results = [];
                for (let i = 0; i < parts.length - 1; i++) {
                    let part = parts[i] + unit;
                    const converted = chineseNumberToIntegerOrDecimal(part);
                    if (converted !== null) results.push(converted);
                }
                const lastPart = parts[parts.length - 1].trim();
                if (lastPart !== '') {
                    const converted = chineseNumberToIntegerOrDecimal(lastPart);
                    if (converted !== null) results.push(converted);
                }
                if (results.length > 0) return results.join(',');
            }
        }
        return null;
    }

    function convertChineseNumbers(text) {
        text = convertArabicToChineseForQuantifiers(text);
        text = convertPercentExpression(text);
        const sortedProtected = [...protectedWords].sort((a, b) => b.length - a.length);
        const placeholders = [];
        let processedText = text;
        sortedProtected.forEach((word, index) => {
            const regex = new RegExp(word, 'g');
            processedText = processedText.replace(regex, (match) => {
                const placeholder = `__PROTECTED_${index}__`;
                placeholders.push({ placeholder, original: match });
                return placeholder;
            });
        });

        const pattern = /[零一二三四五六七八九两幺十百千万亿点]+/g;
        let convertedText = processedText.replace(pattern, (match) => {
            const splitResult = splitAndConvertChineseNumbers(match);
            if (splitResult !== null) return splitResult;

            const numResult = chineseNumberToIntegerOrDecimal(match);
            if (numResult !== null) return numResult;

            let result = '';
            for (let ch of match) {
                result += digitMap[ch] !== undefined ? digitMap[ch] : ch;
            }
            return result;
        });

        placeholders.forEach(({ placeholder, original }) => {
            convertedText = convertedText.replace(new RegExp(placeholder, 'g'), original);
        });

        return convertedText;
    }

    // 标点注入:完全不生成感叹号,仅保留问号和句号
    function addPunctuation(text) {
        if (!text) return text;
        text = text.trim();
        if (!CONFIG.smartPunctuation) {
            const last = text.slice(-1);
            if (['。', '?', '.', '?'].includes(last)) return text;
            return text + '。';
        }

        // 若已有终结标点,只保留问号或句号,感叹号一律替换为句号
        if (/[。?!.!?]$/.test(text)) {
            const lastChar = text.slice(-1);
            if (lastChar === '!' || lastChar === '!') {
                return text.slice(0, -1) + '。';
            }
            if (lastChar === '?' || lastChar === '?' || lastChar === '。' || lastChar === '.') {
                return text;
            }
            // 其他情况(如英文问号)统一转中文标点
            return text.slice(0, -1) + '。';
        }

        // 句首叹词加逗号
        const interjections = ['哎', '哎呀', '唉', '哦', '嗯', '喂', '嗨', '啊'];
        for (let ij of interjections) {
            if (text.startsWith(ij) && text.length > ij.length && !/[,,、]/.test(text[ij])) {
                text = ij + ',' + text.slice(ij.length).trim();
                break;
            }
        }

        // 疑问判断
        const questionPronouns = ['谁', '什么', '哪', '怎么', '怎样', '多少', '几', '何', '啥', '呢'];
        const yesNoPattern = /有没有|是不是|行不行|去不去|来不来|会不会|要不要|可不可以|能否|是否|在不在|对不对|好不好/;
        const hasQuestionPronoun = questionPronouns.some(p => text.includes(p));
        const hasYesNo = yesNoPattern.test(text);
        const hasMa = text.includes('吗');

        if (hasMa || hasQuestionPronoun || hasYesNo) {
            if (hasMa) {
                const maIndex = text.lastIndexOf('吗');
                if (text[maIndex + 1] !== '?' && text[maIndex + 1] !== '?') {
                    text = text.slice(0, maIndex + 1) + '?' + text.slice(maIndex + 1);
                }
                text = text.replace(/([?。!])\s*([?。!])/g, '');
                if (!/[。?!]$/.test(text)) text += '。';
                return text;
            } else {
                const modalParticles = ['啊', '呀', '呢', '吧', '哦', '哟', '啦', '喽', '嘿', '哈', '哇'];
                let lastModalIndex = -1;
                for (let i = text.length - 1; i >= Math.floor(text.length / 2); i--) {
                    if (modalParticles.includes(text[i])) { lastModalIndex = i; break; }
                }
                if (lastModalIndex === -1) {
                    for (let i = text.length - 1; i >= 0; i--) {
                        if (modalParticles.includes(text[i])) { lastModalIndex = i; break; }
                    }
                }
                let result = text;
                if (lastModalIndex !== -1) {
                    result = text.slice(0, lastModalIndex + 1) + '?' + text.slice(lastModalIndex + 1);
                } else {
                    result = text + '?';
                }
                result = result.replace(/([?。!])\s*([?。!])/g, '');
                if (!/[。?!]$/.test(result)) result += '。';
                return result;
            }
        }

        // 默认加句号
        return text + '。';
    }

    // 有效性判断(包含纯问候语过滤)
    function isValidText(originalText) {
        const pureGreetings = /^(你好|您好|喂|嗨|在吗|哈喽)[!!。??]*$/;
        if (pureGreetings.test(originalText.trim())) return false;

        if (CONFIG.invalidKeywords.some(kw => originalText.includes(kw))) return false;
        const letters = originalText.match(/[a-zA-Z]/g) || [];
        if (letters.length / originalText.length > CONFIG.englishRatioThreshold) return false;
        return true;
    }

    function setTextareaValue(textarea, value) {
        const nativeSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value')?.set;
        if (nativeSetter) nativeSetter.call(textarea, value);
        else textarea.value = value;
        textarea.dispatchEvent(new Event('input', { bubbles: true }));
        textarea.dispatchEvent(new Event('change', { bubbles: true }));
        textarea.dispatchEvent(new Event('blur', { bubbles: true }));
    }

    async function processAll() {
        const items = Array.from(document.querySelectorAll('.labelRender-item'));
        console.log(`找到 ${items.length} 个条目`);

        for (let i = 0; i < items.length; i++) {
            const item = items[i];
            let textarea = null, radioGroup = null;
            const wraps = item.querySelectorAll('.labelRender-item-answer-wrap');
            for (let wrap of wraps) {
                const titleEl = wrap.querySelector('.labelRender-item-answer-title');
                if (!titleEl) continue;
                const titleText = titleEl.innerText.trim();
                if (titleText.includes('转写文本')) textarea = wrap.querySelector('textarea.ant-v5-input');
                else if (titleText.includes('是否有效')) radioGroup = wrap;
            }
            if (!textarea || !radioGroup) {
                console.warn(`条目 ${i+1} 缺少控件,跳过`);
                continue;
            }
            if (textarea.value.trim() && radioGroup.querySelector('input[type="radio"]:checked')) {
                console.log(`条目 ${i+1} 已处理,跳过`);
                continue;
            }
            const originalDiv = item.querySelector('.dt-text-container > div');
            const original = originalDiv ? originalDiv.innerText.trim() : '';
            if (!original) {
                console.warn(`条目 ${i+1} 无原始文本,跳过`);
                continue;
            }
            const effective = isValidText(original);
            let targetText = '';
            if (effective) {
                const converted = convertChineseNumbers(original);
                targetText = addPunctuation(converted);
            }

            console.log(`\n--- 条目 ${i+1} ---`);
            console.log(`原始: ${original}`);
            console.log(`有效: ${effective}`);
            if (effective) console.log(`转写: ${targetText}`);

            let success = false;
            for (let retry = 0; retry < CONFIG.retryCount && !success; retry++) {
                if (effective) {
                    setTextareaValue(textarea, targetText);
                    await new Promise(r => setTimeout(r, CONFIG.postFillDelay));
                    if (textarea.value !== targetText) continue;
                } else {
                    setTextareaValue(textarea, '');
                    await new Promise(r => setTimeout(r, CONFIG.postFillDelay));
                }
                const labels = radioGroup.querySelectorAll('label.ant-v5-radio-wrapper');
                let clicked = false;
                for (let label of labels) {
                    const labelSpan = label.querySelector('.ant-v5-radio-label');
                    if (labelSpan && labelSpan.innerText.trim() === (effective ? '有效' : '无效')) {
                        if (!label.classList.contains('ant-v5-radio-wrapper-checked')) {
                            label.click();
                            await new Promise(r => setTimeout(r, CONFIG.postClickDelay));
                        }
                        clicked = true;
                        break;
                    }
                }
                if (!clicked) {
                    const radio = Array.from(radioGroup.querySelectorAll('input[type="radio"]')).find(r => r.value === (effective ? '有效' : '无效'));
                    if (radio && !radio.checked) {
                        radio.checked = true;
                        radio.dispatchEvent(new Event('change', { bubbles: true }));
                        radio.dispatchEvent(new Event('click', { bubbles: true }));
                        await new Promise(r => setTimeout(r, CONFIG.postClickDelay));
                    }
                }
                if (effective && textarea.value !== targetText) {
                    setTextareaValue(textarea, targetText);
                } else {
                    success = true;
                }
            }
            if (!success) console.error(`条目 ${i+1} 处理失败`);
            textarea.scrollIntoView({ behavior: 'smooth', block: 'center' });
            await new Promise(r => setTimeout(r, CONFIG.delayBetweenItems));
        }
        console.log('所有条目处理完成!');
    }

    processAll().catch(console.error);
})();

存在识别不准确的bug,单位计数转化时概率会出现问题。

功能:自动勾选是否有效,自动将文本填写至文本框内,并且加上一定的标点符号(不稳定)

1.0呢?那压根用不了!

© 版权声明
THE END
喜欢就支持一下吧
点赞1 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容