-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
73 lines (56 loc) · 2.28 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
const http = require('http');
const request = require("request");
const _ = require("lodash");
const hostname = '127.0.0.1';
const port = 3000;
const accountSid = '<TWILIO_SID>';
const authToken = '<TWILIO_AUTH_TOKEN>';
//require the Twilio module and create a REST client
const client = require('twilio')(accountSid, authToken);
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Pokemon Text Server\n');
});
server.listen(port, hostname, () => {
const pokemonToNotify = ["Victreebel", "Venusaur", "Blastoise", "Charizard", "Jolteon", "Vaporeon", "Gyrados", "Porygon", "Lapras", "Flareon", "Omastar", "Arcanine", "Kabutops", "Ditto", "Snorlax", "Articuno", "Moltres", "Zapdos", "Dragonite", "Mewtwo", "Mew", "Chansey", "Gengar", "Rapidash", "Golem"]
const numbersToContact = ["1231231234"]
var modifiedPokemon = {};
_.map(pokemonToNotify, (pokemon)=>{
modifiedPokemon[pokemon] = null;
})
setInterval(()=>{
for(var key in modifiedPokemon){
if(!modifiedPokemon[key]) continue;
if(modifiedPokemon[key].getTime() < new Date().getTime()){
modifiedPokemon[key] = null;
}
}
request("http://www.<POKEGO_URL>.com/raw_data", function(error, response, body) {
var pokemons = JSON.parse(body).pokemons;
_.map(pokemonToNotify, (pokemon_name)=>{
if(_.find(pokemons, {pokemon_name: pokemon_name})){
var pokemon = _.find(pokemons, {pokemon_name: pokemon_name});
if(modifiedPokemon[pokemon_name] != null) return;
var pokemon_expiration_time = new Date(pokemon.disappear_time);
var today = new Date();
var diffMs = (pokemon_expiration_time - today);
if(diffMs < 0) return;
var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000);
var message = "There's a " + pokemon_name + " in Kitchener, expires in " + diffMins + " minutes!" + " http://maps.google.com/?q=" + pokemon.latitude + "%2C" + pokemon.longitude;
console.log(message)
_.map(numbersToContact, (number)=>{
client.messages.create({
to: number,
from: "+<TWILIO_NUMBER>",
body: message
}, function(err, message) {
console.log(message.sid);
});
})
modifiedPokemon[pokemon_name] = pokemon_expiration_time;
}
})
});
}, 10000)
});