Exemple #1
0
 def iter_gauges(self, pattern=None):
     if pattern is None or pattern.lower() in u"dresden"\
             or pattern.lower() in "weather":
         gauge = Gauge("wetter")
         gauge.name = u"Private Wetterstation Dresden"
         gauge.city = u"Dresden"
         gauge.object = u"Weather"
         gauge.sensors = list(self.browser.get_sensors_list())
         yield gauge
Exemple #2
0
 def get_station_list(self):
     gauges = []
     for marker in self.parser.select(self.document.getroot(), 'marker'):
         gauge = Gauge(int(marker.get('id')))
         gauge.name = unicode(marker.get('name'))
         gauge.city = gauge.name
         gauge.object = u'vLille'
         gauges.append(gauge)
     return gauges
Exemple #3
0
 def get_station_list(self):
     gauges = []
     for marker in self.parser.select(self.document.getroot(), 'marker'):
         gauge = Gauge(int(marker.get('id')))
         gauge.name = unicode(marker.get('name'))
         gauge.city = gauge.name
         gauge.object = u'vLille'
         gauges.append(gauge)
     return gauges
Exemple #4
0
 def iter_gauges(self, pattern=None):
     if pattern is None or pattern.lower() in u"dresden"\
             or pattern.lower() in "weather":
         gauge = Gauge("wetter")
         gauge.name = u"Private Wetterstation Dresden"
         gauge.city = u"Dresden"
         gauge.object = u"Weather"
         gauge.sensors = list(self.browser.get_sensors_list())
         yield gauge
Exemple #5
0
 def _make_gauge(self, info):
     gauge = Gauge(info['id'])
     gauge.name = info['name']
     gauge.city = info['city']
     gauge.object = 'bikes'
     return gauge
Exemple #6
0
    def get_rivers_list(self):
        for pegel in self.document.getroot().xpath(".//a[@onmouseout='pegelaus()']"):
            div = pegel.getparent()
            img = div.find('.//img').attrib['src'].split('/')[1]
            data = pegel.attrib['onmouseover'] \
                .strip('pegelein(').strip(')').replace(",'", ",").split("',")
            gauge = Gauge(int(data[7]))
            gauge.name = unicode(data[0].strip("'"))
            gauge.city = gauge.name.split(' ')[0]
            gauge.object = unicode(data[1])

            sensors = []
            try:
                lastdate = date(*reversed([int(x)
                    for x in data[2].split(' ')[0].split(".")]))
                lasttime = time(*[int(x)
                    for x in data[2].split(' ')[1].split(":")])
                lastdate = datetime.combine(lastdate, lasttime)
            except:
                lastdate = NotAvailable

            bildforecast = data[5]
            if bildforecast == "pf_gerade.png":
                forecast = u"stable"
            elif bildforecast == "pf_unten.png":
                forecast = u"Go down"
            elif bildforecast == "pf_oben.png":
                forecast = u"Go up"
            else:
                forecast = NotAvailable

            try:
                level = float(data[3])
            except:
                level = NotAvailable
            levelsensor = GaugeSensor(gauge.id + "-level")
            levelsensor.name = u"Level"
            levelsensor.unit = u"cm"
            levelsensor.forecast = forecast
            lastvalue = GaugeMeasure()
            lastvalue.level = level
            lastvalue.date = lastdate
            try:
                lastvalue.alarm = self.alarmlevel[img]
            except KeyError:
                lastvalue.alarm = u""
            levelsensor.lastvalue = lastvalue
            levelsensor.history = NotLoaded
            levelsensor.gaugeid = gauge.id
            sensors.append(levelsensor)

            try:
                flow = float(data[4])
            except:
                flow = NotAvailable
            flowsensor = GaugeSensor(gauge.id + "-flow")
            flowsensor.name = u"Flow"
            flowsensor.unit = u"m3/s"
            flowsensor.forecast = forecast
            lastvalue = GaugeMeasure()
            lastvalue.level = flow
            lastvalue.date = lastdate
            try:
                lastvalue.alarm = self.alarmlevel[img]
            except KeyError:
                lastvalue.alarm = u""
            flowsensor.lastvalue = lastvalue
            flowsensor.history = NotLoaded
            flowsensor.gaugeid = gauge.id
            sensors.append(flowsensor)

            gauge.sensors = sensors

            yield gauge
Exemple #7
0
    def get_rivers_list(self):
        for pegel in self.document.getroot().xpath(".//a[@onmouseout='pegelaus()']"):
            data = pegel.attrib['onmouseover'].strip('pegelein(').strip(')').replace(",'", ",").split("',")
            gauge = Gauge(int(data[7]))
            gauge.name = unicode(data[0].strip("'"))
            gauge.city = gauge.name.split(' ')[0]  # TODO: real regexp to remove the number
            gauge.object = unicode(data[1])

            sensors = []
            try:
                lastdate = date(*reversed([int(x) for x in data[2].split(' ')[0].split(".")]))
                lasttime = time(*[int(x) for x in data[2].split(' ')[1].split(":")])
                lastdate = datetime.combine(lastdate, lasttime)
            except:
                lastdate = NotAvailable

            bildforecast = data[5]
            if bildforecast == "pf_gerade.png":
                forecast = u"stable"
            elif bildforecast == "pf_unten.png":
                forecast = u"Go down"
            elif bildforecast == "pf_oben.png":
                forecast = u"Go up"
            else:
                forecast = NotAvailable

            try:
                level = float(data[3])
                levelsensor = GaugeSensor(gauge.id + "-level")
                levelsensor.name = u"Level"
                # TODO levelsensor.unit =
                levelsensor.forecast = forecast
                lastvalue = GaugeMeasure()
                lastvalue.level = level
                lastvalue.date = lastdate
                # TODO lastvalue.alarm =
                levelsensor.lastvalue = lastvalue
                levelsensor.history = NotLoaded
                levelsensor.gaugeid = gauge.id
                sensors.append(levelsensor)
            except:
                pass
            try:
                flow = float(data[4])
                flowsensor = GaugeSensor(gauge.id + "-flow")
                flowsensor.name = u"Flow"
                # TODO flowsensor.unit =
                flowsensor.forecast = forecast
                lastvalue = GaugeMeasure()
                lastvalue.level = flow
                lastvalue.date = lastdate
                # TODO lastvalue.alarm =
                flowsensor.lastvalue = lastvalue
                flowsensor.history = NotLoaded
                flowsensor.gaugeid = gauge.id
                sensors.append(flowsensor)
            except:
                pass

            gauge.sensors = sensors

            yield gauge