add last login date and if the game was won by forfeit in getUserInfo
This commit is contained in:
@ -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")
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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"],
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user