您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Keep the Kaggle Notebook alive by simulating user activity
- // ==UserScript==
- // @name Keep Kaggle Notebook Alive
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description Keep the Kaggle Notebook alive by simulating user activity
- // @author liuweiqing
- // @match https://www.kaggle.com/*
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function () {
- "use strict";
- // 每隔5分钟模拟一次点击事件,以保持Kaggle Notebook的活动状态
- function keepAlive() {
- console.log("Keeping the Kaggle Notebook alive...");
- const addButton = document.querySelector('button[aria-label="Add cell"]');
- if (addButton) {
- addButton.click(); // 模拟点击添加单元格按钮
- }
- const runButton = document.querySelector(
- 'button[aria-label="Run current cell"]'
- );
- if (runButton) {
- runButton.click(); // 模拟点击运行单元格按钮
- }
- const cutButton = document.querySelector('button[aria-label="Cut cell"]');
- if (cutButton) {
- cutButton.click(); // 模拟点击删除单元格按钮
- }
- // 随机生成几分钟的间隔
- const randomInterval =
- Math.floor(Math.random() * (100000 - 50000 + 1)) + 240000;
- console.log(`Next execution in ${randomInterval} milliseconds.`);
- // 重新设置定时器
- setTimeout(keepAlive, randomInterval);
- }
- // 首次调用
- keepAlive();
- // 300000 毫秒 = 5 分钟
- // 这种形式已经无法触发任何按键了
- // const ctrlEnterEvent = new KeyboardEvent("keydown", {
- // bubbles: true,
- // cancelable: true,
- // key: "Enter",
- // code: "Enter",
- // location: 0,
- // ctrlKey: true, // 表示 Ctrl 键被按下
- // repeat: false,
- // });
- // document.dispatchEvent(EnterEvent);
- })();