welsonjs/uriloader.js

56 lines
1.9 KiB
JavaScript

//////////////////////////////////////////////////////////////////////////////////
//
// uriloader.js
//
/////////////////////////////////////////////////////////////////////////////////
var SHELL = require("lib/shell");
return {
parseQuery: function(queryString) {
var query = {};
var pairs = (queryString.substring(0, 1) === '?' ? queryString.substring(1) : queryString).split('&');
for (var i = 0; i < pairs.length; i++) {
var pair = pairs[i].split('=');
query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
}
return query;
},
main: function(args) {
var uri = args[0];
var pos = uri.indexOf(':///');
if(pos < 0) {
console.log("Not vaild URI");
} else {
var queryString = uri.substring(pos + 4);
var query = this.parseQuery(queryString);
var application = query['application'];
var argument = query['argument'];
var filename;
switch(application) {
case "mscalc":
filename = "calc";
break;
case "msexcel":
filename = "%PROGRAMFILES%\\Microsoft Office\\Office15\\EXCEL.EXE";
break;
case "mspowerpoint":
filename = "%PROGRAMFILES%\\Microsoft Office\\Office15\\POWERPNT.EXE";
break;
case "msword":
filename = "%PROGRAMFILES%\\Microsoft Office\\Office15\\WINWORD.EXE";
break;
case "msaccess":
filename = "%PROGRAMFILES%\\Microsoft Office\\Office15\\MSACCESS.EXE";
break;
dafault:
console.log("Unknown application");
break;
}
SHELL.run("\"" + filename + "\"" + " " + argument);
}
}
}