make colab keep alive
// ==UserScript== // @name colab 保持活跃 / make colab keep alive // @name:zh colab 保持活跃 // @name:en colab keep alive // @name:zh-CN 使 colab 保持活跃 // @name:ja colab アクティブに保存 // @namespace https://colab.research.google.com // @version 2.0 // @description:zh 让colab 保存活跃 // @description:en make colab keep alive // @description:zh-CN 让 colab 保存活跃 // @description:ja Google colab アクティブに保存 // @author Epool, WangZha // @match *://colab.research.google.com/* // @grant none // @license MIT // @description make colab keep alive // ==/UserScript== // 定义保持活跃的行为 var timeOutIds = [] function keep_active() { 'use strict'; // 定义行为 function ClickConnect(){ colab.config console.log("Connnect Clicked - Start"); document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click(); console.log("Connnect Clicked - End"); } // 设置随机行为时间 var max = 120490 var min = 60010 var randomTime = []; var currentIndex = 0; var nextInterval function runInterval() { // 执行你的操作 ClickConnect(); // 添加下一个随机时间 randomTime.push(parseInt(Math.random()*(max-min+1)+min,10)) // 下一个调用的时间间隔为时间序列中的下一个值 nextInterval = randomTime[currentIndex]; console.log(`下一次行动${nextInterval}`) // 更新索引 currentIndex++; // 使用 setTimeout 函数递归调用,以达到动态更改时间间隔的目的 timeOutIds.push(setTimeout(runInterval, nextInterval)); } // 第一次调用使用时间序列中的第一个值 timeOutIds.push(setTimeout(runInterval, 5000)); } // 创建 button 元素 var button = document.createElement('button'); button.id = 'floating-button'; button.innerText = '保持活跃'; // 创建 style 标签,设置样式 var style = document.createElement('style'); style.innerHTML = ` #floating-button { position: fixed; bottom: 20px; right: 20px; width: 75px; height: 35px; background-color: #ccc; color: #fff; border-radius: 23%; text-align: center; line-height: 20px; cursor: pointer; z-index: 999; } #floating-button.active { background-color: #007bff; } `; // 添加按钮事件监听器和 run 函数 var isActive = false; button.addEventListener('mousedown', function(event) { var offsetX = event.clientX - button.offsetLeft; var offsetY = event.clientY - button.offsetTop; function moveButton(event) { button.style.left = (event.clientX - offsetX) + 'px'; button.style.top = (event.clientY - offsetY) + 'px'; } document.addEventListener('mousemove', moveButton); button.addEventListener('mouseup', function() { document.removeEventListener('mousemove', moveButton); }); }); button.addEventListener('click', function() { isActive = !isActive; if (isActive) { button.classList.add('active'); keep_active(); } else { button.classList.remove('active'); timeOutIds.forEach(function(id){clearTimeout(id);}) console.log(`清楚任务${timeOutIds}`) timeOutIds = [] } }); // 添加元素到工具栏 setTimeout(function(){ var topToolbar = document.getElementById('top-toolbar') console.log(topToolbar) if (topToolbar){ console.log("开始添加元素") topToolbar.appendChild(button); document.head.appendChild(style); console.log("添加完成") } },5000);