forked from FruitieX/dagsen-bot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
127 lines (111 loc) · 4.01 KB
/
index.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
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
127
var fs = require('fs');
var token = require(process.env.HOME + '/.dagsen-bot-token.js');
var request = require('request');
var Telegram = require('telegram-bot');
var tg = new Telegram(token);
tg.on('message', function(msg) {
if (!msg.text) return;
if (!msg.text.indexOf('/mat')) {
console.log('retreiving menu...');
request('http://api.teknolog.fi/taffa/sv/today', function(err, res, body) {
tg.sendMessage({
text: body,
chat_id: msg.chat.id
});
});
} else if (!msg.text.indexOf('/ute')) {
console.log('retreiving weather...');
request('http://outside.aalto.fi/data.txt', function(err, res, body) {
try {
outside = JSON.parse(body);
message = 'Temperatur: ' + Number(outside['gent-outside-t']).toFixed(1).replace('.', ',') + ' \xB0C\n';
message += 'Luftfuktighet: ' + Number(outside['gent-outside-h']).toFixed(0).replace('.', ',') + ' RH%\n';
message += 'Lufttryck: ' + Number(outside['gent-outside-b']).toFixed(0).replace('.', ',') + ' hPa\n';
message += 'Illuminans: ' + Number(outside['gent-outside-l']).toFixed(0).replace('.', ',') + ' lx\n';
} catch(err) {
message = "Vädersensorn är tyvärr offline för tillfället."
}
tg.sendMessage({
text: message,
chat_id: msg.chat.id
});
});
} else if(!msg.text.indexOf('/inne')) {
console.log('retrieving inside weather...');
request('http://inne.jiihon.com/inne', function(err, res, body) {
try {
inside = JSON.parse(body);
message = 'Temperatur: ' + Number(inside['temperature']).toFixed(1).replace('.',',') + ' \xB0C\n';
message += 'Luftfuktighet: ' + Number(inside['humidity']).toFixed(0).replace('.', ',') + ' RH%\n';
message += 'Ljust: '
if(inside['lights-on']==0) {
message += 'nej'; }
else {
message += 'ja' }
} catch(err) {
message = "Klimatsensorn är tyvärr offline för tillfället."
}
tg.sendMessage({
text: message,
chat_id: msg.chat.id
});
})
} else if (!msg.text.indexOf('/fredag')) {
tg.sendMessage({
text: new Date().getDay() === 5 ? 'IT\'S FRIDAY!' : 'Nope.',
chat_id: msg.chat.id
});
} else if (!msg.text.indexOf('/onsdag') || !msg.text.indexOf('/tulttan')) {
tg.sendMessage({
text: new Date().getDay() === 3 ? 'Ja, det är onsdag.' : 'Nope.',
chat_id: msg.chat.id
});
} else if (!msg.text.indexOf('/music')) {
try {
fs.readFile(process.env.HOME + '/.dagsen-bot-music.json', function(err, songs) {
if (err) {
console.log(err);
return;
}
songs = JSON.parse(songs);
var r = Math.floor(Math.random() * songs.length); // choose a random item from the URL list
tg.sendMessage({
text: songs[r],
chat_id: msg.chat.id
});
});
} catch(e) {
console.log('no music list found! add one to ~/.dagsen-bot-music.json');
}
} else if (!msg.text.indexOf('/addmusic')) {
fs.readFile(process.env.HOME + '/.dagsen-bot-music.json', function(err, songs) {
if (err) {
console.log(err);
return;
}
songs = JSON.parse(songs);
var url = msg.text.split(' ');
url.shift();
url = url.join(' ');
if (url.match(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/)) {
songs.push(url);
fs.writeFile(process.env.HOME + '/.dagsen-bot-music.json', JSON.stringify(songs), function(err) {
if (err) {
console.log(err);
return;
}
tg.sendMessage({
text: 'Song added!',
chat_id: msg.chat.id
});
});
}
});
} else if (!msg.text.indexOf('/trivia')) {
tg.sendMessage({
text: 'Spela trivia nu: https://telegram.me/joinchat/AXjh-gBgic0Dnbj_-uzMxg',
chat_id: msg.chat.id
});
}
});
tg.start();