-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspg.js
89 lines (83 loc) · 2.49 KB
/
spg.js
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
83
84
85
86
87
88
89
var system = require('system');
var args = system.args;
var DEBUG = true;
var unidecode = require('unidecode');
if(args.length != (1+1) ){
console.log('error: lack of parameters');
phantom.exit();
}
else{
var url = args[1];
var page = require('webpage').create(),
url = url
page.open(url, function (status) {
if (status !== 'success') {
console.log('error: Unable to access network '+ status);
phantom.exit();
} else {
// console.log(page.content);
var results = page.evaluate(function() {
var list = document.querySelectorAll('.propertyInner');
var i, t;
var name = "";
var lsp = "";
var points = "";
var cp = "";
var hotels = [];
var temp;
var pre_string="";
var lines;
for (i = 0; i < list.length; i++) {
lines = list[i].innerText.split('\n');
for( t = 0; t< lines.length; t++){
if(lines[t] != 'NEW' && lines[t].indexOf('Please')<=-1 && lines[t].indexOf('Opening')<=-1 && lines[t].indexOf('Find')<=-1 && lines[t].indexOf('This') && lines[t] != 'From' &&
lines[t] != 'per night')
{
temp = lines[t];
pre_string+=temp+'\n';
}
}
}
lines = pre_string.split('\n');
i = 0;
min = 9999;
for( t = 0; t< lines.length; t++){
if( lines[t].indexOf('Starpoints')>-1 ){
if( lines[t+1] && lines[t+1].indexOf('+')>-1 ){
cp = {points: Number(lines[t].split(" ")[0].replace(',','')), usd: Number(lines[++t].slice(6))};
}else{
points = Number( lines[t].split(" ")[0].replace(',','') );
}
}else if( lines[t].indexOf('USD')>-1 ){
var usd = Number(lines[t].slice(5).replace(',',''));
if(usd<min){
min = usd;
}
}else if( lines[t] == '' ){
if(name == ""){
continue;
}
lsp = min;
hotels.push({name: name, lsp: lsp, points: points, cp: cp});
name = "";
lsp = "";
points = "";
cp = "";
min = 9999;
}else{
name = lines[t];
}
}
return hotels;
});
var i;
for(i=0 ; i < results.length ; i++){
console.log(JSON.stringify(results[i]));
}
}
phantom.exit();
});
page.onConsoleMessage = function (msg) {
console.log(msg);
};
}