var PLUGIN_INFO = UserAgentSwitcherLite switch user agent user agent 切り替え 0.1.1 pekepeke https://github.com/vimpr/vimperator-plugins/raw/master/uaSwitchLite 2.0pre 2.0pre || javascript < ; liberator.plugins.UserAgentSwitcherLite = (function(){ const USER_AGENT = 'general.useragent.override'; const APP_NAME = 'general.appname.override'; const APP_VERSION = 'general.appversion.override'; const PLATFORM = 'general.platform.override'; const VENDOR = 'general.useragent.vendor'; const VENDOR_SUB = 'general.useragent.vendorSub'; const DEFAULT = 'Default'; var global = liberator.globalVariables; global.useragent_list = global.useragent_list ? global.useragent_list : [ { description: 'Internet Explorer 7 (Windows Vista)', useragent: 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)', appname: 'Microsoft Internet Explorer', appversion: '4.0 (compatible; MSIE 7.0; Windows NT 6.0)', platform: 'Win32', vendor: '', vendorSub: '' }, { description: 'Netscape 4.8 (Windows Vista)', useragent: 'Mozilla/4.8 [en] (Windows NT 6.0; U)', appname: 'Netscape', appversion: '4.8 [en] (Windows NT 6.0; U)', platform: 'Win32', vendor: '', vendorSub: '' }, { description: 'Opera 9.25 (Windows Vista)', useragent: 'Opera/9.25 (Windows NT 6.0; U; en)', appname: 'Opera', appversion: '9.25 (Windows NT 6.0; U; en)', platform: 'Win32', } ]; var Class = function() function(){ this.initialize.apply(this, arguments); }; var UASwitcherLite = new Class(); UASwitcherLite.prototype = { initialize: function(){ // init this.completer = []; this.switcher = { __noSuchMethod__: function(arg) liberator.echoerr('cannot switch user agent "'+arg+'"'), '': function(){ var ua = options.getPref(USER_AGENT); liberator.echo('Current User Agent : ' + (ua ? ua : DEFAULT) ); } }; var self = this; // default values this.completer.push([DEFAULT, '']); this.switcher[DEFAULT] = function() self.switch(); // expand setting global.useragent_list.forEach( function(item){ var desc = item.description; var userAgent = item.useragent; var appName = item.appname; var appVersion = item.appversion; var platform = item.platform; var vendor = item.vendor; var vendorSub = item.vendorSub; self.completer.push([desc, userAgent]); self.switcher[desc] = function() self.switch(appName, appVersion, platform, userAgent, vendor, vendorSub); }); this.registerCommand(); }, switch: function(appName, appVersion, platform, userAgent, vendor, vendorSub){ if (!userAgent && !options.getPref(USER_AGENT)) return; var setter = userAgent ? options.setPref : options.resetPref; setter(APP_NAME, decodeURIComponent(appName || '')); setter(APP_VERSION, decodeURIComponent(appVersion || '')); setter(PLATFORM, decodeURIComponent(platform || '')); setter(USER_AGENT, decodeURIComponent(userAgent || '')); setter(VENDOR, decodeURIComponent(vendor || '')); setter(VENDOR_SUB, decodeURIComponent(vendorSub || '')); }, registerCommand: function(){ var self = this; commands.addUserCommand(['ua'], 'Switch User Agent', function(arg) self.switcher[ (arg.string || arg+'').replace(/\\+/g,'') ](), { completer: function(context, args){ var filter = context.filter; context.title = ['Description', 'User Agent']; if (!filter) { context.completions = self.completer; return; } filter = filter.toLowerCase(); context.completions = self.completer.filter( function(el) el[0].toLowerCase().indexOf(filter) == 0 ); } } ); } }; return new UASwitcherLite(); })();