bloonsworld/app/users/util.py
2025-02-07 07:11:18 +01:00

40 lines
1.1 KiB
Python

from django.utils import timezone
from users.models import Player
tracking = False
def get_ip(request):
x_forwarded_for = request.META.get("HTTP_X_FORWARDED_FOR")
if x_forwarded_for:
ip = x_forwarded_for.split(",")[-1].strip()
else:
ip = request.META.get("REMOTE_ADDR")
return ip
# Create a Player object for a User
def init_player(request, user):
if not user.is_authenticated:
return
player = Player.objects.get(user=request.user)
if player:
return
ip = get_ip(request=request)
player = Player(user=user,
creationIP=ip,
latestIP=ip)
player.save()
# Update activity timestamp and IP
def tag_player(request, user=None):
if not tracking:
return
user = user or request.user
if not user.is_authenticated:
return
player = Player.objects.get(user=request.user)
if not player:
init_player(request=request, user=user)
player.latestActivity = timezone.now()
player.latestIP = get_ip(request=request)
player.save()