Example #1
0
    def get(self, page):
        if page == "stations":
            stations = model.fetch_stations()
            s = {}
            for station_id, station in stations.items():
                s[station_id] = geo.project((station['lon'], station['lat']))
            max_x = s[max(s, key=lambda d: s[d][0])][0]
            min_x = s[min(s, key=lambda d: s[d][0])][0]
            max_y = s[max(s, key=lambda d: s[d][1])][1]
            min_y = s[min(s, key=lambda d: s[d][1])][1]
            for station_id, value in s.items():
                x, y = value
                s[station_id] = util.scale(x, min_x, max_x), util.scale(y, min_y, max_y)
            return self.json(s)
            

        return self.render("home.html")
Example #2
0
def handle(t, data):
    stations = model.fetch_stations()
    events = {}
    for s in data["results"]:
        try:
            if s["id"] not in stations:
                data = json.loads(net.read(LOOKUP, {"lat": s["latitude"], "lng": s["longitude"], "username": "******"}))
                zipcode = data["postalCodes"][0]["postalCode"]
                model.insert_station(s["id"], s["longitude"], s["latitude"], zipcode, t, s["availableBikes"])
                continue
            station = stations[s["id"]]
            if s["availableBikes"] != station["bikes"] and t > station["t"]:
                json.dumps(s, indent=4)
                model.update_station(s["id"], t, s["availableBikes"])
                events[s["id"]] = s["availableBikes"] - station["bikes"]
        except Exception as e:
            log.error(log.exc(e))
    model.insert_beat(t, events)