Update script to openweathermap api change
This commit is contained in:
parent
c4dc0f2d27
commit
ca944bd41b
@ -5,7 +5,7 @@
|
||||
# "moment":"2.10.2"
|
||||
#
|
||||
# Configuration:
|
||||
# None
|
||||
# WEATHER_API_KEY
|
||||
#
|
||||
# Commands:
|
||||
# hubot meteo/che tempo fa/c'è a <luogo>? - ottieni il meteo
|
||||
@ -16,16 +16,17 @@
|
||||
|
||||
moment = require 'moment'
|
||||
|
||||
regex = /(?:(?:d(?:a|i)mmi il )?meteo(?: per (.+))?|che tempo (?:fa|c'è)(?: (?:a|in) (.+))?)\??$/i
|
||||
|
||||
url1 = 'http://ip-api.com/json/'
|
||||
url2 = 'http://api.openweathermap.org/data/2.5/weather?lang=it&units=metric&q='
|
||||
url2 = 'http://api.openweathermap.org/data/2.5/weather?lang=it&units=metric'
|
||||
|
||||
err1 = 'non so dove sono: chiedimi un posto in particolare'
|
||||
err2 = 'errore nel guardare il cielo'
|
||||
|
||||
module.exports = (robot) ->
|
||||
robot.respond /(?:(?:d(?:a|i)mmi il )?meteo(?: per (.+))?|che tempo (?:fa|c'è)(?: (?:a|in) (.+))?)\??$/i, (res) ->
|
||||
find_location = (ip, callback) ->
|
||||
robot.http(url1 + ip).get() (err, r, body) ->
|
||||
get_location = (callback) ->
|
||||
robot.http(url1).get() (err, r, body) ->
|
||||
try
|
||||
city = JSON.parse(body).city
|
||||
catch e
|
||||
@ -38,9 +39,15 @@ module.exports = (robot) ->
|
||||
return
|
||||
callback city
|
||||
|
||||
send_weather = (city) ->
|
||||
robot.http(url2 + city).get() (err, r, body) ->
|
||||
return res.send "#{err2}\n #{err}" if err
|
||||
get_weather = (query, callback) ->
|
||||
key = process.env.WEATHER_API_KEY
|
||||
if not key
|
||||
return callback 'non ho la chiave per openweathermap :('
|
||||
robot.http(url2 + '&appid='+key + '&q='+query).get() (err, r, body) ->
|
||||
callback err, body
|
||||
|
||||
send_weather = (res) -> (err, body) ->
|
||||
return res.send "#{err2}:\n #{err}" if err
|
||||
try
|
||||
body = JSON.parse body
|
||||
catch e
|
||||
@ -56,9 +63,10 @@ module.exports = (robot) ->
|
||||
#{body.main.humidity}% di umidità. l'alba è alle #{dawn} mentre il
|
||||
tramonto alle #{dusk}"
|
||||
|
||||
robot.respond regex, (res) ->
|
||||
city = res.match[1] || res.match[2]
|
||||
|
||||
if not city?
|
||||
find_location '', send_weather
|
||||
else send_weather city
|
||||
|
||||
if city?
|
||||
get_weather city, send_weather res
|
||||
else
|
||||
get_location (location) ->
|
||||
get_weather location, send_weather res
|
||||
|
Loading…
Reference in New Issue
Block a user