Esempio n. 1
0
    def get(self):
        strava = Strava()
        strava.access_token(self.get_current_token())

        athlete = strava.get_athlete()
        if athlete['profile'].startswith("avatar"):
            athlete['profile'] = "/static/images/commuter_avatar.png"

        year = datetime.date.today().year
        month = datetime.date.today().month

        mongo = MongoClient('mongo')
        user_settings = mongo.strava.settings.find_one({"_id": self.get_current_user()})
        
        context = dict()        
        context['year'] = year
        context['month'] = calendar.month_name[month]
        context['days_left'] = utils.days_left()
        context['currencies'] = sorted(list(pycountry.currencies), key=lambda currency: currency.name)

        self.render("index.html", context=context, athlete=athlete, settings=user_settings)
Esempio n. 2
0
    def get(self):
        if not self.get_current_user():
            raise tornado.web.HTTPError(401, "Access denied")
    
        year = datetime.date.today().year
        month = datetime.date.today().month
        after = datetime.datetime(year, month, 01, 0, 0).strftime("%s")
        
        mongo = MongoClient("mongo")
        user_settings = mongo.strava.settings.find_one({"_id": self.get_current_user()})

        strava = Strava()
        strava.access_token(self.get_current_token())

        athlete = strava.get_athlete()
        activities = strava.get_activities(per_page=200, after=after)

        results = dict()
        results["count"] = 0
        results["count_total"] = len(activities)
        results["kudos"] = 0
        results["achievement"] = 0
        for r in activities:
            if r['type'] == 'Ride' and r['commute']:
                results["count"] = results.get("count", 0) + 1
                results["distance"] = results.get("distance", 0) + r["distance"]
                results["kudos"] = results.get("kudos", 0) + r['kudos_count']
                results["achievement"] = results.get("achievement", 0) + r['achievement_count']
                results["moving_time"] = results.get("moving_time", 0) + r['moving_time']
                results["elevation"] = results.get("elevation", 0) + r['total_elevation_gain']
                
        results['money_saved'] = "%s %.2f" % (user_settings.get("currency", "USD"), (results.get("count", 0) * float(user_settings["cost_per_commute"])))
        results["distance"] = "%.2f" % round(utils.distance(athlete['measurement_preference'], results.get("distance", 0)) / 1000, 2)
        results["elevation"] = utils.elevation(athlete['measurement_preference'], results.get("elevation", 0))
        results["moving_time"] = utils.moving_time(results.get("moving_time", 0))
        results["commutes_percentage"] = utils.commutes_percentage(results["count"], results["count_total"])
        
        self.write(json.dumps(results))