mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
refactoring
This commit is contained in:
parent
7f321f94ac
commit
55ab843e48
@ -36,8 +36,8 @@ export function Recorder() {
|
|||||||
|
|
||||||
var __play_timer = null;
|
var __play_timer = null;
|
||||||
var __recording = false;
|
var __recording = false;
|
||||||
var __record = [];
|
var __events = [];
|
||||||
var __record_time = 0;
|
var __events_time = 0;
|
||||||
var __last_event_ts = 0;
|
var __last_event_ts = 0;
|
||||||
|
|
||||||
var __init__ = function() {
|
var __init__ = function() {
|
||||||
@ -76,12 +76,12 @@ export function Recorder() {
|
|||||||
let now = new Date().getTime();
|
let now = new Date().getTime();
|
||||||
if (__last_event_ts) {
|
if (__last_event_ts) {
|
||||||
let delay = now - __last_event_ts;
|
let delay = now - __last_event_ts;
|
||||||
__record.push({"event_type": "delay", "event": {"millis": delay}});
|
__events.push({"event_type": "delay", "event": {"millis": delay}});
|
||||||
__record_time += delay;
|
__events_time += delay;
|
||||||
}
|
}
|
||||||
__last_event_ts = now;
|
__last_event_ts = now;
|
||||||
__record.push(event);
|
__events.push(event);
|
||||||
__setCounters(__record.length, __record_time);
|
__setCounters(__events.length, __events_time);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -108,14 +108,14 @@ export function Recorder() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var __clearRecord = function() {
|
var __clearRecord = function() {
|
||||||
__record = [];
|
__events = [];
|
||||||
__record_time = 0;
|
__events_time = 0;
|
||||||
__last_event_ts = 0;
|
__last_event_ts = 0;
|
||||||
__refresh();
|
__refresh();
|
||||||
};
|
};
|
||||||
|
|
||||||
var __downloadScript = function() {
|
var __downloadScript = function() {
|
||||||
let blob = new Blob([JSON.stringify(__record, undefined, 4)], {"type": "application/json"});
|
let blob = new Blob([JSON.stringify(__events, undefined, 4)], {"type": "application/json"});
|
||||||
let url = window.URL.createObjectURL(blob);
|
let url = window.URL.createObjectURL(blob);
|
||||||
let el_anchor = document.createElement("a");
|
let el_anchor = document.createElement("a");
|
||||||
el_anchor.href = url;
|
el_anchor.href = url;
|
||||||
@ -130,16 +130,14 @@ export function Recorder() {
|
|||||||
if (script_file) {
|
if (script_file) {
|
||||||
let reader = new FileReader();
|
let reader = new FileReader();
|
||||||
reader.onload = function () {
|
reader.onload = function () {
|
||||||
let record = [];
|
let events = [];
|
||||||
let record_time = 0;
|
let events_time = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let raw_record = JSON.parse(reader.result);
|
let raw_events = JSON.parse(reader.result);
|
||||||
console.log(typeof raw_record);
|
__checkType(raw_events, "object", "Base of script is not an objects list");
|
||||||
console.log(raw_record);
|
|
||||||
__checkType(raw_record, "object", "Base of script is not an objects list");
|
|
||||||
|
|
||||||
for (let event of raw_record) {
|
for (let event of raw_events) {
|
||||||
__checkType(event, "object", "Non-dict event");
|
__checkType(event, "object", "Non-dict event");
|
||||||
__checkType(event.event, "object", "Non-dict event");
|
__checkType(event.event, "object", "Non-dict event");
|
||||||
|
|
||||||
@ -148,7 +146,7 @@ export function Recorder() {
|
|||||||
if (event.event.millis < 0) {
|
if (event.event.millis < 0) {
|
||||||
throw "Negative delay";
|
throw "Negative delay";
|
||||||
}
|
}
|
||||||
record_time += event.event.millis;
|
events_time += event.event.millis;
|
||||||
} else if (event.event_type === "print") {
|
} else if (event.event_type === "print") {
|
||||||
__checkType(event.event.text, "string", "Non-string print text");
|
__checkType(event.event.text, "string", "Non-string print text");
|
||||||
} else if (event.event_type === "key") {
|
} else if (event.event_type === "key") {
|
||||||
@ -169,11 +167,11 @@ export function Recorder() {
|
|||||||
throw "Unknown event type";
|
throw "Unknown event type";
|
||||||
}
|
}
|
||||||
|
|
||||||
record.push(event);
|
events.push(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
__record = record;
|
__events = events;
|
||||||
__record_time = record_time;
|
__events_time = events_time;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
wm.error(`Invalid script: ${err}`);
|
wm.error(`Invalid script: ${err}`);
|
||||||
}
|
}
|
||||||
@ -198,9 +196,9 @@ export function Recorder() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var __runEvents = function(index, time=0) {
|
var __runEvents = function(index, time=0) {
|
||||||
while (index < __record.length) {
|
while (index < __events.length) {
|
||||||
__setCounters(__record.length - index + 1, __record_time - time);
|
__setCounters(__events.length - index + 1, __events_time - time);
|
||||||
let event = __record[index];
|
let event = __events[index];
|
||||||
if (event.event_type === "delay") {
|
if (event.event_type === "delay") {
|
||||||
__play_timer = setTimeout(() => __runEvents(index + 1, time + event.event.millis), event.event.millis);
|
__play_timer = setTimeout(() => __runEvents(index + 1, time + event.event.millis), event.event.millis);
|
||||||
return;
|
return;
|
||||||
@ -241,16 +239,16 @@ export function Recorder() {
|
|||||||
|
|
||||||
wm.switchEnabled($("hid-recorder-record"), (__ws && !__play_timer && !__recording));
|
wm.switchEnabled($("hid-recorder-record"), (__ws && !__play_timer && !__recording));
|
||||||
wm.switchEnabled($("hid-recorder-stop"), (__ws && (__play_timer || __recording)));
|
wm.switchEnabled($("hid-recorder-stop"), (__ws && (__play_timer || __recording)));
|
||||||
wm.switchEnabled($("hid-recorder-play"), (__ws && !__recording && __record.length));
|
wm.switchEnabled($("hid-recorder-play"), (__ws && !__recording && __events.length));
|
||||||
wm.switchEnabled($("hid-recorder-clear"), (!__play_timer && !__recording && __record.length));
|
wm.switchEnabled($("hid-recorder-clear"), (!__play_timer && !__recording && __events.length));
|
||||||
wm.switchEnabled($("hid-recorder-upload"), (!__play_timer && !__recording));
|
wm.switchEnabled($("hid-recorder-upload"), (!__play_timer && !__recording));
|
||||||
wm.switchEnabled($("hid-recorder-download"), (!__play_timer && !__recording && __record.length));
|
wm.switchEnabled($("hid-recorder-download"), (!__play_timer && !__recording && __events.length));
|
||||||
|
|
||||||
__setCounters(__record.length, __record_time);
|
__setCounters(__events.length, __events_time);
|
||||||
};
|
};
|
||||||
|
|
||||||
var __setCounters = function(events_count, time) {
|
var __setCounters = function(events_count, events_time) {
|
||||||
$("hid-recorder-time").innerHTML = tools.formatDuration(time);
|
$("hid-recorder-time").innerHTML = tools.formatDuration(events_time);
|
||||||
$("hid-recorder-events-count").innerHTML = events_count;
|
$("hid-recorder-events-count").innerHTML = events_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user