]> jfr.im git - erebus.git/blobdiff - modules/weather.py
further py3 compatibility work
[erebus.git] / modules / weather.py
index 6b507713f26cb351877fb04768df7ab6e8afe161..27fc9013d7423ad9a1968fb39e005265fc7136f4 100644 (file)
@@ -18,10 +18,14 @@ modstart = lib.modstart
 modstop = lib.modstop
 
 # module code
-import json, urllib, time, rfc822
+import json, urllib, time
+from email.utils import parsedate
 
 def location(person, default=None): return lib.mod('userinfo')._get(person, 'location', default=None)
 
+def _dayofweek(dayname):
+       return ['mon','tue','wed','thu','fri','sat','sun'].index(dayname.lower())
+
 def _weather(place):
        if place is not None:
                weather = json.load(urllib.urlopen('http://api.wunderground.com/api/8670e6d2e69ff3c7/conditions/q/%s.json' % (place)))
@@ -34,7 +38,8 @@ def _weather(place):
                                return "That search term is ambiguous. Please be more specific."
 
                current = weather['current_observation']
-               measuredat = rfc822.parsedate(current['observation_time_rfc822']) # parsedate_tz returns a 10-tuple which strftime DOESN'T ACCEPT
+               measuredat = list(parsedate(current['observation_time_rfc822']))
+               measuredat[6] = _dayofweek(current['observation_time_rfc822'][0:3])
                measuredatTZ = current['local_tz_short']
                loc = current['observation_location']
                if loc['city'] == "" or loc['state'] == "": loc = current['display_location']