diff options
author | anekos | 2008-12-29 12:57:26 +0000 |
---|---|---|
committer | anekos | 2008-12-29 12:57:26 +0000 |
commit | 83d0b3b6cf9698a5f7615458631ff626bd840966 (patch) | |
tree | c13976caf7ef3fe0877c3a3b2323215f03b468e9 /scenario-actor.js | |
parent | 305d1f5256c0ba2d808bf59ad10d262b361c1803 (diff) | |
download | vimperator-plugins-83d0b3b6cf9698a5f7615458631ff626bd840966.tar.bz2 |
有効無効を切り替え可能にした。
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27562 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'scenario-actor.js')
-rw-r--r-- | scenario-actor.js | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/scenario-actor.js b/scenario-actor.js index 483dd6a..0e51d5d 100644 --- a/scenario-actor.js +++ b/scenario-actor.js @@ -4,7 +4,7 @@ var PLUGIN_INFO = <name>{NAME}</name> <description>browser act scenario semi-automatic.</description> <author mail="konbu.komuro@gmail.com" homepage="http://d.hatena.ne.jp/hogelog/">hogelog</author> - <version>0.0.2</version> + <version>0.0.3</version> <minVersion>2.0a2</minVersion> <updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/scenario-actor.js</updateURL> <detail><![CDATA[ @@ -44,7 +44,6 @@ liberator.globalVariables.userScenarioList = { }, ], }; -liberator.globalVariables.userScenarioList = sampleHatenaScenario; EOM ||< Action expressions like @@ -78,7 +77,7 @@ const VariablesName = 'ScenarioActorVariables'; const VariablesLabelID = 'ScenarioActorVariablesLabelID'; let loadedScenarioList = []; - + if(liberator.globalVariables.userScenarioList) loadedScenarioList.push(liberator.globalVariables.userScenarioList); @@ -125,7 +124,7 @@ function ScenarioActor () { //{{{ value: function (dst, src) { let edst = this.eval({xpath: this.eval(dst)}); liberator.log("xpath("+this.eval(dst)+")="+edst); - + if(src==undefined) { // get return edst.value; } else { // set @@ -200,6 +199,7 @@ function ScenarioActor () { //{{{ } return { + enabled: true, loadScenario: function(dir) { // TODO: implementation. }, @@ -217,10 +217,13 @@ function ScenarioActor () { //{{{ variables.clear(); }, addListener: function (eventType, scenarioList) { + let self = this; if(!scenarioList || scenarioList.length==0) return scenarioList; getBrowser().addEventListener(eventType, function (event) { + if (!self.enabled) + return; let context = ScenarioContext(event); let url = context.url(); if(!url) return url; @@ -235,6 +238,10 @@ function ScenarioActor () { //{{{ }; //}}} let actor = plugins.scenarioActor = ScenarioActor(); +let (e = liberator.globalVariables.scenario_actor_enabled) { + if (e && e.toString().match(/^(false|0)$/i)) + actor.enabled = false; +} let allScenarioList = plugins.scenarioActor.allScenarioList = {}; io.getRuntimeDirectories('plugin/scenario').forEach(function(dir) { @@ -250,17 +257,42 @@ for(event in allScenarioList) { actor.addListener(event, allScenarioList[event]); } -commands.add(['scenarioclear'], 'clear scenario-actor variables', +commands.addUserCommand(['scenarioclear'], 'clear scenario-actor variables', actor.clear, { argCount: '0', }); -commands.add(['scenariovars'], 'show scenario-actor variables', +commands.addUserCommand(['scenariovars'], 'show scenario-actor variables', function(args) { actor.showVariables(window.content.document); }, { argCount: '0', }); +commands.addUserCommand(['scenario'], 'turn on/off scenario-actor', + function(args) { + if (args.length) { + switch (args[0].toLowerCase()) { + case 'on': + actor.enabled = true; + break; + case 'off': + actor.enabled = false; + break; + default: + liberator.echoerr('Invalid argument: ' + args[0]); + return; + } + } else { + actor.enabled = !actor.enabled; + } + liberator.echo('scenario-actor was ' + (actor.enabled ? 'enabled' : 'disabled')); + }, + { + argCount: '*', + completer: function (context, args) { + context.completions = [['on', 'enable scenario-actor'], ['off', 'disable scenario-actor']]; + } + }); })(); // vim: set fdm=marker sw=4 ts=4 et: |