60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
// ==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()
|
|
})()
|