您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
南航算力平台增强脚本 ssh命令一键复制
// ==UserScript== // @name 南航算力平台增强脚本 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 南航算力平台增强脚本 ssh命令一键复制 // @author You // @match http://hpcai.nuaa.edu.cn/dashboard // @icon http://hpcai.nuaa.edu.cn/static/img/logo.375eb001.svg // @require https://cdn.staticfile.org/jquery/3.6.0/jquery.min.js // @grant GM_setClipboard // @grant GM_notification // ==/UserScript== (function() { 'use strict'; // Your code here... let machine_list = [] function addSshButtonOnPage() { let divs = $(".model_hd") console.log(divs) $(".addBtn").remove(); for(let i = 0; i < divs.length; i++){ let u = divs[i] console.log(u.outerText) let content = u.outerText var reg1 = /实例ID: (.*)/; console.log(reg1.exec(content)[1].trim()); let task_id = reg1.exec(content)[1].trim() let uid = `ssh-${task_id}` // if($(`#${uid}`).length > 0){ // $(`#${uid}`).remove(); // //continue // } let port = '' for(let j = 0; j < machine_list.length; j++) { if(task_id == machine_list[j].task_id) { port = machine_list[j].port; break; } } //let newBtn = $('<button data-v-d739442c="" type="button" id="ssh" class="el-button el-button--success"><!----><!----><span> ssh命令 </span></button>'). const newBtn = document.createElement("button"); newBtn.setAttribute("class", "el-button el-button--success addBtn"); newBtn.setAttribute("type", "button"); newBtn.setAttribute("id", uid); // 创建一个 span 元素 const span = document.createElement("span"); // 在 span 元素中添加文本 const textNode = document.createTextNode("ssh命令"); // 将文本节点添加到 span 元素中 span.appendChild(textNode); newBtn.appendChild(span); divs[i].lastChild.append(newBtn) $(`#${uid}`).click(function () { //$(this).addClass("active"); console.log('666') // that.$message('这是一条消息提示'); //let port = '1234' GM_setClipboard(`ssh [email protected] -p ${port}`); GM_notification({text: "ssh命令已复制到剪切板", title: "南航算力平台增强脚本", timeout: 2500}); }) } } //setTimeout(() => {addSshButtonOnPage()}, 1000); var _ajax = window.XMLHttpRequest.prototype.send; window.XMLHttpRequest.prototype.send = function () { this.addEventListener('readystatechange', function () { if (this.readyState == 4) { //console.log(this) //console.log(this.response); var data1 = JSON.parse(this.response).data; let res = this.response; if(!Array.isArray(data1) || data1.length == 0) { return } //console.log(typeof this.response) //console.log(data) let tmp_list = []; //console.log(data1, machine_list) for(let i = 0; i < data1.length; i++) { tmp_list.push({'task_id': data1[i].task_id, 'port': data1[i].port}); } let flag = false; for(let i = 0; i < data1.length; i++){ let exist = false; for(let j = 0; j < machine_list.length; j++){ if(data1[i].task_id == machine_list[j].task_id){ exist = true; break } } if(!exist){ flag = true; break } } //console.log(tmp_list, machine_list) if(flag) { machine_list = tmp_list; addSshButtonOnPage(); } } }, false); _ajax.apply(this, arguments); }; })();