bye-dude

百度拜拜。功能 1、搜索时排除百家号; 2、阻止搜索框占位关键词推广。 启用或者禁用百度拜拜: 1、白名单包括 放假、万年历、[快递单号] ; 2、输入框内使用快捷键 【Ctrl+K】切换启用或者禁用。

目前為 2025-05-27 提交的版本,檢視 最新版本

// ==UserScript==
// @name         bye-dude
// @namespace    https://gf.qytechs.cn/users/866159
// @version      0.0.4
// @description  百度拜拜。功能 1、搜索时排除百家号; 2、阻止搜索框占位关键词推广。 启用或者禁用百度拜拜: 1、白名单包括 放假、万年历、[快递单号] ; 2、输入框内使用快捷键 【Ctrl+K】切换启用或者禁用。
// @author       Song
// @match        *://www.baidu.com
// @match        *://www.baidu.com/s?*
// @icon         https://www.baidu.com/favicon.ico
// @license MIT
// @grant        none
// ==/UserScript==
(function () {
    'use strict';


    // -(site:baijiahao.baidu.com)
    const excludeSites = ['baijiahao.baidu.com', 'csdn.net'];
    const ignoreWords = ['假期', '放假', '万年历'];

    /**
     *  常见快递单号特征:纯数字12-18位 / 字母+数字组合10-20位
     * @type {RegExp[]}
     */
    const expressPatterns = [
        /^\d{12,18}$/,            // 纯数字型(如顺丰、韵达)
        /^[A-Za-z0-9]{10,20}$/,   // 字母数字混合(如EMS、京东)
        /^[A-Za-z]{2}\d{9,11}$/,  // 2字母开头+数字(如圆通YT开头)
        /^SF\d{12}$/              // 顺丰特殊格式
    ];
    const byeDu = {
        enabled: true,
        toggle() {
            this.setEnabled(!this.enabled)
            return this.enabled;
        },
        setEnabled(enabled) {
            this.enabled = enabled;
            let btn = document.querySelector('.s_btn')
            if (btn) {
                btn.style.transition = 'background-color 0.4s ease';
                btn.style.borderColor = btn.style.backgroundColor = enabled ? '#04AA6D' : '#3385ff';
                setTimeout(() => btn.value = enabled ? '百度两下' : '百度一下', 300)
            } else {
                console.warn('[bye-du]', '未找到搜索按钮')
            }

        }
    }


    /**
     * 疑似快递单号
     * @param {string} num 待检测字符串
     * @returns {boolean} 是否为疑似快递单号
     */
    function likeExpressNumber(num) {
        if (num.length < 10) return false;
        return expressPatterns.some(pattern => pattern.test(num));
    }

    /**
     *
     * @param {string} word
     * @return {boolean}
     */
    function shouldIgnore(word) {
        for (let w of ignoreWords) {
            if (word.indexOf(w) > -1) {
                return true;
            }
        }
        return likeExpressNumber(word);
    }


    function beforeSubmit() {
        const input = document.querySelector('#kw');
        input.addEventListener('keydown', (e) => {
            if (e.ctrlKey && e.key === 'k') {
                e.preventDefault(); // 阻止默认行为(如浏览器搜索快捷键)
                byeDu.toggle();
                console.log('Ctrl+K 被按下');
                // 在这里添加你的自定义逻辑
            }
        })
        input.addEventListener('focus', () => {
            let w = input.value;
            if (w.length > 7) {
                excludeSites.forEach(s => {
                    w = w.replaceAll(` -site:${s}`, '');
                });
                console.info('focus 处理后', w)
                input.value = w;
            } else {
                console.info('focus value', w.length, w)
            }
        });
        document.querySelector('#form')
            .addEventListener('submit', (_e) => {
                const w = input.value;
                if (!byeDu.enabled) return;
                if (shouldIgnore(w)) return;
                const sites = excludeSites.map(s => `-site:${s}`).filter(s => w.indexOf(s) < 0);
                if (sites.length > 0) {
                    input.value = w.trim() + ' ' + sites.join(' ');
                }

            }, {capture: true});
    }

    function clearPlace() {
        const input = document.querySelector('#kw');
        input.placeholder = '';
        Object.defineProperty(input, 'placeholder', {
            set(value) {
                console.info('prevent set placeholder to', value)
            },
            get() {
                return '';
            }
        })
    }

    clearPlace();
    byeDu.setEnabled(true);
    beforeSubmit();
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址