Show
Ignore:
Timestamp:
11/28/08 16:26:46 (6 weeks ago)
Author:
drry
Message:
  • 正規表現を修正しました。
  • ほか。
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/autoproxychanger.js

    r24980 r25226  
    3737 *        http_port : 8080, 
    3838 *      }, 
    39  *      url   : /http:\/\/www.nicovideo.jp/, 
     39 *      url   : /^http:\/\/www\.nicovideo\.jp/, 
    4040 *      run   : 'java.exe', 
    41  *      args  : ['C:\Personal\Apps\Internet\NicoCacheNl\NicoCache_nl.jar'], 
     41 *      args  : ['C:\\Personal\\Apps\\Internet\\NicoCacheNl\\NicoCache_nl.jar'], 
    4242 *    }]; 
    4343 * EOM 
     
    5151    name  : 'disable', 
    5252    usage : 'direct connection', 
    53     proxy :{ 
    54       type      : 0, 
    55     }, 
    56   },{ 
     53    proxy : { 
     54      type      : 0 
     55    } 
     56  }, { 
    5757    name  : 'http', 
    5858    usage : 'localhost:8080', 
    59     proxy :{ 
     59    proxy : { 
    6060      type      : 1, 
    6161      http      : 'localhost', 
    62       http_port : 8080, 
    63     }, 
     62      http_port : 8080 
     63    } 
    6464  }]; 
    6565} 
     
    8989var acmanager = []; 
    9090 
    91 const prefkeys = ['ftp','gopher','http','ssl']; 
     91const prefkeys = ['ftp', 'gopher', 'http', 'ssl']; 
    9292var prevSetting = null; 
    9393var _isEnable = false; 
    9494var ProxyChanger = function() this.initialize.apply(this, arguments); 
    9595ProxyChanger.prototype = { 
    96   initialize: function(){ 
     96  initialize: function() { 
    9797    this.panel = this.createPanel(); 
    9898  }, 
    99   createPanel: function(){ 
     99  createPanel: function() { 
    100100    var self = this; 
    101101    var panel = document.getElementById('proxychanger-status'); 
    102102    if (panel) { 
    103       var parent = panel.parentNode; 
     103      let parent = panel.parentNode; 
    104104      parent.removeChild(panel); 
    105105    } 
     
    113113    return panel; 
    114114  }, 
    115   get isEnable(){ 
    116     return _isEnable 
    117   }, 
     115  get isEnable() _isEnable, 
    118116  set isEnable(val) { 
    119117    this.panel.setAttribute('src', val ? ENABLE_ICON : DISABLE_ICON); 
     
    124122var manager = new ProxyChanger(); 
    125123 
    126 function init(){ 
     124function init() { 
    127125  // initialize manager 
    128   proxy_settings.forEach(function(s){ 
     126  proxy_settings.forEach(function(s) { 
    129127    if (s.url instanceof RegExp && s.name) 
    130128      acmanager.push( {url: s.url, name: s.name, run: s.run || '', args: s.args || [] } ); 
    131129  }); 
    132130 
    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() }); 
    134132 
    135133  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); 
    138136  } 
    139137 
    140138  manager.isEnable = eval(liberator.globalVariables.autochanger_proxy_enabled) || false; 
    141139} 
    142 function restore(){ 
    143   let opt = 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); 
     140function 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); 
    148146  }); 
    149147  return opt; 
    150148} 
    151149function 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} 
     154function checkApplyProxy() { 
    157155  if (prevSetting != null) { 
    158156    applyProxy(prevSetting); 
     
    160158  } 
    161159  if (!_isEnable) return; 
    162   acmanager.some( function( manager ){ 
     160  acmanager.some( function( manager ) { 
    163161    if (manager.url.test(content.location.href)) { 
    164162      prevSetting = restore(); 
     
    174172} 
    175173 
    176 function applyProxyByName( name ){ 
     174function applyProxyByName( name ) { 
    177175  if (!name) { 
    178       liberator.echo( dump(restore())+'usage:proxy [setting name]' ); 
     176    liberator.echo( dump(restore())+'usage:proxy [setting name]' ); 
    179177    return; 
    180178  } 
    181   proxy_settings.some( function(setting){ 
     179  proxy_settings.some( function(setting) { 
    182180    if (setting.name.toLowerCase() != name.toLowerCase()) return false; 
    183181    // 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); 
    187185    }); 
    188186 
    189     // apply proxy 
    190     applyProxy(setting.proxy) 
     187    applyProxy(setting.proxy); 
    191188    return true; 
    192189  }); 
    193190} 
    194191 
    195 function applyProxy(proxy){ 
    196   for (var key in proxy){ 
     192function applyProxy(proxy) { 
     193  for (let key in proxy) { 
    197194    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 
     199commands.addUserCommand(['proxy'], 'Proxy settings', 
    203200  function(args, bang) { 
    204201    if (bang) applyProxyByName('default'); 
     
    206203  }, { 
    207204    bang: true, 
    208     completer: function(context, arg, special){ 
    209       context.title = ['Name','Usage']; 
     205    completer: function(context, arg, special) { 
     206      context.title = ['Name', 'Usage']; 
    210207      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)) 
    212209        : proxy_settings; 
    213210      context.completions = list.map( function(v) [v.name, v.usage] ); 
     
    215212}); 
    216213 
    217 commands.addUserCommand(["toggleautoproxy","aprxy"], "Toggle auto proxy changer on/off", 
    218   function(){manager.isEnable = !manager.isEnable}, {} 
     214commands.addUserCommand(['toggleautoproxy', 'aprxy'], 'Toggle auto proxy changer on/off', 
     215  function() {manager.isEnable = !manager.isEnable}, {} 
    219216); 
    220217