From 57ab770e3408f1c2f85a188509b16905599d2e4b Mon Sep 17 00:00:00 2001 From: 502647092 Date: Mon, 30 Jun 2025 08:29:39 +0000 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E8=BF=87=20node=5Fname=20=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=AE=9A=E4=BD=8D=E9=9C=80=E8=A6=81=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E7=9A=84=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jumpserver/luna.user.js | 47 +++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/jumpserver/luna.user.js b/jumpserver/luna.user.js index 3d156ee..0b653ce 100644 --- a/jumpserver/luna.user.js +++ b/jumpserver/luna.user.js @@ -5,20 +5,21 @@ // @description Jumpserver Web终端 扩展 // @author MiaoWoo // @match https://jump.miaowoo.cc/luna/* +// @match https://jump.c5mc.cn/luna/* // @grant none // ==/UserScript== (async function () { 'use strict' + + const nodeMaps = { + 'jump.miaowoo.cc': ['公网节点', '内网节点', '下宕头', '画了个圈', 'pve8'] + } + async function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)) } - var version = document.querySelector('.footer-version') - while (!(version = document.querySelector('.footer-version'))) { - await sleep(50) - } - version.innerHTML = version.innerHTML.replace('Version', '') - async function adjust() { + window.onresize = async function adjust() { await sleep(10) var splitter_bar = document.querySelector('.ant-splitter-bar') var left = splitter_bar.previousElementSibling @@ -26,15 +27,33 @@ var right = splitter_bar.nextElementSibling right.style.flexBasis = 'calc(88.5% - 0px)' } - window.onresize = adjust - adjust() - document.querySelector('.content-footer').remove() - for (const element of ['#AssetTree_3_span', '#AssetTree_4_span', '#AssetTree_5_span', '#AssetTree_14_span', '#AssetTree_19_span']) { - let target = undefined - while ((target = document.querySelector(element)) == undefined) { + async function autotrigger(nodes = []) { + for (const element of nodes) { + let target = undefined + while ((target = [...document.getElementsByClassName('node_name')].filter(function (e) { + return e.innerText.startsWith(element) + })[0]) == undefined) { + await sleep(50) + } + await sleep(300) + target.click() + } + } + async function waitReady() { + var version = document.querySelector('.footer-version') + while (!(version = document.querySelector('.footer-version'))) { await sleep(50) } - await sleep(300) - target.click() + version.innerHTML = version.innerHTML.replace('Version', '') } + + async function main() { + await waitReady() + window.onresize() + document.querySelector('.content-footer').remove() + var trigger = nodeMaps[location.hostname] + if (trigger) autotrigger(trigger) + } + + main() })()