// ==UserScript== // @name 腾讯元宝自动切换至deepseek // @namespace http://tampermonkey.net/ // @version 1.0 // @license MIT // @description 腾讯元宝进入页面和新建对话时自动切换模型为deepseek // @author Diyun // @match https://yuanbao.tencent.com/* // @icon https://cdn-bot.hunyuan.tencent.com/logo.png // @grant none // @run-at document-end // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 智能元素检测函数 const waitForElement = (selector, isXPath = false) => { return new Promise(resolve => { const check = () => { let element; if (isXPath) { const result = document.evaluate( selector, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ); element = result.singleNodeValue; } else { element = document.querySelector(selector); } element ? resolve(element) : setTimeout(check, 50); }; check(); }); }; // 模型切换主逻辑 const autoSwitchModel = async () => { try { // 第一阶段:等待并点击模型切换按钮 const switchBtn = await waitForElement('button[dt-button-id="model_switch"]'); switchBtn.click(); // 第二阶段:等待并选择目标模型 const targetItem = await waitForElement( '//div[contains(@class,"drop-down-item")][.//div[text()="DeepSeek"]][.//div[contains(.,"深度思考")]]', true ); targetItem.click(); console.log('[智能切换] 模型切换成功'); } catch (err) { console.error('[智能切换] 操作失败:', err); } }; // 绑定新建对话按钮监听 const bindNewChatListener = async () => { try { const newChatBtn = await waitForElement('.yb-common-nav__hd__new-chat.J_UseGuideNewChat0'); newChatBtn.addEventListener('click', () => { console.log('[智能切换] 检测到新建对话操作'); setTimeout(autoSwitchModel, 800); // 稍作延迟确保DOM更新 }); } catch (err) { console.error('[智能切换] 新建对话按钮绑定失败:', err); } }; // 页面初始化逻辑 const init = () => { // 首次加载执行 setTimeout(() => { autoSwitchModel(); bindNewChatListener(); }, 1000); // 持续监听DOM变化(应对SPA场景) const observer = new MutationObserver(() => { bindNewChatListener(); // 自动重新绑定可能新出现的按钮 }); observer.observe(document.body, { childList: true, subtree: true }); }; // 启动脚本 window.addEventListener('load', init); })();