92 lines
2.9 KiB
JavaScript
92 lines
2.9 KiB
JavaScript
/* Overwritten protection. */
|
|
|
|
let { files } = global;
|
|
|
|
/**
|
|
* @param {ScriptRuntime} scriptRuntime
|
|
* @param {org.mozilla.javascript.Scriptable | global} scope
|
|
* @return {Internal.Engines}
|
|
*/
|
|
module.exports = function (scriptRuntime, scope) {
|
|
const ExecutionConfig = org.autojs.autojs.execution.ExecutionConfig;
|
|
|
|
const rtEngines = scriptRuntime.engines;
|
|
|
|
let _ = {
|
|
Engines: (/* @IIFE */ () => {
|
|
/**
|
|
* @extends Internal.Engines
|
|
*/
|
|
const Engines = function () {
|
|
/* Empty body. */
|
|
};
|
|
|
|
Engines.prototype = {
|
|
constructor: Engines,
|
|
all() {
|
|
return rtEngines.all();
|
|
},
|
|
myEngine() {
|
|
return rtEngines.myEngine();
|
|
},
|
|
stopAll() {
|
|
return rtEngines.stopAll();
|
|
},
|
|
stopAllAndToast() {
|
|
rtEngines.stopAllAndToast();
|
|
},
|
|
execScript(name, script, config) {
|
|
return rtEngines.execScript(name, script, _.fillConfig(config));
|
|
},
|
|
execScriptFile(path, config) {
|
|
return rtEngines.execScriptFile(path, _.fillConfig(config));
|
|
},
|
|
execAutoFile(path, config) {
|
|
return rtEngines.execAutoFile(path, _.fillConfig(config));
|
|
},
|
|
};
|
|
|
|
return Engines;
|
|
})(),
|
|
/**
|
|
* @param {Internal.Engines.ExecutionConfig | org.autojs.autojs.execution.ExecutionConfig} config
|
|
* @return {org.autojs.autojs.execution.ExecutionConfig}
|
|
*/
|
|
fillConfig(config) {
|
|
let executionConfig = new ExecutionConfig();
|
|
let c = config || {};
|
|
|
|
executionConfig.setWorkingDirectory(c.path || files.cwd());
|
|
executionConfig.setDelay(c.delay || 0);
|
|
executionConfig.setInterval(c.interval || 0);
|
|
executionConfig.setLoopTimes(typeof c.loopTimes === 'number' ? c.loopTimes : 1);
|
|
|
|
Object.entries(c.arguments || []).forEach((value) => {
|
|
let [ k, v ] = value;
|
|
executionConfig.setArgument(k, v);
|
|
});
|
|
|
|
return executionConfig;
|
|
},
|
|
setEngineExecArgv() {
|
|
engines.myEngine().setExecArgv(/* @IIFE */ ((e) => {
|
|
let execArgv = {};
|
|
let iterator = e.getTag(ExecutionConfig.tag).arguments.entrySet().iterator();
|
|
while (iterator.hasNext()) {
|
|
let entry = iterator.next();
|
|
execArgv[entry.getKey()] = entry.getValue();
|
|
}
|
|
return execArgv;
|
|
})(engines.myEngine()));
|
|
},
|
|
};
|
|
|
|
/**
|
|
* @type {Internal.Engines}
|
|
*/
|
|
let engines = new _.Engines();
|
|
|
|
_.setEngineExecArgv();
|
|
|
|
return engines;
|
|
}; |