From 9841de322a453f8b57501bbcdf2509d2e7c5cfbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=AE=D1=80=D0=B8=D0=B9=20=D0=9F=D0=B5=D1=80=D1=88=D0=B8?= =?UTF-8?q?=D0=BD?= Date: Tue, 1 Mar 2022 18:35:19 +0500 Subject: [PATCH] fix #4 (need review!) --- zwift_offline.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/zwift_offline.py b/zwift_offline.py index 535fef1..64687e0 100644 --- a/zwift_offline.py +++ b/zwift_offline.py @@ -1720,17 +1720,19 @@ def unix_time_millis(dt): def fill_in_goal_progress(goal, player_id): - now = get_utc_date_time() + local_now = datetime.datetime.now() + utc_offset = datetime.datetime.fromtimestamp(0) - datetime.datetime.utcfromtimestamp(0) if goal.periodicity == 0: # weekly - first_dt, last_dt = get_week_range(now) + first_dt, last_dt = get_week_range(local_now) else: # monthly - first_dt, last_dt = get_month_range(now) + first_dt, last_dt = get_month_range(local_now) common_sql = ("""FROM activity WHERE player_id = %s AND strftime('%s', start_date) >= strftime('%s', '%s') AND strftime('%s', start_date) <= strftime('%s', '%s')""" % - (player_id, '%s', '%s', first_dt, '%s', '%s', last_dt)) + (player_id, '%s', '%s', first_dt - utc_offset, '%s', '%s', last_dt - utc_offset)) + #print(common_sql) if goal.type == 0: # distance distance = db.session.execute(sqlalchemy.text('SELECT SUM(distance) %s' % common_sql)).first()[0] if distance: @@ -1750,11 +1752,13 @@ def fill_in_goal_progress(goal, player_id): goal.actual_distance = 0.0 -def set_goal_end_date(goal, now): +def set_goal_end_date_now(goal): + local_now = datetime.datetime.now() + utc_offset = datetime.datetime.fromtimestamp(0) - datetime.datetime.utcfromtimestamp(0) if goal.periodicity == 0: # weekly - goal.period_end_date = unix_time_millis(get_week_range(now)[1]) + goal.period_end_date = unix_time_millis(get_week_range(local_now)[1]) - utc_offset else: # monthly - goal.period_end_date = unix_time_millis(get_month_range(now)[1]) + goal.period_end_date = unix_time_millis(get_month_range(local_now)[1]) - utc_offset @app.route('/api/profiles//goals', methods=['GET', 'POST']) @@ -1771,7 +1775,7 @@ def api_profiles_goals(player_id): goal.id = get_id('goal') now = get_utc_date_time() goal.created_on = unix_time_millis(now) - set_goal_end_date(goal, now) + set_goal_end_date_now(goal) fill_in_goal_progress(goal, player_id) insert_protobuf_into_db('goal', goal) @@ -1790,7 +1794,7 @@ def api_profiles_goals(player_id): need_update.append(goal) fill_in_goal_progress(goal, player_id) for goal in need_update: - set_goal_end_date(goal, now) + set_goal_end_date_now(goal) update_protobuf_in_db('goal', goal, goal.id) return goals.SerializeToString(), 200