Greasy Fork

Greasy Fork is available in English.

必应Rewards热搜自动输入任务

自动抓取抖音/微博/百度/头条热搜词,每次自动填入Bing搜索框并回车(自动提交),首次启动弹窗全部热词。每次5-10秒随机延迟。热搜词只在第一次启动时获取。

当前为 2025-06-25 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         必应Rewards热搜自动输入任务
// @version      2.1.0
// @description  自动抓取抖音/微博/百度/头条热搜词,每次自动填入Bing搜索框并回车(自动提交),首次启动弹窗全部热词。每次5-10秒随机延迟。热搜词只在第一次启动时获取。
// @author       Sentaku1129
// @match        https://www.bing.com/*
// @match        https://cn.bing.com/*
// @license      GNU GPLv3
// @icon         https://www.bing.com/favicon.ico
// @run-at       document-end
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @namespace    http://greasyfork.icu/users/1029902
// ==/UserScript==

var max_rewards = 30; // 每日最大自动输入次数
const appkey = ""; // 如有API key请填写
const Hot_words_apis = "https://api.gmya.net/Api/";
const keywords_source = ['BaiduHot', 'TouTiaoHot', 'DouYinHot', 'WeiBoHot'];
const default_search_words = [
    "盛年不重来,一日难再晨", "千里之行,始于足下", "少年易学老难成,一寸光阴不可轻", "敏而好学,不耻下问", "海内存知已,天涯若比邻", "三人行,必有我师焉",
    "莫愁前路无知已,天下谁人不识君", "人生贵相知,何用金与钱", "天生我材必有用", "海纳百川有容乃大;壁立千仞无欲则刚", "穷则独善其身,达则兼济天下", "读书破万卷,下笔如有神",
    "学而不思则罔,思而不学则殆", "一年之计在于春,一日之计在于晨", "莫等闲,白了少年头,空悲切", "少壮不努力,老大徒伤悲", "一寸光阴一寸金,寸金难买寸光阴", "近朱者赤,近墨者黑",
    "吾生也有涯,而知也无涯", "纸上得来终觉浅,绝知此事要躬行", "学无止境", "己所不欲,勿施于人", "天将降大任于斯人也", "鞠躬尽瘁,死而后已", "书到用时方恨少", "天下兴亡,匹夫有责",
    "人无远虑,必有近忧", "为中华之崛起而读书", "一日无书,百事荒废", "岂能尽如人意,但求无愧我心"
];

// 只在“开始”菜单真正启动时,抓取热搜并缓存
GM_registerMenuCommand('开始', function () {
    GM_setValue('Cnt', 0);
    GM_setValue('HotSearchList', null);
    fetchHotWords().then(words => {
        GM_setValue('HotSearchList', JSON.stringify(words));
        location.href = "https://www.bing.com/?br_msg=Please-Wait";
    });
}, 'o');

// 停止菜单
GM_registerMenuCommand('停止', function () {
    GM_setValue('Cnt', max_rewards + 10);
    alert("已停止自动输入!");
    location.reload();
}, 'o');

/**
 * 获取多平台热搜词(只在第一次菜单启动时执行)
 * @returns {Promise<string[]>}
 */
async function fetchHotWords() {
    for (let i = 0; i < keywords_source.length; i++) {
        const source = keywords_source[i];
        let url;
        if (appkey) {
            url = Hot_words_apis + source + "?format=json&appkey=" + appkey;
        } else {
            url = Hot_words_apis + source;
        }
        try {
            const response = await fetch(url);
            if (!response.ok) throw new Error('HTTP error! status: ' + response.status);
            const data = await response.json();
            if (data.data && data.data.length) {
                const titles = data.data.map(item => item.title);
                // 仅首次成功时弹窗全部热词
                alert("获取到的热搜词:\n" + titles.join('\n'));
                return titles.slice(0, max_rewards);
            }
        } catch (error) {
            // 某个来源失败则继续下一个
            console.error('热搜词来源请求失败:', error);
        }
    }
    alert("全部热搜API失效,使用默认搜索词。");
    return default_search_words.slice(0, max_rewards);
}

// 字符扰动,防检测
function AutoStrTrans(st) {
    let yStr = st;
    let rStr = "试验";
    let zStr = "";
    let prePo = 0;
    for (let i = 0; i < yStr.length;) {
        let step = parseInt(Math.random() * 6) + 1;
        if (i > 0) {
            zStr = zStr + yStr.substr(prePo, i - prePo) + rStr;
            prePo = i;
        }
        i = i + step;
    }
    if (prePo < yStr.length) {
        zStr = zStr + yStr.substr(prePo, yStr.length - prePo)
    }
    return zStr;
}

// 自动填入搜索框并回车
function fillBingInputAndEnter(words, cnt) {
    // 主输入框id为sb_form_q,或class为b_searchbox
    let input = document.getElementById('sb_form_q') || document.querySelector('.b_searchbox');
    if (input) {
        input.value = words[cnt % words.length];
        input.focus();
        input.select();
        // 创建并派发回车事件(实际触发提交)
        let e = new KeyboardEvent('keydown', {
            bubbles: true,
            cancelable: true,
            key: 'Enter',
            code: 'Enter',
            which: 13,
            keyCode: 13
        });
        input.dispatchEvent(e);
    }
}

// 自动滚动到底部
function smoothScrollToBottom() {
    document.documentElement.scrollIntoView({ behavior: 'smooth', block: 'end' });
}

// 主体自动输入+回车逻辑
(function () {
    'use strict';
    if (GM_getValue('Cnt') == null) GM_setValue('Cnt', max_rewards + 10);
    let cnt = GM_getValue('Cnt');
    let hotSearchList = GM_getValue('HotSearchList');
    if (cnt < max_rewards && hotSearchList) {
        let words = JSON.parse(hotSearchList);
        startFillInput(cnt, words);
    }

    function startFillInput(cnt, words) {
        let tt = document.getElementsByTagName("title")[0];
        if (tt) tt.innerHTML = "[" + cnt + " / " + max_rewards + "] " + tt.innerHTML;
        smoothScrollToBottom();
        // 5-10秒随机延迟
        let delay = Math.floor(Math.random() * 5000) + 5000;
        setTimeout(function () {
            GM_setValue('Cnt', cnt + 1);
            let nowtxt = words[cnt % words.length];
            nowtxt = AutoStrTrans(nowtxt);
            fillBingInputAndEnter([nowtxt], 0);
            // 自动回车,无需跳转链接
        }, delay);
    }
})();