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 {
|
|
|
|
main: function(args) {
|
2020-07-07 23:16:52 +00:00
|
|
|
var uri = args[0];
|
2020-07-27 00:54:52 +00:00
|
|
|
var pos = uri.indexOf(":///");
|
2020-07-07 23:16:52 +00:00
|
|
|
if(pos < 0) {
|
2020-07-27 00:54:52 +00:00
|
|
|
console.log("Not vaild URI scheme");
|
2020-07-07 23:16:52 +00:00
|
|
|
} else {
|
2020-07-27 00:54:52 +00:00
|
|
|
var cmd = [],
|
2020-07-21 08:34:32 +00:00
|
|
|
queryString = uri.substring(pos + 4),
|
2020-07-27 00:54:52 +00:00
|
|
|
query = this.parseQueryString(queryString);
|
2020-07-07 23:16:52 +00:00
|
|
|
|
2020-07-21 08:34:32 +00:00
|
|
|
if(!query.application) {
|
|
|
|
query.application = "";
|
|
|
|
}
|
|
|
|
|
|
|
|
switch(query.application) {
|
2020-07-21 08:13:33 +00:00
|
|
|
case "app":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push(["app.hta"].concat(args));
|
2020-07-21 08:13:33 +00:00
|
|
|
break;
|
2020-07-07 23:16:52 +00:00
|
|
|
case "mscalc":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push("calc.exe");
|
2020-07-07 23:16:52 +00:00
|
|
|
break;
|
2020-07-21 08:12:42 +00:00
|
|
|
case "msie":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push("%PROGRAMFILES%\\Internet Explorer\\iexplore.exe");
|
|
|
|
cmd.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":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push("%PROGRAMFILES%\\Microsoft Office\\Office15\\EXCEL.EXE");
|
2020-07-07 23:16:52 +00:00
|
|
|
break;
|
|
|
|
case "mspowerpoint":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push("%PROGRAMFILES%\\Microsoft Office\\Office15\\POWERPNT.EXE");
|
2020-07-07 23:16:52 +00:00
|
|
|
break;
|
|
|
|
case "msword":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push("%PROGRAMFILES%\\Microsoft Office\\Office15\\WINWORD.EXE");
|
2020-07-07 23:16:52 +00:00
|
|
|
break;
|
|
|
|
case "msaccess":
|
2020-07-27 00:54:52 +00:00
|
|
|
cmd.push("%PROGRAMFILES%\\Microsoft Office\\Office15\\MSACCESS.EXE");
|
2020-07-07 23:16:52 +00:00
|
|
|
break;
|
|
|
|
dafault:
|
|
|
|
console.log("Unknown application");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2020-07-27 00:54:52 +00:00
|
|
|
if(typeof(query.args) !== "undefined") {
|
|
|
|
cmd.push(query.args);
|
2020-07-21 08:34:32 +00:00
|
|
|
}
|
|
|
|
|
2020-07-27 00:54:52 +00:00
|
|
|
SHELL.run(cmd);
|
2020-07-23 10:35:53 +00:00
|
|
|
|
|
|
|
return 0;
|
2020-07-07 23:16:52 +00:00
|
|
|
}
|
2020-07-27 00:54:52 +00:00
|
|
|
},
|
|
|
|
parseQueryString: function(queryString) {
|
|
|
|
var query = {};
|
|
|
|
var pairs = (queryString.substring(0, 1) === '?' ? queryString.substring(1) : queryString).split('&');
|
|
|
|
for (var i in pairs) {
|
|
|
|
var pair = pairs[i].split('=');
|
|
|
|
var _k = decodeURIComponent(pair[0]);
|
|
|
|
var _v = decodeURIComponent(pair[1] || '');
|
|
|
|
var path = _k.split('[').map(function(s) {
|
|
|
|
return (s.indexOf(']') < 0 ? s : s.substring(0, s.length -1));
|
|
|
|
}).join('/');
|
|
|
|
|
|
|
|
if(path in query) {
|
|
|
|
if (Array.isArray(query[path])) {
|
|
|
|
query[path].push(_v);
|
|
|
|
} else {
|
|
|
|
query[path] = [query[path], _v];
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
query[path] = _v;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return query;
|
|
|
|
};
|
2020-07-07 15:55:50 +00:00
|
|
|
}
|