Changeset 25226 for lang/javascript/vimperator-plugins
- Timestamp:
- 11/28/08 16:26:46 (6 weeks ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/vimperator-plugins/trunk/autoproxychanger.js
r24980 r25226 37 37 * http_port : 8080, 38 38 * }, 39 * url : / http:\/\/www.nicovideo.jp/,39 * url : /^http:\/\/www\.nicovideo\.jp/, 40 40 * run : 'java.exe', 41 * args : ['C:\ Personal\Apps\Internet\NicoCacheNl\NicoCache_nl.jar'],41 * args : ['C:\\Personal\\Apps\\Internet\\NicoCacheNl\\NicoCache_nl.jar'], 42 42 * }]; 43 43 * EOM … … 51 51 name : 'disable', 52 52 usage : 'direct connection', 53 proxy : {54 type : 0 ,55 } ,56 }, {53 proxy : { 54 type : 0 55 } 56 }, { 57 57 name : 'http', 58 58 usage : 'localhost:8080', 59 proxy : {59 proxy : { 60 60 type : 1, 61 61 http : 'localhost', 62 http_port : 8080 ,63 } ,62 http_port : 8080 63 } 64 64 }]; 65 65 } … … 89 89 var acmanager = []; 90 90 91 const prefkeys = ['ftp', 'gopher','http','ssl'];91 const prefkeys = ['ftp', 'gopher', 'http', 'ssl']; 92 92 var prevSetting = null; 93 93 var _isEnable = false; 94 94 var ProxyChanger = function() this.initialize.apply(this, arguments); 95 95 ProxyChanger.prototype = { 96 initialize: function() {96 initialize: function() { 97 97 this.panel = this.createPanel(); 98 98 }, 99 createPanel: function() {99 createPanel: function() { 100 100 var self = this; 101 101 var panel = document.getElementById('proxychanger-status'); 102 102 if (panel) { 103 varparent = panel.parentNode;103 let parent = panel.parentNode; 104 104 parent.removeChild(panel); 105 105 } … … 113 113 return panel; 114 114 }, 115 get isEnable(){ 116 return _isEnable 117 }, 115 get isEnable() _isEnable, 118 116 set isEnable(val) { 119 117 this.panel.setAttribute('src', val ? ENABLE_ICON : DISABLE_ICON); … … 124 122 var manager = new ProxyChanger(); 125 123 126 function init() {124 function init() { 127 125 // initialize manager 128 proxy_settings.forEach(function(s) {126 proxy_settings.forEach(function(s) { 129 127 if (s.url instanceof RegExp && s.name) 130 128 acmanager.push( {url: s.url, name: s.name, run: s.run || '', args: s.args || [] } ); 131 129 }); 132 130 133 proxy_settings.splice(0, 0, {name:'default', usage:'default setting', proxy: restore() });131 proxy_settings.splice(0, 0, {name: 'default', usage: 'default setting', proxy: restore() }); 134 132 135 133 if (acmanager.length > 0) { 136 autocommands.add( "LocationChange", '.*', 'js liberator.plugins.AutoProxyChanger.autoApplyProxy()');137 //window.addEventListener( "unload", function() applyProxyByName('default'), false);134 autocommands.add('LocationChange', '.*', 'js liberator.plugins.AutoProxyChanger.autoApplyProxy()'); 135 //window.addEventListener('unload', function() applyProxyByName('default'), false); 138 136 } 139 137 140 138 manager.isEnable = eval(liberator.globalVariables.autochanger_proxy_enabled) || false; 141 139 } 142 function restore() {143 letopt = new Object();144 opt['type'] = options.getPref( "network.proxy.type",0);145 prefkeys.forEach(function(key) {146 opt[key] = options.getPref( "network.proxy."+ key, '');147 opt[key+ "_port"] = options.getPref("network.proxy." + key + "_port", 0);140 function restore() { 141 var opt = new Object(); 142 opt['type'] = options.getPref('network.proxy.type', 0); 143 prefkeys.forEach(function(key) { 144 opt[key] = options.getPref('network.proxy.' + key, ''); 145 opt[key+'_port'] = options.getPref('network.proxy.' + key + '_port', 0); 148 146 }); 149 147 return opt; 150 148 } 151 149 function dump(obj) { 152 var m ='';153 for ( var key in obj) m+=key+":"+obj[key]+"\n";154 return m 155 } 156 function checkApplyProxy() {150 var m = ''; 151 for (let key in obj) m+=key+':'+obj[key]+'\n'; 152 return m; 153 } 154 function checkApplyProxy() { 157 155 if (prevSetting != null) { 158 156 applyProxy(prevSetting); … … 160 158 } 161 159 if (!_isEnable) return; 162 acmanager.some( function( manager ) {160 acmanager.some( function( manager ) { 163 161 if (manager.url.test(content.location.href)) { 164 162 prevSetting = restore(); … … 174 172 } 175 173 176 function applyProxyByName( name ) {174 function applyProxyByName( name ) { 177 175 if (!name) { 178 liberator.echo( dump(restore())+'usage:proxy [setting name]' );176 liberator.echo( dump(restore())+'usage:proxy [setting name]' ); 179 177 return; 180 178 } 181 proxy_settings.some( function(setting) {179 proxy_settings.some( function(setting) { 182 180 if (setting.name.toLowerCase() != name.toLowerCase()) return false; 183 181 // delete setting 184 prefkeys.forEach( function(key) {185 options.setPref( "network.proxy."+key, '');186 options.setPref( "network.proxy."+key+"_port", 0);182 prefkeys.forEach( function(key) { 183 options.setPref('network.proxy.'+key, ''); 184 options.setPref('network.proxy.'+key+'_port', 0); 187 185 }); 188 186 189 // apply proxy 190 applyProxy(setting.proxy) 187 applyProxy(setting.proxy); 191 188 return true; 192 189 }); 193 190 } 194 191 195 function applyProxy(proxy) {196 for ( var key in proxy){192 function applyProxy(proxy) { 193 for (let key in proxy) { 197 194 if (typeof proxy[key] != 'undefined') 198 options.setPref( "network.proxy."+key, proxy[key]);199 } 200 } 201 202 commands.addUserCommand([ "proxy"], 'Proxy settings',195 options.setPref('network.proxy.'+key, proxy[key]); 196 } 197 } 198 199 commands.addUserCommand(['proxy'], 'Proxy settings', 203 200 function(args, bang) { 204 201 if (bang) applyProxyByName('default'); … … 206 203 }, { 207 204 bang: true, 208 completer: function(context, arg, special) {209 context.title = ['Name', 'Usage'];205 completer: function(context, arg, special) { 206 context.title = ['Name', 'Usage']; 210 207 var list = context.filter ? 211 proxy_settings.filter( function(el) this.test(el.name), new RegExp( "^"+context.filter))208 proxy_settings.filter( function(el) this.test(el.name), new RegExp('^'+context.filter)) 212 209 : proxy_settings; 213 210 context.completions = list.map( function(v) [v.name, v.usage] ); … … 215 212 }); 216 213 217 commands.addUserCommand([ "toggleautoproxy","aprxy"], "Toggle auto proxy changer on/off",218 function() {manager.isEnable = !manager.isEnable}, {}214 commands.addUserCommand(['toggleautoproxy', 'aprxy'], 'Toggle auto proxy changer on/off', 215 function() {manager.isEnable = !manager.isEnable}, {} 219 216 ); 220 217
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)