welsonjs/uriloader.js

71 lines
2.5 KiB
JavaScript
Raw Normal View History

2020-07-21 06:14:14 +00:00
//////////////////////////////////////////////////////////////////////////////////
//
// uriloader.js
//
/////////////////////////////////////////////////////////////////////////////////
2020-07-07 23:16:52 +00:00
var SHELL = require("lib/shell");
2020-07-07 15:55:50 +00:00
return {
2020-07-07 23:16:52 +00:00
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;
},
2020-07-07 15:55:50 +00:00
main: function(args) {
2020-07-07 23:16:52 +00:00
var uri = args[0];
var pos = uri.indexOf(':///');
if(pos < 0) {
console.log("Not vaild URI");
} else {
var commandOptions = [],
queryString = uri.substring(pos + 4),
query = this.parseQuery(queryString);
2020-07-07 23:16:52 +00:00
if(!query.application) {
query.application = "";
}
switch(query.application) {
2020-07-21 08:13:33 +00:00
case "app":
commandOptions.push("app.hta");
2020-07-21 08:13:33 +00:00
break;
2020-07-07 23:16:52 +00:00
case "mscalc":
commandOptions.push("calc");
2020-07-07 23:16:52 +00:00
break;
2020-07-21 08:12:42 +00:00
case "msie":
commandOptions.push("\"%PROGRAMFILES%\\Internet Explorer\\iexplore.exe\"");
commandOptions.push("https://github.com/gnh1201/welsonjs");
2020-07-21 08:12:42 +00:00
break;
2020-07-07 23:16:52 +00:00
case "msexcel":
commandOptions.push("\"%PROGRAMFILES%\\Microsoft Office\\Office15\\EXCEL.EXE\"");
2020-07-07 23:16:52 +00:00
break;
case "mspowerpoint":
commandOptions.push("\"%PROGRAMFILES%\\Microsoft Office\\Office15\\POWERPNT.EXE\"");
2020-07-07 23:16:52 +00:00
break;
case "msword":
commandOptions.push("\"%PROGRAMFILES%\\Microsoft Office\\Office15\\WINWORD.EXE\"");
2020-07-07 23:16:52 +00:00
break;
case "msaccess":
commandOptions.push("\"%PROGRAMFILES%\\Microsoft Office\\Office15\\MSACCESS.EXE\"");
2020-07-07 23:16:52 +00:00
break;
dafault:
console.log("Unknown application");
break;
}
if(typeof(query.argument) !== "undefined") {
commandOptions.push(query.argument);
}
SHELL.run(commandOptions.join(' '));
2020-07-23 10:35:53 +00:00
return 0;
2020-07-07 23:16:52 +00:00
}
2020-07-07 15:55:50 +00:00
}
}