refactoring

This commit is contained in:
Devaev Maxim 2020-06-20 14:16:42 +03:00
parent 7f321f94ac
commit 55ab843e48

View File

@ -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;
}; };