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)
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))