From 43d1198a274b96411a0c5fd1a6873f17e17282fc Mon Sep 17 00:00:00 2001 From: hogelog Date: Mon, 29 Dec 2008 11:26:53 +0000 Subject: * add scenario-actor.js: browser act scenario semi-automatic. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27557 d0d07461-0603-4401-acd4-de1884942a52 --- scenario-actor.js | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 scenario-actor.js (limited to 'scenario-actor.js') diff --git a/scenario-actor.js b/scenario-actor.js new file mode 100644 index 0000000..16857b6 --- /dev/null +++ b/scenario-actor.js @@ -0,0 +1,252 @@ +// PLUGIN_INFO//{{{ +var PLUGIN_INFO = + + {NAME} + browser act scenario semi-automatic. + hogelog + 0.0.1 + 2.0a2 + http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/scenario-actor.js + || +// hatena sample +javascript < +; +//}}} +(function() { + +const debugMode = true; +const VariablesName = 'ScenarioActorVariables'; +const VariablesLabelID = 'ScenarioActorVariablesLabelID'; + +let loadedScenarioList = []; + +if(liberator.globalVariables.userScenarioList) + loadedScenarioList.push(liberator.globalVariables.userScenarioList); + +function ScenarioActor () { //{{{ + let variables = storage.newMap('scenarioactor', true); + + function ScenarioContext(event) { //{{{ + config.x = event; + let triggeredEvent = event; + let doc = event.target.contentDocument || event.target; + let win = doc.defaultView; + return { + glet: function (name, value) { + variables.set(this.eval(name), this.eval(value)); + return value; + }, + gvar: function (name) { + return variables.get(name); + }, + begin: function () { + let lastValue; + for(let i=0,len=arguments.length;i=0) + context.eval({begin: scenario.action}); + }); + }, + true); + }, + }; +}; //}}} + +let actor = plugins.scenarioActor = ScenarioActor(); +let allScenarioList = plugins.scenarioActor.allScenarioList = {}; + +io.getRuntimeDirectories('plugin/scenario').forEach(function(dir) { + actor.loadScenario(dir); +}); +liberator.echo(loadedScenarioList); +loadedScenarioList.forEach(function(list) { + for(event in list) { + if(!allScenarioList[event]) allScenarioList[event] = []; + allScenarioList[event] = allScenarioList[event].concat(list[event]); + } +}); +for(event in allScenarioList) { + actor.addListener(event, allScenarioList[event]); +} + +commands.add(['scenarioclear'], 'clear scenario-actor variables', + actor.clear, + { + argCount: '0', + }); +commands.add(['scenariovars'], 'show scenario-actor variables', + function(args) { + actor.showVariables(window.content.document); + }, + { + argCount: '0', + }); +})(); +// vim: set fdm=marker sw=4 ts=4 et: -- cgit v1.2.3