convert to eSignal api
[enigma2-plugins.git] / weathercomponent / src / Components / WeatherMSN.py
1 # -*- coding: utf-8 -*-
2 #
3 # WeatherPlugin E2
4 #
5 # Coded by Dr.Best (c) 2012-2013
6 # Support: www.dreambox-tools.info
7 # E-Mail: dr.best@dreambox-tools.info
8 #
9 # This plugin is open source but it is NOT free software.
10 #
11 # This plugin may only be distributed to and executed on hardware which
12 # is licensed by Dream Multimedia GmbH.
13 # In other words:
14 # It's NOT allowed to distribute any parts of this plugin or its source code in ANY way
15 # to hardware which is NOT licensed by Dream Multimedia GmbH.
16 # It's NOT allowed to execute this plugin and its source code or even parts of it in ANY way
17 # on hardware which is NOT licensed by Dream Multimedia GmbH.
18 #
19 # If you want to use or modify the code or parts of it,
20 # you have to keep MY license and inform me about the modifications by mail.
21 #
22
23 from enigma import eEnv, eTimer
24 from Plugins.Extensions.WeatherPlugin.MSNWeather import MSNWeather
25
26 class WeatherMSN:
27         TIMER_INTERVAL = 1800
28         def __init__(self):
29                 self.weatherData = MSNWeather()
30                 self.callbacks = [ ]
31                 self.callbacksAllIconsDownloaded = []
32                 self.timer = eTimer()
33                 self.timer_conn = self.timer.timeout.connect(self.getData)
34         
35         def getData(self):
36                 self.timer.stop()
37                 self.weatherData.getDefaultWeatherData(self.callback, self.callbackAllIconsDownloaded)
38                 self.timer.startLongTimer(self.TIMER_INTERVAL)
39                 
40         def updateWeather(self, weather, result, errortext):
41                 if result == MSNWeather.OK:
42                         self.timer.stop()
43                         self.weatherData = weather
44                         self.weatherData.callback = None
45                         self.weatherData.callbackShowIcon = None
46                         self.weatherData.callbackAllIconsDownloaded = None
47                         self.callback(result, errortext)
48                         self.callbackAllIconsDownloaded()
49                         self.timer.startLongTimer(self.TIMER_INTERVAL)
50
51         def callbackAllIconsDownloaded(self):
52                 for x in self.callbacksAllIconsDownloaded:
53                         x()
54
55         def callback(self, result, errortext):
56                 for x in self.callbacks:
57                         x(result, errortext)
58         
59 weathermsn = WeatherMSN()