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() })()