-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
87 lines (74 loc) · 3.11 KB
/
app.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
#!/usr/bin/env node
var functioncalltime = new Date();
var cheerio = require('cheerio');
var request = require('request');
var shell = require('child_process');
var jsonData = require('./events/data');
//var jsonData = require('./events/deleteme');
var interval = 10000; //milliseconds
var maxhangtime = 300000;// if function isn't called in this time, the program is 'crashed' so that it can restart
setInterval(checkTime,60000);//check if program is hung once/minute
var getCallback = function(context) {
return function(error, response, body) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(body);
var $eventEl = $('.redText');
var $unavailable = $('.NoItemsMessage');
if($unavailable.length > 0){
console.log(context.code + ' not available ' + new Date());
context.messagesent = false;
}
if ($eventEl.length > 0){
var eventlist;
for(var i = 0; i < $eventEl.length; i++){
eventlist+=''+$($eventEl[i]).text();
console.log('event: ' + i, $($eventEl[i]).text());
console.log('EVENTLIST' + eventlist + ' '+ typeof eventlist);
}
if ( ( context.messagesent == false ) && ( eventlist.indexOf( context.code ) > -1 )){
console.log('calling bash script');
shell.exec(__dirname + '/sendText.sh ' + context.code + ' ' + context.date , function(error, stdout, stderr){
console.log('stderr:', stderr);
console.log('stdout:',stdout);
});
context.messagesent = true;
}
}
} else {
if (typeof response != 'undefined'){
console.log(context.code +
' session may have expired status:', response.statusCode);
} else {
console.log(context.code + ' session may have expired and response is undefined');
}
}
}
};
var guts = function(){
console.log('***');
functioncalltime= new Date();
for(var event in jsonData){
var url = 'https://www.cosport.com/olympics/tickets.aspx?SportID=' +
jsonData[event].id +
'&EventDate=' +
jsonData[event].date;
var options = {
uri: url,
headers: {
"Cookie": "ASP.NET_SessionId=0d4itpsnsg511cs0g1c4eemh; _top=0; User=CountryID=201&CurrencyID=3&CountryCode=USA&CountryName=the United States&CurrencyCode=USD&CurrencySymbol=36&ExchangeRateHospitalityPackages=1.00000000&ExchangeRateTickets=1.00000000&ExchangeRateTHPP=1.00000000&FlagImage=/images/USA.png&WebsiteAddress=ecommerce.jetsetsports.ru&ExchangeRateAccommodationOnly=1.00000000; _gat=1; _ga=GA1.2.419483383.1436107213; __atuvc=4%7C27; __atuvs=55994dab208a75b7001; _ace_cosport_com_cookie=R4260270219",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36"
}
};
request( options, getCallback( jsonData[event] ) );
}
setTimeout(guts, interval);
};
guts();
function checkTime(){
var now = new Date();
console.log('checktime');
if (now-functioncalltime>maxhangtime){
crashme();}
}
function crashme(){
CRASH();}