|
@@ -60,9 +60,9 @@ class Weather(Command): |
|
|
query = urlopen(url.format(self.key, location)).read() |
|
|
query = urlopen(url.format(self.key, location)).read() |
|
|
res = loads(query) |
|
|
res = loads(query) |
|
|
|
|
|
|
|
|
if "error" in res: |
|
|
|
|
|
|
|
|
if "error" in res["response"]: |
|
|
try: |
|
|
try: |
|
|
desc = res["error"]["description"] |
|
|
|
|
|
|
|
|
desc = res["response"]["error"]["description"] |
|
|
desc = desc[0].upper() + des[1:] |
|
|
desc = desc[0].upper() + des[1:] |
|
|
if desc[-1] not in (".", "!", "?"): |
|
|
if desc[-1] not in (".", "!", "?"): |
|
|
desc += "." |
|
|
desc += "." |
|
@@ -77,12 +77,12 @@ class Weather(Command): |
|
|
elif "results" in res["response"]: |
|
|
elif "results" in res["response"]: |
|
|
results = [] |
|
|
results = [] |
|
|
for place in res["response"]["results"]: |
|
|
for place in res["response"]["results"]: |
|
|
extra = place["state" if place["state"] else "country_iso3166"] |
|
|
|
|
|
|
|
|
extra = place["state" if place["state"] else "country"] |
|
|
results.append("{0}, {1}".format(place["city"], extra)) |
|
|
results.append("{0}, {1}".format(place["city"], extra)) |
|
|
if len(results) > 21: |
|
|
if len(results) > 21: |
|
|
extra = len(results) - 20 |
|
|
extra = len(results) - 20 |
|
|
results = "; ".join(results[:20]) |
|
|
|
|
|
msg = "Did you mean: {0} ({1} others)?".format(results, extra) |
|
|
|
|
|
|
|
|
res = "; ".join(results[:20]) |
|
|
|
|
|
msg = "Did you mean: {0}... ({1} others)?".format(res, extra) |
|
|
else: |
|
|
else: |
|
|
msg = "Did you mean: {0}?".format("; ".join(results)) |
|
|
msg = "Did you mean: {0}?".format("; ".join(results)) |
|
|
self.reply(data, msg) |
|
|
self.reply(data, msg) |
|
@@ -103,13 +103,13 @@ class Weather(Command): |
|
|
wind = "{0} {1} mph".format(wind_dir, data["wind_mph"]) |
|
|
wind = "{0} {1} mph".format(wind_dir, data["wind_mph"]) |
|
|
if float(data["wind_gust_mph"]) > float(data["wind_mph"]): |
|
|
if float(data["wind_gust_mph"]) > float(data["wind_mph"]): |
|
|
wind += " ({0} mph gusts)".format(data["wind_gust_mph"]) |
|
|
wind += " ({0} mph gusts)".format(data["wind_gust_mph"]) |
|
|
precip_today = data["precip_today_in"] |
|
|
|
|
|
precip_hour = data["precip_1hr_in"] |
|
|
|
|
|
|
|
|
|
|
|
msg = "\x02{0}\x0F: {1} {2}; {3}°F ({4}°C); {5} humidity; wind {6}; " |
|
|
|
|
|
msg += "{7}″ precipitation today ({8}″ past hour)" |
|
|
|
|
|
msg = msg.format(place, icon, weather, temp_f, temp_c, humidity, wind, |
|
|
|
|
|
precip_today, precip_hour) |
|
|
|
|
|
|
|
|
msg = "\x02{0}\x0F: {1} {2}; {3}°F ({4}°C); {5} humidity; wind {6}" |
|
|
|
|
|
msg = msg.format(place, icon, weather, temp_f, temp_c, humidity, wind) |
|
|
|
|
|
if data["precip_today_in"] and float(data["precip_today_in"]) > 0: |
|
|
|
|
|
msg += "; {7}″ precipitation today".format(data["precip_today_in"]) |
|
|
|
|
|
if data["precip_1hr_in"] and float(data["precip_1hr_in"]) > 0: |
|
|
|
|
|
msg += " ({8}″ past hour)".format(data["precip_1hr_in"]) |
|
|
return msg |
|
|
return msg |
|
|
|
|
|
|
|
|
def get_icon(self, condition): |
|
|
def get_icon(self, condition): |
|
|