当前位置: 首页 > news >正文

网站制作哪些类型网站建设教程软件

网站制作哪些类型,网站建设教程软件,网罗设计网站,网站开发工作标准目录 一、 引言 二、 逻辑 三、 源代码 四、 添加新脚本 五、 使用 六、 BUG 七、 优化日志 1.获取最后消息内容报错 一、 引言 deepseek每次第一次提问就正常#xff0c;后面就开始繁忙了#xff0c;有一点阴招全使我们身上。 greasyfork登不上#xff0c;不知道…目录 一、 引言 二、 逻辑 三、 源代码 四、  添加新脚本 五、 使用 六、 BUG 七、 优化日志 1.获取最后消息内容报错 一、 引言 deepseek每次第一次提问就正常后面就开始繁忙了有一点阴招全使我们身上。 greasyfork登不上不知道是不是被墙了所以直接在这里存档。 二、 逻辑 每隔5秒使用xpath表达式匹配当前对话框的最后一个消息出现“服务器繁忙请稍后再试。”即点击重试。 三、 源代码 // UserScript // name Deepseek 服务器繁忙无限重试 // namespace http://tampermonkey.net/ // version 2025-02-11 // description 每隔5秒检测一次最后一条数据是否出现服务器繁忙出现点击重试无限循环。 // author Vdoi // match *chat.deepseek.com/* // icon https://cdn.deepseek.com/chat/icon.png // grant none // /UserScript(function() {use strict;console.log(start)let intervalId null;//重试次数let retryCount 0// 每隔 5 秒检查一次var times 5000// 创建通知元素并插入到页面中function addNotification() {let notification document.getElementById(notification);if (!notification) { // 检查是否已存在通知元素notification document.createElement(div);notification.id notification;notification.style.position fixed;notification.style.left 50%;notification.style.top 50%;notification.style.transform translate(-50%, -50%);notification.style.backgroundColor #4D6BFE;notification.style.color white;notification.style.padding 15px;notification.style.borderRadius 5px;notification.style.boxShadow 0 4px 8px rgba(0, 0, 0, 0.2);notification.style.zIndex 1000;notification.style.textAlign center;notification.style.display none; // 默认隐藏document.body.appendChild(notification);}return notification;}// 显示通知的方法function showNotification(text) {//console.log(显示提示)const notification document.getElementById(notification);notification.textContent text;notification.style.display block;setTimeout(() {notification.style.display none;}, 3000); // 3秒后隐藏通知}//自动重试按钮点击事件function retryButtonClick() {var xpath //div[idretry]/span;var elementResult document.evaluate(xpath,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);var clickElement elementResult.singleNodeValue;clickElement.addEventListener(click, function() {//console.log(点击)const xpathExpression //div[idretry];const result document.evaluate(xpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const newButtonDiv result.singleNodeValue;var text times 毫秒后开启自动重试if (clickElement.textContent 打开自动重试) {console.log(已开启自动重试)showNotification(text); // 显示通知// 设置背景颜色newButtonDiv.style.backgroundColor #4D6BFE;// 设置文字颜色为白色newButtonDiv.style.color white;//开启定时器clickElement.textContent 关闭自动重试;intervalId setInterval(() checkAndClick(times), times);} else {console.log(已关闭自动重试)text 已关闭自动重试showNotification(text); // 显示通知// 设置背景颜色newButtonDiv.style.backgroundColor white;// 设置文字颜色为白色newButtonDiv.style.color #4D6BFE;// 如果定时器已启动则清除它并更新按钮文本clearInterval(intervalId);intervalId null;clickElement.textContent 打开自动重试;}});}//增加自动重试按钮function addButton() {const xpathExpression //span[contains(text(),深度思考)]/../../div[2];const result document.evaluate(xpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const targetElement result.singleNodeValue;//console.log(增加, targetElement)if (targetElement) {// 创建要插入的 div 元素按钮const newButtonDiv document.createElement(div);newButtonDiv.setAttribute(class, ds-button ds-button--primary d9f56c96);newButtonDiv.setAttribute(id, retry);// 设置背景颜色newButtonDiv.style.backgroundColor white;// 设置文字颜色为白色newButtonDiv.style.color #4D6BFE;// 创建内部的 span 元素const buttonTextSpan document.createElement(span);buttonTextSpan.setAttribute(class, ad0c98fd);buttonTextSpan.textContent 打开自动重试;// 将 span 元素添加到按钮 div 中newButtonDiv.appendChild(buttonTextSpan);// 在目标元素后面插入新按钮元素console.log(增加)targetElement.parentNode.insertBefore(newButtonDiv, targetElement.nextSibling);//targetElement.appendChild(newButtonDiv);//增加点击事件//retryButtonClick()}}//当前页面最后消息function lastNews(){// 定义 XPath 表达式const xpathExpression //*[idroot]/div/div[2]/div[2]/div/div[2]/div/div/div[1]/div[last()]/div[classds-markdown ds-markdown--block]//p;let flag false// 使用 document.evaluate() 方法执行 XPath 查询const result document.evaluate(xpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const targetElement result.singleNodeValue;//增加空判断if (targetElement){console.log(targetElement.textContent)if (targetElement.textContent 服务器繁忙请稍后再试。) {flag true;}}return flag;}//点击重试function clickRe(){const exists lastNews()if (exists) {console.log(检测到服务器繁忙提示尝试点击按钮...);// 定义用于定位按钮的 XPath 表达式const buttonXpathExpression //*[idroot]/div/div[2]/div[2]/div/div[2]/div/div/div[1]/div[last()]//div[2]/div[classds-icon];// 执行 XPath 查询以获取按钮元素const buttonResult document.evaluate(buttonXpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const buttonToClick buttonResult.singleNodeValue;if (buttonToClick) {buttonToClick.click();console.log(按钮已点击);var text 次重试;showNotification(text)} else {console.log(未找到要点击的按钮);}}}//重试次数function getreCount(){//重试次数const xpathCount //*[idroot]/div/div[2]/div[2]/div/div[2]/div/div/div[1]/div[last()]/div[classds-flex]/div[classds-flex]/div[2]const countResult document.evaluate(xpathCount,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const countElement countResult.singleNodeValue;if (countElement){const count countElement.textContent;console.log(重试文本 count)const parts count.split( / );const numberBeforeSlash parseInt(parts[0], 10);console.log(重试次数 numberBeforeSlash);}}//检查等待加载函数function checkDsLoadingElementExists() {const xpathExpression //*[idroot]//div[contains(class,ds-loading)];const result document.evaluate(xpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const loadingElement result.singleNodeValue;return Boolean(loadingElement);}// 定时重试函数function checkAndClick(times) {console.log(每隔 times 毫秒检查一次)//重试次数getreCount()//是否含有加载元素const exists checkDsLoadingElementExists();const exists2 lastNews()if (exists) {console.log(找到了包含 ds - loading 类的元素。);} else{if (exists2){console.log(未找到了包含 ds - loading 类的元素。);//点击重试clickRe();//增加重试次数retryCount;//显示提示var text 已重试 retryCount 次showNotification(text)}}console.log()}//检查按钮存在function checkButton(times){//console.log(times 毫秒检查一次重试按钮是否存在)const xpath //span[contains(text(),自动重试)];const result document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);if (result.singleNodeValue null) {//增加按钮addButton()}}//新对话框点击事件function clickNewButton(){var xpath //div[text()开启新对话];var elementResult document.evaluate(xpath,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);var clickElement elementResult.singleNodeValue;if (clickElement){clickElement.addEventListener(click, function() {console.log(开启新对话)setTimeout(() {checkButton(0)}, 1000);})}}function clickNewButton2(){var xpath //span[text()开启新对话];var elementResult document.evaluate(xpath,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);var clickElement elementResult.singleNodeValue;if (clickElement){clickElement.addEventListener(click, function() {console.log(开启新对话2)setTimeout(() {checkButton(0)}, 1000);})}}//加载完成window.onload function() {// 页面所有资源加载完成后执行的代码console.log(页面所有资源加载完成后执行的代码)//增加按钮addButton()//为按钮增加点击事件retryButtonClick()//增加提示addNotification()//检测按钮变化//clickNewButton()//clickNewButton2()//定时检查重试按钮是否存在setInterval(() checkButton(times), times);}})(); 四、  添加新脚本 在任意网页中打开油猴脚本菜单 保存打开deepseek网页出现自动重试按钮即可。 五、 使用 点击打开或关闭自动重试会出现相应提示框 六、 BUG 已知BUG 1. 在开启重试过程中切换多个对话框可能会无法结束建议只在当前对话框中使用。 后面再慢慢优化吧。 七、 优化日志 1.获取最后消息内容报错 编号 ERROR-2025021301-LAST_MESSAGE_FETCH 时间 2025-02-13 17:00:21 图例 描述 在尝试获取聊天记录或消息列表中的最后一条消息时由于未事先判断目标元素是否存在直接访问该元素导致程序抛出异常。 修改说明 增加空判断元素存在再输出。 原代码 //当前页面最后消息function lastNews(){// 定义 XPath 表达式const xpathExpression //*[idroot]/div/div[2]/div[2]/div/div[2]/div/div/div[1]/div[last()]/div[classds-markdown ds-markdown--block]//p;let flag false// 使用 document.evaluate() 方法执行 XPath 查询const result document.evaluate(xpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const targetElement result.singleNodeValue;console.log(targetElement.textContent)if (targetElement targetElement.textContent 服务器繁忙请稍后再试。) {flag true;}return flag;} 更改代码 //当前页面最后消息function lastNews(){// 定义 XPath 表达式const xpathExpression //*[idroot]/div/div[2]/div[2]/div/div[2]/div/div/div[1]/div[last()]/div[classds-markdown ds-markdown--block]//p;let flag false// 使用 document.evaluate() 方法执行 XPath 查询const result document.evaluate(xpathExpression,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);const targetElement result.singleNodeValue;//增加空判断if (targetElement){console.log(targetElement.textContent)if (targetElement.textContent 服务器繁忙请稍后再试。) {flag true;}}return flag;} 对比
http://www.w-s-a.com/news/767398/

相关文章:

  • 网站建设后怎么赚钱wordpress调用导航栏
  • 特产网站设计六色网站
  • 服务器网站备案做网站公司如何赚钱
  • 怎样进行站点优化荣成市有做网站的吗
  • 合肥建设工会网站芜湖做网站建设公司
  • 玉林市住房和城乡建设局网站网站开发百灵鸟
  • 网站怎么做双机房切换建设部网站2015年第158号
  • 郑州服务设计公司网站色块的网站
  • 网站设计所用到的技术做网站添加mp3
  • 凡科做的微网站怎样连接公众号seo李守洪排名大师
  • 温州网站开发网站的制作东莞寮步伟易达电子厂
  • 北京网站设计制作关键词优化微信小程序开发推广网站建设优化规划书
  • 杭州临平网站建设开发公司将购房款划给总公司的法律责任
  • 广东外贸网站推广分类wordpress
  • 聚美优品网站建设方案商城和营销型网站建设
  • 比较著名的seo网站如何建设网站?
  • 如何做商业网站最火wordpress主题
  • 建设网站需要哪些软硬件条件wordpress文章页标题优化
  • 网站建设功能需求文档wordpress 1g1核1m
  • 学做窗帘要下载哪个网站用户反馈数据分析软件园
  • 宁晋网站建设多少钱产品宣传推广方式有哪些
  • delphi做网站阿里巴巴官网首页登录入口
  • 游戏网站怎么建设新建wordpress模板
  • 网络服务器是指兰州网站seo诊断
  • 怎样做投资理财网站godaddy上传网站
  • 网站建设深圳哪家好世界500强企业招聘网站
  • 如何减少网站建设中的错误温州网站公司哪家好
  • 宜章网站建设北京定制公交网站
  • 怎么让谷歌收录我的网站郑州网站建设更好
  • 在线视频网站开发方案phpaspnet网站开发实例视频