mirror of
https://github.com/gnh1201/welsonjs.git
synced 2024-11-26 15:31:42 +00:00
fix
This commit is contained in:
parent
97f68c39bb
commit
1309e2ab8f
|
@ -69,7 +69,7 @@ Router.add('/test', function(render) {
|
||||||
alert("모든 메시지가 정상적으로 보였다면 테스트에 성공한 것입니다.");
|
alert("모든 메시지가 정상적으로 보였다면 테스트에 성공한 것입니다.");
|
||||||
};
|
};
|
||||||
|
|
||||||
var content = FILE.readFile("data/test-oss-20231030.json", FILE.CdoCharset.CdoUTF_8);
|
var content = FILE.readFile("data/test-oss-korea-2023.json", FILE.CdoCharset.CdoUTF_8);
|
||||||
var data = JSON.parse(content);
|
var data = JSON.parse(content);
|
||||||
render("app/test.html", {
|
render("app/test.html", {
|
||||||
"data": data
|
"data": data
|
||||||
|
|
18
lib/adb.js
18
lib/adb.js
|
@ -6,17 +6,17 @@ var SYS = require("lib/system");
|
||||||
|
|
||||||
// A common Android devices
|
// A common Android devices
|
||||||
function ADBObject() {
|
function ADBObject() {
|
||||||
var _interface = SHELL.create();
|
this._interface = SHELL.create();
|
||||||
|
|
||||||
this.setBinPath = function(binPath) {
|
this.setBinPath = function(binPath) {
|
||||||
this.binPath = binPath;
|
this.binPath = binPath;
|
||||||
_interface.setPrefix(this.binPath);
|
this._interface.setPrefix(this.binPath);
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getDevices = function() {
|
this.getDevices = function() {
|
||||||
var devices = [];
|
var devices = [];
|
||||||
var result = _interface.exec(["devices"]);
|
var result = this._interface.exec(["devices"]);
|
||||||
|
|
||||||
splitLn(result).forEach(function(line) {
|
splitLn(result).forEach(function(line) {
|
||||||
var row = line.split(/\s+/);
|
var row = line.split(/\s+/);
|
||||||
|
@ -63,32 +63,32 @@ function ADBObject() {
|
||||||
|
|
||||||
// download a file from target device
|
// download a file from target device
|
||||||
this.pull = function(id, path) {
|
this.pull = function(id, path) {
|
||||||
return _interface.exec(["-s", id, "pull", path, "data\\"]);
|
return this._interface.exec(["-s", id, "pull", path, "data\\"]);
|
||||||
};
|
};
|
||||||
|
|
||||||
// upload a file to target device
|
// upload a file to target device
|
||||||
this.push = function(id, filename, path) {
|
this.push = function(id, filename, path) {
|
||||||
return _interface.exec(["-s", id, "push", "data\\" + filename, path]);
|
return this._interface.exec(["-s", id, "push", "data\\" + filename, path]);
|
||||||
};
|
};
|
||||||
|
|
||||||
// install APK file
|
// install APK file
|
||||||
this.install = function(id, filename) {
|
this.install = function(id, filename) {
|
||||||
return _interface.exec(["-s", id, "install", "data\\" + filename]);
|
return this._interface.exec(["-s", id, "install", "data\\" + filename]);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Uninstall the App
|
// Uninstall the App
|
||||||
this.uninstall = function(id, appname) {
|
this.uninstall = function(id, appname) {
|
||||||
return _interface.exec(["-s", id, "uninstall", appname]);
|
return this._interface.exec(["-s", id, "uninstall", appname]);
|
||||||
};
|
};
|
||||||
|
|
||||||
// reboot device
|
// reboot device
|
||||||
this.reboot = function(id) {
|
this.reboot = function(id) {
|
||||||
return _interface.exec(["-s", id, "reboot"]);
|
return this._interface.exec(["-s", id, "reboot"]);
|
||||||
};
|
};
|
||||||
|
|
||||||
// set the binary path
|
// set the binary path
|
||||||
this.binPath = "bin\\platform-tools_r33.0.0-windows\\platform-tools\\adb.exe";
|
this.binPath = "bin\\platform-tools_r33.0.0-windows\\platform-tools\\adb.exe";
|
||||||
_interface.setPrefix(this.binPath);
|
this._interface.setPrefix(this.binPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
// An Android Emulator
|
// An Android Emulator
|
||||||
|
|
53
lib/http.js
53
lib/http.js
|
@ -17,7 +17,7 @@ var PROCESS_VERSION = SYS.getProcessVersion();
|
||||||
var DEFAULT_USER_AGENT = "WelsonJS/0.2.7 (" + OS_NAME + "; " + OS_ARCH + "; " + PROCESS_VERSION + "; " + DEVICE_UUID + "; abuse@catswords.net)";
|
var DEFAULT_USER_AGENT = "WelsonJS/0.2.7 (" + OS_NAME + "; " + OS_ARCH + "; " + PROCESS_VERSION + "; " + DEVICE_UUID + "; abuse@catswords.net)";
|
||||||
|
|
||||||
var HTTPObject = function(engine) {
|
var HTTPObject = function(engine) {
|
||||||
var _interface = null;
|
this._interface = null;
|
||||||
|
|
||||||
this.contentType = "application/x-www-form-urlencoded";
|
this.contentType = "application/x-www-form-urlencoded";
|
||||||
this.requestBody = "";
|
this.requestBody = "";
|
||||||
|
@ -82,9 +82,11 @@ var HTTPObject = function(engine) {
|
||||||
switch (this.engine) {
|
switch (this.engine) {
|
||||||
case "MSXML":
|
case "MSXML":
|
||||||
if (typeof XMLHttpRequest !== "undefined") {
|
if (typeof XMLHttpRequest !== "undefined") {
|
||||||
_interface = new XMLHttpRequest();
|
console.log("A");
|
||||||
|
this._interface = new XMLHttpRequest();
|
||||||
} else {
|
} else {
|
||||||
_interface = CreateObject([
|
console.log("B");
|
||||||
|
this._interface = CreateObject([
|
||||||
"Microsoft.XMLHTTP",
|
"Microsoft.XMLHTTP",
|
||||||
"WinHttp.WinHttpRequest.5.1",
|
"WinHttp.WinHttpRequest.5.1",
|
||||||
"Msxml3.XMLHTTP",
|
"Msxml3.XMLHTTP",
|
||||||
|
@ -105,13 +107,15 @@ var HTTPObject = function(engine) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "CURL":
|
case "CURL":
|
||||||
_interface = SHELL.create();
|
console.log("C");
|
||||||
_interface.setPrefix("bin\\curl.exe"); // the location of cURL binary
|
this._interface = SHELL.create();
|
||||||
|
this._interface.setPrefix("bin\\curl.exe"); // the location of cURL binary
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "BITS":
|
case "BITS":
|
||||||
_interface = SHELL.create();
|
console.log("D");
|
||||||
_interface.setPrefix("bitsadmin.exe"); // the location of BITS binary
|
this._interface = SHELL.create();
|
||||||
|
this._interface.setPrefix("bitsadmin.exe"); // the location of BITS binary
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -246,7 +250,7 @@ var HTTPObject = function(engine) {
|
||||||
|
|
||||||
this.getHeader = function(key) {
|
this.getHeader = function(key) {
|
||||||
try {
|
try {
|
||||||
return _interface.getResponseHeader(key);
|
return this._interface.getResponseHeader(key);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("HTTPObject.getHeader() -> ", e.message);
|
console.error("HTTPObject.getHeader() -> ", e.message);
|
||||||
}
|
}
|
||||||
|
@ -254,7 +258,7 @@ var HTTPObject = function(engine) {
|
||||||
|
|
||||||
this.getHeaders = function() {
|
this.getHeaders = function() {
|
||||||
try {
|
try {
|
||||||
var raw = _interface.getAllResponseHeaders();
|
var raw = this._interface.getAllResponseHeaders();
|
||||||
|
|
||||||
return raw.split(/[\r\n]+/).filter(function(s) {
|
return raw.split(/[\r\n]+/).filter(function(s) {
|
||||||
return s.trim().length > 0;
|
return s.trim().length > 0;
|
||||||
|
@ -385,11 +389,11 @@ var HTTPObject = function(engine) {
|
||||||
// Open
|
// Open
|
||||||
switch (this.method) {
|
switch (this.method) {
|
||||||
case "POST":
|
case "POST":
|
||||||
_interface.open(method, url, this.isAsynchronous);
|
this._interface.open(method, url, this.isAsynchronous);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "GET":
|
case "GET":
|
||||||
_interface.open(method, url, this.isAsynchronous);
|
this._interface.open(method, url, this.isAsynchronous);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -439,27 +443,30 @@ var HTTPObject = function(engine) {
|
||||||
this.setHeader("Content-Type", this.contentType);
|
this.setHeader("Content-Type", this.contentType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log("engine: ", this.engine);
|
||||||
|
console.log("interface: ", typeof this._interface);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// MSXML (XHR)
|
// MSXML (XHR)
|
||||||
if (this.engine == "MSXML") {
|
if (this.engine == "MSXML") {
|
||||||
for (var key in this.headers) {
|
for (var key in this.headers) {
|
||||||
_interface.setRequestHeader(key, this.evaluate(this.headers[key]));
|
this._interface.setRequestHeader(key, this.evaluate(this.headers[key]));
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (this.method) {
|
switch (this.method) {
|
||||||
case "GET":
|
case "GET":
|
||||||
_interface.send();
|
this._interface.send();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
_interface.send(this.serialize());
|
this._interface.send(this.serialize());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Waiting a response
|
// Waiting a response
|
||||||
while (_interface.readyState < 4) sleep(100);
|
while (this._interface.readyState < 4) sleep(100);
|
||||||
|
|
||||||
// Get response text
|
// Get response text
|
||||||
responseText = _interface.responseText;
|
responseText = this._interface.responseText;
|
||||||
}
|
}
|
||||||
|
|
||||||
// cURL
|
// cURL
|
||||||
|
@ -584,7 +591,7 @@ var HTTPObject = function(engine) {
|
||||||
cmd.push(state.url);
|
cmd.push(state.url);
|
||||||
|
|
||||||
// Get response text
|
// Get response text
|
||||||
responseText = _interface.setCharset(this.charset).exec(cmd);
|
responseText = this._interface.setCharset(this.charset).exec(cmd);
|
||||||
|
|
||||||
// Reload a cookie in the pipe
|
// Reload a cookie in the pipe
|
||||||
if (this.isLoggingCookie) {
|
if (this.isLoggingCookie) {
|
||||||
|
@ -597,14 +604,14 @@ var HTTPObject = function(engine) {
|
||||||
console.log("Detected charset:", detectedCharset);
|
console.log("Detected charset:", detectedCharset);
|
||||||
|
|
||||||
if (detectedCharset != null && this.charset != detectedCharset) {
|
if (detectedCharset != null && this.charset != detectedCharset) {
|
||||||
var _interface = SHELL.create();
|
var this._interface = SHELL.create();
|
||||||
responseText = _interface.setCharset(detectedCharset).exec(cmd);
|
responseText = this._interface.setCharset(detectedCharset).exec(cmd);
|
||||||
debuggingText = _interface.stderr.read();
|
debuggingText = this._interface.stderr.read();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get debuging text
|
// Get debuging text
|
||||||
debuggingText = _interface.stderr.read();
|
debuggingText = this._interface.stderr.read();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -619,11 +626,11 @@ var HTTPObject = function(engine) {
|
||||||
|
|
||||||
if (this.method == "GET") {
|
if (this.method == "GET") {
|
||||||
cmd = cmd.concat(["/download", "/priority", job_priority, url, out.path]); // build a BITS command
|
cmd = cmd.concat(["/download", "/priority", job_priority, url, out.path]); // build a BITS command
|
||||||
_interface.exec(cmd); // launch the download job
|
this._interface.exec(cmd); // launch the download job
|
||||||
out.reload(); // read the downloaded data
|
out.reload(); // read the downloaded data
|
||||||
responseText = out.read() // set the downloaded data to response text
|
responseText = out.read() // set the downloaded data to response text
|
||||||
|
|
||||||
var err = _interface.exec(["/geterror", job_name]); // get error information
|
var err = this._interface.exec(["/geterror", job_name]); // get error information
|
||||||
debuggingText = err.stdout.read(); // set the error information to debugging text
|
debuggingText = err.stdout.read(); // set the error information to debugging text
|
||||||
|
|
||||||
out.destroy(); // destroy the downloaded data
|
out.destroy(); // destroy the downloaded data
|
||||||
|
|
26
lib/shell.js
26
lib/shell.js
|
@ -5,7 +5,7 @@ var FILE = require("lib/file");
|
||||||
var PipeIPC = require("lib/pipe-ipc");
|
var PipeIPC = require("lib/pipe-ipc");
|
||||||
|
|
||||||
var ShellObject = function() {
|
var ShellObject = function() {
|
||||||
this.interface = null;
|
this._interface = null;
|
||||||
|
|
||||||
this.currentDirectory = null;
|
this.currentDirectory = null;
|
||||||
this.workingDirectory = null;
|
this.workingDirectory = null;
|
||||||
|
@ -20,8 +20,8 @@ var ShellObject = function() {
|
||||||
|
|
||||||
this.create = function() {
|
this.create = function() {
|
||||||
try {
|
try {
|
||||||
this.interface = CreateObject("WScript.Shell");
|
this._interface = CreateObject("WScript.Shell");
|
||||||
this.currentDirectory = this.interface.CurrentDirectory;
|
this.currentDirectory = this._interface.CurrentDirectory;
|
||||||
this.workingDirectory = this.currentDirectory;
|
this.workingDirectory = this.currentDirectory;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("ShellObject.create() ->", e.message);
|
console.error("ShellObject.create() ->", e.message);
|
||||||
|
@ -42,7 +42,7 @@ var ShellObject = function() {
|
||||||
this.setWorkingDirectory = function(dirname) {
|
this.setWorkingDirectory = function(dirname) {
|
||||||
if (typeof(dirname) === "string") {
|
if (typeof(dirname) === "string") {
|
||||||
this.workingDirectory = dirname;
|
this.workingDirectory = dirname;
|
||||||
this.interface.CurrentDirectory = this.workingDirectory;
|
this._interface.CurrentDirectory = this.workingDirectory;
|
||||||
console.log("ShellObject.workingDirectory ->", this.workingDirectory);
|
console.log("ShellObject.workingDirectory ->", this.workingDirectory);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
|
@ -79,7 +79,7 @@ var ShellObject = function() {
|
||||||
try {
|
try {
|
||||||
var c = this.build(cmd);
|
var c = this.build(cmd);
|
||||||
console.log("ShellObject.createProcess() ->", c);
|
console.log("ShellObject.createProcess() ->", c);
|
||||||
return this.interface.Exec(c);
|
return this._interface.Exec(c);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("ShellObject.createProcess() ->", e.message);
|
console.error("ShellObject.createProcess() ->", e.message);
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ var ShellObject = function() {
|
||||||
var c = "%comspec% /c (" + this.build(cmd) + ") 1> " + this.stdout.path;
|
var c = "%comspec% /c (" + this.build(cmd) + ") 1> " + this.stdout.path;
|
||||||
//c += " 2>&1";
|
//c += " 2>&1";
|
||||||
c += " 2> " + this.stderr.path;
|
c += " 2> " + this.stderr.path;
|
||||||
this.interface.Run(c, 0, true);
|
this._interface.Run(c, 0, true);
|
||||||
console.log("ShellObject.exec() ->", c);
|
console.log("ShellObject.exec() ->", c);
|
||||||
sleep(1);
|
sleep(1);
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ var ShellObject = function() {
|
||||||
var fork = (typeof(fork) !== "undefined") ? fork : true;
|
var fork = (typeof(fork) !== "undefined") ? fork : true;
|
||||||
var c = "%comspec% /q /c (" + this.build(cmd) + ")";
|
var c = "%comspec% /q /c (" + this.build(cmd) + ")";
|
||||||
console.log("ShellObject.run() ->", c);
|
console.log("ShellObject.run() ->", c);
|
||||||
this.interface.Run(c, (!this.isVisibleWindow ? 0 : 1), !fork);
|
this._interface.Run(c, (!this.isVisibleWindow ? 0 : 1), !fork);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.runAs = function(FN, args) {
|
this.runAs = function(FN, args) {
|
||||||
|
@ -142,11 +142,11 @@ var ShellObject = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.createShoutcut = function(shoutcutName, cmd) {
|
this.createShoutcut = function(shoutcutName, cmd) {
|
||||||
var desktopPath = this.interface.SpecialFolders("Desktop");
|
var desktopPath = this._interface.SpecialFolders("Desktop");
|
||||||
var path = desktopPath + "\\" + shoutcutName + ".lnk";
|
var path = desktopPath + "\\" + shoutcutName + ".lnk";
|
||||||
|
|
||||||
if (!FILE.fileExists(path)) {
|
if (!FILE.fileExists(path)) {
|
||||||
var link = this.interface.CreateShortcut(path);
|
var link = this._interface.CreateShortcut(path);
|
||||||
//link.TargetPath = "cmd";
|
//link.TargetPath = "cmd";
|
||||||
//link.Arguments = "/q /c " + this.build(cmd);
|
//link.Arguments = "/q /c " + this.build(cmd);
|
||||||
link.TargetPath = "wscript";
|
link.TargetPath = "wscript";
|
||||||
|
@ -161,13 +161,13 @@ var ShellObject = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getPathOfMyDocuments = function() {
|
this.getPathOfMyDocuments = function() {
|
||||||
return this.interface.SpecialFolders("MyDocuments");
|
return this._interface.SpecialFolders("MyDocuments");
|
||||||
};
|
};
|
||||||
|
|
||||||
this.release = function() {
|
this.release = function() {
|
||||||
console.log("ShellObject.release() ->", this.currentDirectory);
|
console.log("ShellObject.release() ->", this.currentDirectory);
|
||||||
this.interface.CurrentDirectory = this.currentDirectory;
|
this._interface.CurrentDirectory = this.currentDirectory;
|
||||||
this.interface = null;
|
this._interface = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.create();
|
this.create();
|
||||||
|
@ -221,7 +221,7 @@ exports.getPathOfMyDocuments = function() {
|
||||||
|
|
||||||
exports.CdoCharset = PipeIPC.CdoCharset;
|
exports.CdoCharset = PipeIPC.CdoCharset;
|
||||||
|
|
||||||
exports.VERSIONINFO = "Windows Shell Interface with WelsonJS Pipe-IPC module (shell.js) version 0.3.11";
|
exports.VERSIONINFO = "Windows Shell Interface (shell.js) version 0.3.11";
|
||||||
exports.AUTHOR = "abuse@catswords.net";
|
exports.AUTHOR = "abuse@catswords.net";
|
||||||
exports.global = global;
|
exports.global = global;
|
||||||
exports.require = global.require;
|
exports.require = global.require;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user