add last login date and if the game was won by forfeit in getUserInfo

This commit is contained in:
2024-09-30 20:02:27 +02:00
parent 33957b5ffe
commit b68642a5cd
7 changed files with 27 additions and 10 deletions

View File

@ -6,7 +6,7 @@
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/09/13 16:20:58 by tomoron #+# #+# #
# Updated: 2024/09/30 15:34:41 by tomoron ### ########.fr #
# Updated: 2024/09/30 19:55:24 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -30,7 +30,7 @@ class Game:
"front" : 6.25 - ballRadius
}
mapLength = 13
startSpeed = 4
startSpeed = 6
jumperRadius = 0.2
wallsPos = [
{ "type":2, "pos": {"x": 1, "y": 0, "z": 1}, "isUp": False},
@ -471,7 +471,8 @@ class Game:
player2 = p2DbUser,
p1Score = self.score[0],
p2Score = self.score[1],
winner = p1DbUser if self.winner == 1 else p2DbUser
winner = p1DbUser if self.winner == 1 else p2DbUser,
forfeit = self.left != None
)
results.save()
print("results saved")

View File

@ -12,6 +12,7 @@ class User(models.Model):
print("A" * 1000)
github_link = models.CharField(max_length=1024, null=True, blank=True, default=None)
discord_username = models.CharField(max_length=1024, null=True, blank=True, default=None)
last_login = models.DateTimeField()
class Message(models.Model):
id = models.AutoField(primary_key=True)
@ -29,6 +30,7 @@ class GameResults(models.Model):
p1Score = models.DecimalField(max_digits=3, decimal_places=0)
p2Score = models.DecimalField(max_digits=3, decimal_places=0)
winner = models.ForeignKey("User", on_delete=models.SET_NULL, null=True, related_name="winner")
forfeit = models.BooleanField(default=False)
class MailVerify(models.Model):
token = models.CharField(primary_key=True, max_length=200, unique=True)

View File

@ -6,7 +6,7 @@
# By: marvin <marvin@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/08/09 08:08:00 by edbernar #+# #+# #
# Updated: 2024/09/27 03:37:05 by tomoron ### ########.fr #
# Updated: 2024/09/30 19:41:51 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -18,6 +18,7 @@ from email.mime.image import MIMEImage
from asgiref.sync import sync_to_async
from ..fieldsVerif import mailValid, usernameValid, passwordValid
from ..utils import genString
from django.utils import timezone
import smtplib
import random
import re
@ -40,7 +41,7 @@ def createAccount(socket, content):
if(not passwordValid(content["password"], socket)):
return
password = hashlib.md5((content["mail"] + content["password"]).encode()).hexdigest()
new_user = User.objects.create(username=content["username"], mail=content["mail"], password=password)
new_user = User.objects.create(username=content["username"], mail=content["mail"], password=password, last_login=timezone.now())
new_user.save()
verif_str = genString(200)
MailVerify.objects.create(uid=new_user, token=verif_str).save()

View File

@ -6,7 +6,7 @@
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/09/20 00:16:57 by edbernar #+# #+# #
# Updated: 2024/09/28 18:35:21 by tomoron ### ########.fr #
# Updated: 2024/09/30 19:58:27 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -30,7 +30,8 @@ def getHistory(user, games):
"id":x.id,
"p1":player,
"p2":opponent,
"won":x.winner == user
"won":x.winner == user,
"forfeit":x.forfeit
})
return(res)

View File

@ -6,7 +6,7 @@
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/08/03 08:10:38 by edbernar #+# #+# #
# Updated: 2024/09/29 03:14:58 by tomoron ### ########.fr #
# Updated: 2024/09/30 19:43:54 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -34,6 +34,7 @@ async def loginByPass(socket, content):
socket.sendError("Account not verified, please verify your account before logging in",9025)
return
if(await socket.login(u_info["id"], u_info["username"])):
await socket.setLastLogin()
socket.sync_send(json.dumps({"type":"logged_in", "content":{
"status":True,
"username":u_info["username"],

View File

@ -5,6 +5,7 @@ from .data import UID42, SECRET42, SERVER_URL
import requests
import json
import os
from django.utils import timezone
def index(request):
@ -114,8 +115,10 @@ def login42(request):
if(not db_user.exists()):
while(User.objects.filter(username=login42).exists()):
login42 += "_"
db_user = [User.objects.create(username=login42, id42=id42)]
db_user = [User.objects.create(username=login42, id42=id42, last_login=timezone.now())]
db_user[0].save()
else:
User.objects.filter(id=db_user[0].id).update(last_login=timezone.now())
request.session["logged_in"] = True
request.session["username"] = db_user[0].username
request.session["id"] = db_user[0].id

View File

@ -6,7 +6,7 @@
# By: edbernar <edbernar@student.42angouleme. +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2024/09/09 14:31:30 by tomoron #+# #+# #
# Updated: 2024/09/29 03:18:30 by tomoron ### ########.fr #
# Updated: 2024/09/30 19:42:45 by tomoron ### ########.fr #
# #
# **************************************************************************** #
@ -19,6 +19,8 @@ import asyncio
import django
django.setup()
from .models import User
from django.utils import timezone
from .typeRequests.getPrivateListMessage import getPrivateListMessage
from .typeRequests.getPrivateListUser import getPrivateListUser
from .typeRequests.sendPrivateMessage import sendPrivateMessage
@ -66,6 +68,12 @@ class WebsocketHandler(AsyncWebsocketConsumer):
def session_save(self):
self.scope["session"].save()
@sync_to_async
def setLastLogin(self):
if(self.id == None or self.id == 0):
return;
User.objects.filter(id=self.id).update(last_login=timezone.now())
def add_to_online(self, uid):
if(not uid):
return(0)