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