-
Notifications
You must be signed in to change notification settings - Fork 0
/
iss.js
90 lines (82 loc) · 3.15 KB
/
iss.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
var axios = require('axios');
var et = require('html-entities').AllHtmlEntities;
var sharp = require("sharp");
var fs = require('fs'),
request = require('request');
function download(uri,filename,callback){
request.head(uri, function(err, res, body){
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
}
function getDatetime(){
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var h = today.getHours()+2;
var m = today.getMinutes();
var s = today.getSeconds();
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd;
}
if(mm<10){
mm='0'+mm;
}
var today = dd+'/'+mm+'/'+yyyy+":" + h + ":" + m + ":" + s;
return today;
}
module.exports = function(msg,isTag){
axios.request({
url: 'https://api.wheretheiss.at/v1/satellites/25544',
method: 'GET'
}).then(function(response){
lat = response.data.latitude;
lon = response.data.longitude;
axios.request({
url: 'http://staticmap.openstreetmap.de/staticmap.php?center=' + lat + ',' + lon + '&zoom=2&size=400x300&maptype=mapnik&markers=' + lat + ',' + lon + ',ltblu-pushpin',
method: 'GET'
}).then(function(resp){
try{
download(resp.config.url, 'map.png', function(){
sharp("map.png")
.overlayWith("sat.png")
.png()
.toFile("final.png")
.then(function(e){
/*send image*/
//out = outputBuffer;
var date = getDatetime();
fn = "ISSMap" + date + ".png";
if(isTag){
msg.channel.sendFile("final.png",fn,"Position de l\'ISS le " + date,function(err,mess){
if(err){
msg.reply('Erreur lors de l\'éxécution de la commande !iss');
console.log(err + ' ' + mess);
}
});
}
else{
msg.author.sendFile("final.png",fn,"Position de l\'ISS le " + date,function(err,mess){
console.log(mess);
if(err){
msg.reply('Erreur lors de l\'éxécution de la commande !iss');
console.log(err + ' ' + mess);
}
});
}
});
});
}
catch (e){
msg.reply('Erreur lors de l\'éxécution de la commande !iss');
console.log(e);
}
}).catch(function(fail){
msg.reply('Erreur lors de l\'éxécution de la commande !iss');
console.log(fail);
})
}).catch(function(fail){
msg.reply('Erreur lors de l\'éxécution de la commande !iss');
console.log(fail);
});
}