// ==UserScript== // @name LUNA辅助扩展 // @namespace https://miaowoo.cc/ // @version 0.1.8 // @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)) } window.onresize = async function adjust() { await sleep(10) var splitter_bar = document.querySelector('.ant-splitter-bar') var left = splitter_bar.previousElementSibling left.style.flexBasis = 'calc(11.5% - 0px)' var right = splitter_bar.nextElementSibling right.style.flexBasis = 'calc(88.5% - 0px)' } 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) } 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() })()