39 lines
1.1 KiB
Python
39 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):
|
|
if not request.user.is_authenticated:
|
|
return
|
|
player = Player.objects.filter(user=request.user).first()
|
|
if player:
|
|
return
|
|
ip = get_ip(request=request)
|
|
player = Player(user=request.user,
|
|
creationIP=ip,
|
|
latestIP=ip)
|
|
player.save()
|
|
|
|
# Update activity timestamp and IP
|
|
def tag_player(request):
|
|
if not tracking:
|
|
return
|
|
if not request.user.is_authenticated:
|
|
return
|
|
player = Player.objects.filter(user=request.user).first()
|
|
if not player:
|
|
init_player(request=request, user=request.user)
|
|
player.latestActivity = timezone.now()
|
|
player.latestIP = get_ip(request=request)
|
|
player.save() |