-
Notifications
You must be signed in to change notification settings - Fork 3
/
server.js
98 lines (90 loc) · 3.47 KB
/
server.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
90
91
92
93
94
95
96
97
98
var TelegramBot = require('node-telegram-bot-api');
var moment = require('moment-timezone');
var request = require('request').defaults({
encoding: null
});
var token = process.env.TOKEN;
// Setup polling way
var bot = new TelegramBot(token, {
polling: true
});
var mense = {
"povo": [{
url: 'http://ftp.tn.ymir.eu/Povo02.jpg'
}, {
url: 'http://ftp.tn.ymir.eu/Povo01.jpg'
}],
"mesiano": [{
url: 'http://ftp.tn.ymir.eu/mesiano01.jpg'
}, {
url: 'http://ftp.tn.ymir.eu/mesiano02.jpg'
}],
"lettere": [{
url: 'http://ftp.tn.ymir.eu/tgar.jpg'
}]
};
function mensaIsOpen() {
var now = moment().tz("Europe/Rome");
var openingTime = moment("1129", "Hmm").utcOffset(0, true);
var closingTime = moment("1431", "Hmm").utcOffset(0, true);
if (now.isBetween(openingTime, closingTime)) {
return {
result: true,
time: now.format("HH.mm")
};
} else {
return {
result: false,
time: now.format("HH.mm")
};
}
}
function sendWebcam(bot, chatId, location, force) {
var checkMensa = mensaIsOpen();
if (checkMensa.result || force) {
mense[location].forEach(function (cam) {
request.get(cam.url, function (err, res, body) {
//process exif here
if (err) {
bot.sendMessage(chatId, 'Error, please report to @ilbonte');
} else {
if (res.statusCode !== 200) {
bot.sendMessage(chatId, 'Webcam may not be available. ¯\\_(ツ)_/¯ \nCheck yourself here: http://www.operauni.tn.it/servizi/ristorazione/webcam');
} else {
bot.sendPhoto(chatId, cam.url,);
}
}
});
});
} else {
bot.sendMessage(chatId, 'Webcams are enabled from 11.45 to 14.30. (Now it\'s ' + checkMensa.time + ')');
}
}
bot.onText(/\/povo/, function (msg, match) {
sendWebcam(bot, msg.chat.id, 'povo');
});
bot.onText(/\/mesiano/, function (msg, match) {
sendWebcam(bot, msg.chat.id, 'mesiano');
});
bot.onText(/\/lettere/, function (msg, match) {
sendWebcam(bot, msg.chat.id, 'lettere');
});
bot.onText(/\/test/, function (msg, match) {
bot.sendMessage(msg.chat.id, mensaIsOpen().time + '');
sendWebcam(bot, msg.chat.id, 'povo', true);
sendWebcam(bot, msg.chat.id, 'mesiano', true);
sendWebcam(bot, msg.chat.id, 'lettere', true);
});
bot.onText(/\/sito/, function (msg, match) {
bot.sendMessage(msg.from.id, 'http://www.operauni.tn.it/servizi/ristorazione/calendario\n');
});
bot.onText(/\/help/, function (msg, match) {
bot.sendMessage(msg.from.id, '/povo - Mostra le Webcam delle mense di Povo\n/mesiano - Mostra le Webcam delle mense di Mesiano\n/lettere - Mostra le Webcam della mensa in via Tommaso Gar\n/sito - Invia il link del sito del sito per ulteriori info(menù, calendario, ecc)\n/help - Mostra sta roba qui');
bot.sendMessage(msg.from.id, 'Se pensi che ci sia qualcosa di rotto contatta @ilbonte e magari manda uno screen\n');
bot.sendMessage(msg.from.id, '@WMUBot supports PASTO LESTO https://www.youtube.com/watch?v=g9nur8G-hKw');
});
// povo - Mostra le webcam delle mense di Povo
// mesiano - Mostra le webcam delle mense di Mesiano
// lettere - Mostra le webcam della mensa in via Tommaso Gar
// sito - Invia il link del sito del sito per ulteriori info(menù, calendario, ecc)
// help - Mostra cosa posso fare