summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/modules/Weather.py10
-rw-r--r--client/populate.py24
2 files changed, 25 insertions, 9 deletions
diff --git a/client/modules/Weather.py b/client/modules/Weather.py
index 85a8f1d..7bb86ec 100644
--- a/client/modules/Weather.py
+++ b/client/modules/Weather.py
@@ -76,12 +76,18 @@ def handle(text, mic, profile):
for entry in forecast:
try:
date_desc = entry['title'].split()[0].strip().lower()
+ if date_desc == 'forecast': #For global forecasts
+ date_desc = entry['title'].split()[2].strip().lower()
+ weather_desc = entry['summary']
- weather_desc = entry['summary'].split('-')[1]
+ elif date_desc == 'current': #For first item of global forecasts
+ continue
+ else:
+ weather_desc = entry['summary'].split('-')[1] #US forecasts
if weekday == date_desc:
output = date_keyword + \
- ", the weather will be" + weather_desc + "."
+ ", the weather will be " + weather_desc + "."
break
except:
continue
diff --git a/client/populate.py b/client/populate.py
index 7253f06..0887648 100644
--- a/client/populate.py
+++ b/client/populate.py
@@ -2,6 +2,7 @@ import re
from getpass import getpass
import yaml
from pytz import timezone
+import feedparser
def run():
@@ -48,14 +49,23 @@ def run():
profile['carrier'] = carrier
# location
+ def verifyLocation(place):
+ feed = feedparser.parse('http://rss.wunderground.com/auto/rss_full/' + place)
+ numEntries = len(feed['entries'])
+ if numEntries==0:
+ return False
+ else:
+ print("Location saved as " + feed['feed']['description'][33:])
+ return True
+
print(
- "Location should be a 5-digit US zipcode (e.g., 08544). For weather requests.")
- zipcode = clean_number(raw_input("Zipcode: "))
- while zipcode and len(zipcode) != 5:
- print("Invalid zipcode. Must be 5 digits.")
- zipcode = clean_number(raw_input("Zipcode: "))
- if zipcode:
- profile['location'] = zipcode
+ "Location should be a 5-digit US zipcode (e.g., 08544). If you are outside the US, insert the name of your nearest big town/city. For weather requests.")
+ location = raw_input("Location: ")
+ while location and (verifyLocation(location)==False):
+ print("Weather not found. Please try another location.")
+ location = raw_input("Location: ")
+ if location:
+ profile['location'] = location
# timezone
print(