您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Keeps alive Colab session (Adds a button for activation.) / Colab oturumunu aktif tutar.
// ==UserScript== // @name Google Colab Stay Alive // @namespace https://gist.github.com/mcakici/e418862ca6b448bb04f8aacf680478c0 // @version 1.1.1 // @description Keeps alive Colab session (Adds a button for activation.) / Colab oturumunu aktif tutar. // @include /^https?:\/\/colab\.research\.google\.com\/.*$/ // @run-at document-end // @grant none // ==/UserScript== (function() { window.addEventListener('load', function() { var isEnabled = false; var colabKeepAlive = null; //Keep Page Active Object.defineProperty(document, 'visibilityState', {value: 'visible', writable: true}); Object.defineProperty(document, 'hidden', {value: false, writable: true}); document.dispatchEvent(new Event("visibilitychange")); //Define MutationObserver to automatically reconnect var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; var observer = new MutationObserver(function(mutations) { setTimeout(function () { if(isEnabled === true && document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect") !== null){ console.log('> Colab Stay Alive Detected DOM changes.'); var ok = document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect"); var okTXT = ok.textContent if(okTXT.indexOf("Reconnect") !== -1 || okTXT.indexOf("RECONNECT") !== -1 || okTXT.indexOf("Connect") !== -1 || okTXT.indexOf("connect") !== -1 || okTXT.indexOf("CONNECT") !== -1 || okTXT.indexOf("Yeniden bağlan") !== -1 || okTXT.indexOf("Bağlan") !== -1 || okTXT.indexOf("Yeniden Bağlan") !== -1) { console.log('> Colab Stay Alive Reconnecting...'); ok.click(); console.log('> Colab Stay Alive Connected.'); } if(typeof document.getElementsByTagName('colab-recaptcha-dialog')[0] !== 'undefined'){ document.getElementsByTagName('iron-overlay-backdrop')[0].click(); } if(typeof document.getElementsByTagName('colab-dialog')[0] !== 'undefined' && typeof document.getElementsByTagName('colab-dialog')[0].textContent !== 'undefined'){ var dialogTXT = document.getElementsByTagName('colab-dialog')[0].textContent; if(dialogTXT.indexOf("Çalışma zamanının bağlantısı kesildi") !== -1 || dialogTXT.indexOf("runtime has timed out") !== -1){ document.getElementsByTagName('iron-overlay-backdrop')[0].click(); } } } }, 3000); }); observer.observe(document.body, {childList: true}); function Colab_KeepAlive(){ if(document.querySelector("#check_KeepAliveColab").checked && colabKeepAlive == null){ colabKeepAlive = setInterval(function(){ if(document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.getElementById('connect') !== null){ document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.getElementById('connect').click(); console.log("> Colab Stay Alive Connect Button Clicked Successfully."); } }, 60000); isEnabled = true; console.log("> Colab Stay Alive Activated."); }else{ clearInterval(colabKeepAlive); colabKeepAlive = null; isEnabled = false; console.log("> Colab Stay Alive Disabled."); } document.getElementById('check_KeepAliveColab').blur(); } console.log("> Colab Keep Alive Started."); var mydiv = document.createElement('div'); mydiv.style = 'position:fixed;top:0;left:47%;background:rgba(0,0,0,0.65);color:#000;z-index:999;padding:8px 10px;'; mydiv.innerHTML = '<paper-checkbox id="check_KeepAliveColab" role="checkbox"><span style="color:#fff">Keep-alive</span></paper-checkbox>'; document.getElementsByTagName('body')[0].appendChild(mydiv); document.getElementById("check_KeepAliveColab").addEventListener("click", Colab_KeepAlive); }); })();