Merge lp:~tenpou/my-weather-indicator/my-weather-indicator into lp:my-weather-indicator

Proposed by ten
Status: Needs review
Proposed branch: lp:~tenpou/my-weather-indicator/my-weather-indicator
Merge into: lp:my-weather-indicator
Diff against target: 135 lines (+32/-15)
3 files modified
src/geocodeapi.py (+2/-4)
src/weatherservice.py (+16/-10)
src/wopenweathermapapi.py (+14/-1)
To merge this branch: bzr merge lp:~tenpou/my-weather-indicator/my-weather-indicator
Reviewer Review Type Date Requested Status
Lorenzo Carbonell Pending
Review via email: mp+275446@code.launchpad.net

Description of the change

A small batch of fixes, as described in the commits: some new statuses and a timezone calculation fix.

Fixes an annoying bug, which cropped up for a lot of people as "Error: %s intensity shower rain" etc., but that code block probably should be reworked altogether? Glueing a string as 'Heavy'/'Light'+%s doesn't localize well separately, if at all, to most languages. I'd drop that part of search if I wasn't afraid about the description string array being incomplete.

To post a comment you must log in.

Unmerged revisions

214. By ten

* Fixed timezone calculation (bug #1474480)
* Added some new conditions (bug #1437003)

213. By ten

Fix for precipitation "Error:%s"

212. By ten

Added some OwM statuses

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/geocodeapi.py'
2--- src/geocodeapi.py 2014-07-14 04:21:00 +0000
3+++ src/geocodeapi.py 2015-10-22 19:11:49 +0000
4@@ -119,10 +119,8 @@
5 try:
6 timezone = pytz.timezone(timezoneId)
7 timeinzone = timezone.localize(datetime.datetime.now())
8- nowdt = timeinzone.strftime('%z')
9- h = s2f(nowdt)
10- m = (h - int(h))/60.0
11- h = int(h/100.0)+m
12+ nowdelta = timeinzone.utcoffset()
13+ h = nowdelta.total_seconds() / 3600
14 return h
15 except Exception as e:
16 print('Error calculating rawOffset: %s'%(str(e)))
17
18=== modified file 'src/weatherservice.py'
19--- src/weatherservice.py 2014-07-14 04:21:00 +0000
20+++ src/weatherservice.py 2015-10-22 19:11:49 +0000
21@@ -86,7 +86,9 @@
22 CONDITIONS['intensity drizzle'] = {'text':_('Intensity drizzle'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
23 CONDITIONS['intensity drizzle rain'] = {'text':_('Intensity drizzle rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
24 CONDITIONS['intensity rain'] = {'text':_('Intensity rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
25+CONDITIONS['intensity shower rain'] = {'text':_('Intensity shower rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
26 CONDITIONS['isolated showers']={'text':_('Isolated showers'),'image':'mwig-chance-of-rain.png','image-night':'mwig-chance-of-rain-night.png','icon-dark':'mwid-chance-of-rain.png','icon-night-dark':'mwid-chance-of-rain-night.png','icon-light':'mwil-chance-of-rain.png','icon-night-light':'mwil-chance-of-rain-night.png'}
27+CONDITIONS['isolated thundershowers']={'text':_('Isolated thundershowers'),'image':'mwig-chance-of-thunderstorms.png','image-night':'mwig-chance-of-thunderstorms-night.png','icon-dark':'mwid-chance-of-thunderstorms.png','icon-night-dark':'mwid-chance-of-thunderstorms-night.png','icon-light':'mwil-chance-of-thunderstorms.png','icon-night-light':'mwil-chance-of-thunderstorms-night.png'}
28 CONDITIONS['isolated thunderstorms']={'text':_('Isolated thunderstorms'),'image':'mwig-chance-of-thunderstorms.png','image-night':'mwig-chance-of-thunderstorms-night.png','icon-dark':'mwid-chance-of-thunderstorms.png','icon-night-dark':'mwid-chance-of-thunderstorms-night.png','icon-light':'mwil-chance-of-thunderstorms.png','icon-night-light':'mwil-chance-of-thunderstorms-night.png'}
29 CONDITIONS['light drizzle']={'text':_('Light drizzle'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
30 CONDITIONS['light freezing rain']={'text':_('Light freezing rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
31@@ -95,10 +97,10 @@
32 CONDITIONS['light intensity shower rain'] = {'text':_('Light intensity shower rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
33 CONDITIONS['light rain shower']={'text':_('Light rain shower'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
34 CONDITIONS['light rain']={'text':_('Light rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
35-CONDITIONS['light showers of ice pellets.png',]={'text':_('Light showers of ice pellets'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
36-CONDITIONS['light sleet showers.png',]={'text':_('Light sleet showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
37+CONDITIONS['light showers of ice pellets',]={'text':_('Light showers of ice pellets'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
38+CONDITIONS['light sleet showers',]={'text':_('Light sleet showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
39 CONDITIONS['light sleet']={'text':_('Light sleet'),'image':'mwig-snow.png','image-night':'mwig-snow.png','icon-dark':'mwid-snow.png','icon-night-dark':'mwid-snow.png','icon-light':'mwil-snow.png','icon-night-light':'mwil-snow.png'}
40-CONDITIONS['light snow showers.png',]={'text':_('Light snow showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
41+CONDITIONS['light snow showers',]={'text':_('Light snow showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
42 CONDITIONS['light snow']={'text':_('Light snow'),'image':'mwig-snow.png','image-night':'mwig-snow.png','icon-dark':'mwid-snow.png','icon-night-dark':'mwid-snow.png','icon-light':'mwil-snow.png','icon-night-light':'mwil-snow.png'}
43 CONDITIONS['light thunderstorm'] = {'text':_('Light thunderstorm'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
44 CONDITIONS['low drifting sand']={'text':_('Low drifting sand'),'image':'mwig-fog.png','image-night':'mwig-fog-night.png','icon-dark':'mwid-fog.png','icon-night-dark':'mwid-fog-night.png','icon-light':'mwil-fog.png','icon-night-light':'mwil-fog-night.png'}
45@@ -112,7 +114,7 @@
46 CONDITIONS['moderate or heavy rain in area with thunder']={'text':_('Moderate or heavy rain in area with thunder'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
47 CONDITIONS['moderate or heavy rain shower']={'text':_('Moderate or heavy rain shower'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
48 CONDITIONS['moderate or heavy showers of ice pellets']={'text':_('Moderate or heavy showers of ice pellets'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
49-CONDITIONS['moderate or heavy sleet showers.png',]={'text':_('Moderate or heavy sleet showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
50+CONDITIONS['moderate or heavy sleet showers',]={'text':_('Moderate or heavy sleet showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
51 CONDITIONS['moderate or heavy sleet']={'text':_('Moderate or heavy sleet'),'image':'mwig-snow.png','image-night':'mwig-snow.png','icon-dark':'mwid-snow.png','icon-night-dark':'mwid-snow.png','icon-light':'mwil-snow.png','icon-night-light':'mwil-snow.png'}
52 CONDITIONS['moderate or heavy snow in area with thunder']={'text':_('Moderate or heavy snow in area with thunder'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
53 CONDITIONS['moderate or heavy snow showers']={'text':_('Moderate or heavy snow showers'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
54@@ -138,6 +140,7 @@
55 CONDITIONS['patchy rain nearby']={'text':_('Patchy rain nearby'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
56 CONDITIONS['patchy sleet nearby']={'text':_('Patchy sleet nearby'),'image':'mwig-snow.png','image-night':'mwig-snow.png','icon-dark':'mwid-snow.png','icon-night-dark':'mwid-snow.png','icon-light':'mwil-snow.png','icon-night-light':'mwil-snow.png'}
57 CONDITIONS['patchy snow nearby']={'text':_('Patchy snow nearby'),'image':'mwig-snow.png','image-night':'mwig-snow.png','icon-dark':'mwid-snow.png','icon-night-dark':'mwid-snow.png','icon-light':'mwil-snow.png','icon-night-light':'mwil-snow.png'}
58+CONDITIONS['ragged shower rain']={'text':_('Ragged shower rain'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
59 CONDITIONS['ragged thunderstorm'] = {'text':_('Ragged thunderstorm'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
60 CONDITIONS['rain and snow']={'text':_('Rain and snow'),'image':'mwig-rain-and-snow.png','image-night':'mwig-rain-and-snow.png','icon-dark':'mwid-rain-and-snow.png','icon-night-dark':'mwid-rain-and-snow.png','icon-light':'mwil-rain-and-snow.png','icon-night-light':'mwil-rain-and-snow.png'}
61 CONDITIONS['rain mist']={'text':_('Rain mist'),'image':'mwig-rain.png','image-night':'mwig-rain.png','icon-dark':'mwid-rain.png','icon-night-dark':'mwid-rain.png','icon-light':'mwil-rain.png','icon-night-light':'mwil-rain.png'}
62@@ -166,6 +169,7 @@
63 CONDITIONS['squalls']={'text':_('Squalls'),'image':'mwig-windy.png','image-night':'mwig-windy.png','icon-dark':'mwid-windy.png','icon-night-dark':'mwid-windy.png','icon-light':'mwil-windy.png','icon-night-light':'mwil-windy.png'}
64 CONDITIONS['storm']={'text':_('Storm'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
65 CONDITIONS['sunny']={'text':_('Sunny'),'image':'mwig-clear.png','image-night':'mwig-clear-night.png','icon-dark':'mwid-clear.png','icon-night-dark':'mwid-clear-night.png','icon-light':'mwil-clear.png','icon-night-light':'mwil-clear-night.png'}
66+CONDITIONS['thundershowers']={'text':_('Thundershowers'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
67 CONDITIONS['thunderstorm']={'text':_('Thunderstorm'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
68 CONDITIONS['thunderstorms']={'text':_('Thunderstorm'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
69 CONDITIONS['thunderstorms and ice pellets']={'text':_('Thunderstorms and ice pellets'),'image':'mwig-storm.png','image-night':'mwig-storm.png','icon-dark':'mwid-storm.png','icon-night-dark':'mwid-storm.png','icon-light':'mwil-storm.png','icon-night-light':'mwil-storm.png'}
70@@ -315,15 +319,17 @@
71 def get_condition(condition,tipo):
72 text = ''
73 if condition != None and len(condition)>0:
74- if condition.startswith('heavy '):
75- condition = condition[6:]
76- text = _('Heavy')+' '
77- elif condition.startswith('light '):
78- condition = condition[6:]
79- text = _('Light')+' '
80 if condition in CONDITIONS.keys():
81 return CONDITIONS[condition][tipo]
82 else:
83+ if condition.startswith('heavy '):
84+ condition = condition[6:]
85+ text = _('Heavy')+' '
86+ elif condition.startswith('light '):
87+ condition = condition[6:]
88+ text = _('Light')+' '
89+ if condition in CONDITIONS.keys():
90+ return CONDITIONS[condition][tipo]
91 if tipo == 'text':
92 return 'Error: %s'%condition
93 return CONDITIONS['not available'][tipo]
94
95=== modified file 'src/wopenweathermapapi.py'
96--- src/wopenweathermapapi.py 2014-07-20 18:24:50 +0000
97+++ src/wopenweathermapapi.py 2015-10-22 19:11:49 +0000
98@@ -61,6 +61,8 @@
99 CONDITION[310] = 'light intensity drizzle rain'
100 CONDITION[311] = 'drizzle rain'
101 CONDITION[312] = 'heavy intensity drizzle rain'
102+CONDITION[313] = 'shower rain and drizzle'
103+CONDITION[314] = 'heavy shower rain and drizzle'
104 CONDITION[321] = 'shower drizzle'
105 CONDITION[500] = 'light rain'
106 CONDITION[501] = 'moderate rain'
107@@ -71,16 +73,27 @@
108 CONDITION[520] = 'light intensity shower rain'
109 CONDITION[521] = 'shower rain'
110 CONDITION[522] = 'heavy intensity shower rain'
111+CONDITION[531] = 'ragged shower rain'
112 CONDITION[600] = 'light snow'
113 CONDITION[601] = 'snow'
114 CONDITION[602] = 'heavy snow'
115 CONDITION[611] = 'sleet'
116+CONDITION[612] = 'shower sleet'
117+CONDITION[615] = 'light rain and snow'
118+CONDITION[616] = 'rain and snow'
119+CONDITION[620] = 'light shower snow'
120 CONDITION[621] = 'shower snow'
121+CONDITION[622] = 'heavy shower snow'
122 CONDITION[701] = 'mist'
123 CONDITION[711] = 'smoke'
124 CONDITION[721] = 'haze'
125-CONDITION[731] = 'sand'
126+CONDITION[731] = 'sand, dust whirls'
127 CONDITION[741] = 'fog'
128+CONDITION[751] = 'sand'
129+CONDITION[761] = 'dust'
130+CONDITION[762] = 'volcanic ash'
131+CONDITION[771] = 'squalls'
132+CONDITION[781] = 'tornado'
133 CONDITION[800] = 'clear'#sky is clear
134 CONDITION[801] = 'partly sunny'#few clouds
135 CONDITION[802] = 'partly cloudy'#scattered clouds

Subscribers

People subscribed via source and target branches

to status/vote changes: