Skip to content

Commit 2abb18c

Browse files
committed
Added datetime and time multiplier functionality to User model
1 parent c4012ab commit 2abb18c

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

app.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import math
66
from typing import Union
7+
from datetime import datetime
78
from flask import Flask, render_template, redirect, url_for, request
89
from flask_migrate import Migrate as MigrateClass
910
from flask_sqlalchemy import SQLAlchemy
@@ -43,12 +44,35 @@ class User(db.Model): # user class
4344
level: int = db.Column(
4445
db.Integer, default=1, server_default="1", nullable=False
4546
) # user level
47+
last_time_clicked: datetime = db.Column(
48+
db.DateTime,
49+
default=datetime.utcnow(),
50+
server_default="CURRENT_TIMESTAMP",
51+
nullable=False,
52+
) # user last time clicked
53+
time_multiplier: int = db.Column(
54+
db.Integer, default=1, server_default="1", nullable=False
55+
) # user time multiplier
4656

4757
def add_xp(self, amount: float) -> None: # add XP
4858
"""
4959
Add XP (experience points) to the user.
5060
amount - the amount to add XP.
5161
"""
62+
current_time = datetime.utcnow() # get current time
63+
time_difference = current_time - self.last_time_clicked # get time difference
64+
time_difference_seconds = (
65+
time_difference.total_seconds()
66+
) # get time difference in seconds
67+
if (
68+
time_difference_seconds < 5
69+
): # check if time difference is less than 5 seconds
70+
self.time_multiplier += 1 # increase time multiplier
71+
else:
72+
self.time_multiplier = (
73+
1 # reset time multiplier if time difference is more than 5 seconds
74+
)
75+
self.last_time_clicked = current_time # set last time clicked to current time
5276
if (
5377
amount == self.last_item_clicked
5478
): # check if amount is the same as last item clicked

0 commit comments

Comments
 (0)