Changeset 167:d0e0d0aeda52
- Timestamp:
- 11/19/08 06:19:24 (3 years ago)
- Author:
- chris
- Branch:
- CAP_1.1
- Message:
-
move StormSiren specific code out of the XmlWeather class into the StormWeather class
- Location:
- StormSiren
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r164
|
r167
|
|
| 51 | 51 | class StormWeather(XmlWeather): |
| 52 | 52 | def __init__(self, state, history, simfetch = False, simalert = False, proxy = None): |
| 53 | | super(StormWeather,self).__init__(state,history,simfetch,proxy) |
| | 53 | super(StormWeather,self).__init__(state,simfetch,proxy) |
| 54 | 54 | self.log = logging.getLogger("StormWeather") |
| 55 | 55 | self.__alert_devs = [] |
| 56 | 56 | self.__simalert = simalert |
| | 57 | self.__history = history |
| 57 | 58 | |
| 58 | | def display(self): |
| 59 | | return self.__str__() |
| 60 | | |
| 61 | 59 | def __str__(self): |
| 62 | 60 | str = "StormWeather: " + "\n" |
| … |
… |
|
| 76 | 74 | self.__alert_devs.append(dev) |
| 77 | 75 | |
| 78 | | def handleAlert(self, cap_item): |
| 79 | | alerted = False |
| 80 | | |
| 81 | | for dev in self.__alert_devs: |
| 82 | | if(dev.isAlertWanted(cap_item)): |
| 83 | | if(not self.__simalert): |
| 84 | | cap_item.expand(self.simfetch,self.proxy) |
| 85 | | dev.send(WeatherAlert(cap_item)) |
| 86 | | alerted = True |
| 87 | | else: |
| 88 | | self.log.info("Simulated Alert on: %s" % cap_item.id) |
| 89 | | |
| 90 | | return alerted |
| | 76 | def handleAlert(self, cap_atom): |
| | 77 | if(not self.__history.exists(cap_atom.id)): |
| | 78 | for dev in self.__alert_devs: |
| | 79 | if(dev.isAlertWanted(cap_atom)): |
| | 80 | if(not self.__simalert): |
| | 81 | cap_atom.expand(self.simfetch,self.proxy) |
| | 82 | dev.send(WeatherAlert(cap_atom)) |
| | 83 | self.__history.add(cap_atom.id) |
| | 84 | else: |
| | 85 | self.log.info("Simulated Alert on: %s" % cap_atom.id) |
| | 86 | else: |
| | 87 | self.log.debug("Ignoring %s: Already alerted on" % cap_atom.id) |
-
|
r161
|
r167
|
|
| 49 | 49 | |
| 50 | 50 | class XmlWeather(object): |
| 51 | | def __init__(self, state, history, simfetch = False, proxy = None): |
| | 51 | def __init__(self, state, simfetch = False, proxy = None): |
| 52 | 52 | super(XmlWeather,self).__init__() |
| 53 | 53 | self.__data = '' |
| … |
… |
|
| 55 | 55 | self.__dom = [] |
| 56 | 56 | self.__baseurl = 'http://www.weather.gov/wwarss-tst/' |
| 57 | | #self.__url = "http://www.weather.gov/alerts/" + self.__state.lower() + ".cap" |
| 58 | 57 | self.__url = self.__baseurl + self.__state.lower() + ".php?x=0" |
| 59 | 58 | self.__tag_item = 'entry' |
| 60 | | self.__history = history |
| 61 | 59 | self.__simfetch = simfetch |
| 62 | 60 | self.__proxy = proxy |
| 63 | 61 | self.__atoms = XmlFetcher(self.__url, self.__simfetch, self.__proxy) |
| 64 | | self.log = logging.getLogger("XmlWeather") |
| | 62 | self.log = logging.getLogger("XmlWeather") |
| 65 | 63 | |
| 66 | 64 | def fetch(self): |
| … |
… |
|
| 76 | 74 | def __str__(self): |
| 77 | 75 | str = "XmlWeather:\n" + \ |
| | 76 | "SimFetch: " + self.__simfetch + "\n" + \ |
| | 77 | "Proxy: " + self.__proxy + "\n" + \ |
| 78 | 78 | "State: " + self.__state + "\n" + \ |
| 79 | 79 | "URL: " + self.__url + "\n" |
| … |
… |
|
| 85 | 85 | def __parse(self): |
| 86 | 86 | for capXmlText in self.__dom.getElementsByTagName(self.__tag_item): |
| 87 | | cap_item = CapAtom(capXmlText, self.__state) |
| 88 | | cap_item.display() |
| 89 | | if(not self.__history.exists(cap_item.id)): |
| 90 | | alerted = self.handleAlert(cap_item) |
| 91 | | if(alerted): |
| 92 | | self.__history.add(cap_item.id) |
| 93 | | else: |
| 94 | | self.log.debug("Ignoring %s: Already alerted on" % cap_item.id) |
| | 87 | cap_atom = CapAtom(capXmlText, self.__state) |
| | 88 | cap_atom.display() |
| | 89 | self.handleAtom(cap_atom) |
| 95 | 90 | |
| 96 | | def handleAlert(self,cap_item): |
| 97 | | self.log.debug("handleAlert(%s) - %s/%s" % (cap_item.id, cap_item.county, cap_item.state)) |
| 98 | | return True |
| | 91 | def handleAtom(self,cap_atom): |
| | 92 | pass |
| 99 | 93 | |
| 100 | 94 | def getSimFetch(self): |