-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserver.js
More file actions
82 lines (55 loc) · 2.02 KB
/
server.js
File metadata and controls
82 lines (55 loc) · 2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
sys = require('system')
var server, service;
server = require('webserver').create();
function getParameterByName(name, url) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec("?" + url.split("?")[1]);
if(results == null)
return "";
else
return decodeURIComponent(results[1].replace(/\+/g, " "));
}
service = server.listen(sys.args[1], function (request, response) {
(function(){
var page = require('webpage').create();
var page_url = getParameterByName('url', request.url);
var callback_func = getParameterByName('callback', request.url);
if ( page_url != null && page_url != "" ) {
page.open(page_url, function (status) {
page.injectJs("add.js");
var itemData = page.evaluate(function () {
return window.itemData;
});
response.statusCode = 200;
var out_itemData = {};
out_itemData.title = itemData.title;
if ( itemData.price != null && itemData.price.length > 1 ) {
out_itemData.price = parseFloat(itemData.price.slice(1).replace(/,/g, '')); // remove $
}
out_itemData.images = [];
for ( var i in itemData.imageArray ) {
console.log(JSON.stringify(itemData.imageArray[i]));
out_itemData.images.push(itemData.imageArray[i].src);
}
console.log(JSON.stringify(itemData));
output_json = JSON.stringify(out_itemData);
if ( callback_func != null && callback_func != "" ) {
output_json = callback_func + "(" + output_json + ");"
}
response.write(output_json);
response.close();
//page.release();
page.close();
});
}
else
{
response.statusCode = 500;
response.write("No URL Provided");
response.close();
page.close();
}
})();
});