feat(autojs): engines.myEngine().execArgv

This commit is contained in:
hyb1996
2018-09-12 10:37:56 +08:00
parent a902081c1c
commit c388148b8f
4 changed files with 39 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
module.exports = function(__runtime__, scope){
var rtEngines = __runtime__.engines;
var execArgv = null;
var engines = {};
@@ -17,7 +18,17 @@ module.exports = function(__runtime__, scope){
}
engines.myEngine = function(){
return rtEngines.myEngine();
var engine = Object.create(rtEngines.myEngine());
if(!execArgv){
execArgv = {};
var iter = engine.getTag("execution.config").getArguments().entrySet().iterator();
while(iter.hasNext()){
var entry = iter.next();
execArgv[entry.getKey()] = entry.getValue();
}
}
engine.execArgv = execArgv;
return engine;
}
engines.all = function(){
@@ -44,6 +55,14 @@ module.exports = function(__runtime__, scope){
c.interval = c.interval || 0;
c.loopTimes = c.loopTimes || 1;
config.loop(c.delay, c.loopTimes, c.interval);
if(c.arguments){
var arguments = c.arguments;
for(var key in arguments){
if(arguments.hasOwnProperty(key)){
config.setArgument(key, arguments[key]);
}
}
}
return config;
}

View File

@@ -4,22 +4,25 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by Stardust on 2017/2/1.
*/
public class ExecutionConfig implements Serializable {
public static final String TAG = "execution.config";
private List<String> mRequirePath = Collections.emptyList();
private String mExecutePath;
private static final ExecutionConfig DEFAULT = new ExecutionConfig();
public long delay = 0;
public long interval = 0;
public int loopTimes = 1;
private Map<String, Object> mArguments = new HashMap<>();
public static ExecutionConfig getDefault() {
return DEFAULT;
return new ExecutionConfig();
}
public boolean runInNewThread = true;
@@ -50,6 +53,18 @@ public class ExecutionConfig implements Serializable {
return mExecutePath;
}
public void setArgument(String key, Object object){
mArguments.put(key, object);
}
public Object getArgument(String key){
return mArguments.get(key);
}
public Map<String, Object> getArguments() {
return mArguments;
}
public ExecutionConfig loop(long delay, int loopTimes, long interval) {
this.delay = delay;
this.loopTimes = loopTimes;

View File

@@ -29,6 +29,7 @@ public class RunnableScriptExecution extends ScriptExecution.AbstractScriptExecu
public Object execute() {
mScriptEngine = mScriptEngineManager.createEngineOfSourceOrThrow(getSource(), getId());
mScriptEngine.setTag(ExecutionConfig.TAG, getConfig());
return execute(mScriptEngine);
}

View File

@@ -252,6 +252,7 @@ public class ScriptExecuteActivity extends AppCompatActivity {
mScriptEngine.forceStop();
}
mScriptEngine = mScriptEngineManager.createEngineOfSourceOrThrow(getSource());
mScriptEngine.setTag(ExecutionConfig.TAG, getConfig());
return mScriptEngine;
}