Skip to content

Commit 205e396

Browse files
committed
Add time multipliers
1 parent 5ca9194 commit 205e396

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

app.py

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
import calendar
6-
from datetime import datetime, timedelta, date
6+
from datetime import datetime, timedelta, date, timezone
77
import math
88
import os
99
from typing import Union
@@ -69,6 +69,15 @@ class User(db.Model):
6969
last_task_completed: int = db.Column(
7070
db.Integer, default=-1, server_default=text("-1"), nullable=False
7171
) # user last task completion ID
72+
last_time_clicked: datetime = db.Column(
73+
db.DateTime,
74+
default=datetime.now(timezone.utc),
75+
server_default=func.current_timestamp(),
76+
nullable=False,
77+
) # user last time clicked
78+
time_multiplier: int = db.Column(
79+
db.Integer, default=1, server_default="1", nullable=False
80+
) # user time multiplier
7281

7382
def add_xp(self, amount: float) -> None: # add XP
7483
"""
@@ -374,6 +383,28 @@ def complete_task(task_id) -> Response: # complete task from task ID
374383
user.last_task_completed = (
375384
task.id
376385
) # set user last task completed to task ID
386+
current_time: datetime = datetime.now(
387+
timezone.utc) # get current time
388+
last_time_clicked_aware: datetime = self.last_time_clicked.replace(
389+
tzinfo=timezone.utc
390+
) # set timezone to UTC
391+
time_difference: timedelta = (
392+
current_time - last_time_clicked_aware
393+
) # get time difference
394+
time_difference_seconds: float = (
395+
time_difference.total_seconds()
396+
) # get time difference in seconds
397+
if (
398+
abs(time_difference_seconds) < 5
399+
): # check if time difference is less than 5 seconds
400+
self.time_multiplier += 1 # increase time multiplier
401+
else:
402+
self.time_multiplier = (
403+
1 # reset time multiplier if time difference is more than 5 seconds
404+
)
405+
self.last_time_clicked = (
406+
current_time # set last time clicked to current time
407+
)
377408
user.add_xp(
378409
round(
379410
task.priority

0 commit comments

Comments
 (0)