-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.js
More file actions
126 lines (107 loc) · 3.19 KB
/
index.js
File metadata and controls
126 lines (107 loc) · 3.19 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
var config = require('./config.js');
var flock = require('flockos');
var express = require('express');
var CronJob = require('cron').CronJob;
var https = require('https');
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '',
user : '',
password : '',
database : ''
});
connection.connect();
//var Parser = require("simple-text-parser");
var supportedSites = ['github, facebook'];
flock.appId = config.appId;
flock.appSecret = config.appSecret;
var app = express();
app.use(flock.events.tokenVerifier);
app.post('/events', flock.events.listener);
app.listen(8080, function() {
console.log('Server listening at 8080');
});
flock.events.on('app.install', function(event, callback) {
var user = {
userid: event.userId,
token: event.token
};
var query = connection.query('insert into Users set ?', user, function (error, results, fields) {
if (error) throw error;
});
console.log(query.sql);
callback();
});
flock.events.on('client.slashCommand',function(event, callback) {
console.log('parse result',event.text);
if(event.text) {
console.log('subscribing api',event.text);
if(event.text === 'github' || event.text === 'facebook') {
console.log(' CONDITION TRUE');
var user = {
site: event.text,
userid: event.userId
};
var query = connection.query('insert into Subscription set ?', user, function (error, results, fields) {
if (error) throw error;
});
console.log(query.sql);
}
callback(null, { text: event.userName+' subscribed to API '+event.text});
} else {
callback(null, {text: 'API to be subscribed not specified'});
}
});
flock.events.on('app.uninstall', function(event, callback) {
callback();
});
var job = new CronJob('5 * * * * *', function () {
checkStatus();
}, function() {
},
true
);
function checkStatus() {
https.get('https://status.github.com/api/status.json', function (response) {
response.on("data", function(data) {
var resp = JSON.parse(data);
if (resp.status !== "good") {
notify('github');
}
else {
console.log(resp.status);
}
});
});
/* https.get('https://www.facebook.com/platform/api-status', function (response) {
console.log('FACEBOOK IN');
console.log(response);
response.on("data", function(data) {
var resp = JSON.parse(data);
if (resp.current.health === 1) {
console.log('INSIDE HEALTH OF FACEBOOK');
notify('facebook');
}
else {
console.log(resp.current.health);
}
});
});
*/
}
//function checkFBStatus() {
//}
var notify = function (siteToCheck) {
connection.query('SELECT userid from Subscription where site=?', siteToCheck, function (error, results, fields) {
if (error) throw error;
console.log(siteToCheck);
console.log(results);
for (var i in results) {
console.log(results[i]);
flock.chat.sendMessage(config.botToken,{
to: results[i].userid,
text: siteToCheck + ' server is down',
});
}
});
}