Attempt to remove servers without updates, after a week.
This commit is contained in:
parent
023916152a
commit
63749b71ca
@ -4,6 +4,7 @@ import re
|
||||
import time
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.utils import timezone
|
||||
|
||||
from gameservers.models import Server, PlayerHistory
|
||||
|
||||
@ -93,7 +94,7 @@ class Command(BaseCommand):
|
||||
#parser.url = './dump.html' # Use a local file instead when testing
|
||||
servers = parser.run()
|
||||
history = PlayerHistory()
|
||||
now = time.time()
|
||||
now = time.mktime(timezone.now().timetuple())
|
||||
servers_handled = []
|
||||
|
||||
for data in servers:
|
||||
@ -118,3 +119,5 @@ class Command(BaseCommand):
|
||||
history.add_point(server, now, data['player_count'])
|
||||
history.trim_points(server)
|
||||
|
||||
Server.remove_old_servers()
|
||||
|
||||
|
||||
21
src/gameservers/migrations/0009_server_last_updated.py
Normal file
21
src/gameservers/migrations/0009_server_last_updated.py
Normal file
@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('gameservers', '0008_auto_20150223_1713'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='server',
|
||||
name='last_updated',
|
||||
field=models.DateTimeField(default=django.utils.timezone.now, auto_now=True),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
||||
@ -2,6 +2,7 @@
|
||||
import datetime
|
||||
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
|
||||
import redis
|
||||
|
||||
@ -11,6 +12,7 @@ class Server(models.Model):
|
||||
game_url = models.URLField()
|
||||
site_url = models.URLField(blank=True)
|
||||
current_players = models.PositiveIntegerField(default=0, editable=False)
|
||||
last_updated = models.DateTimeField(auto_now=True, default=timezone.now)
|
||||
|
||||
class Meta:
|
||||
ordering = ['-current_players', 'title']
|
||||
@ -18,6 +20,15 @@ class Server(models.Model):
|
||||
def __str__(self):
|
||||
return self.title
|
||||
|
||||
@staticmethod
|
||||
def remove_old_servers():
|
||||
now = timezone.now()
|
||||
|
||||
for server in Server.objects.all():
|
||||
delta = now - server.last_updated
|
||||
if delta.days >= 7:
|
||||
del server
|
||||
|
||||
|
||||
class PlayerHistory(object):
|
||||
def __init__(self, redis_settings=dict(host='localhost', port=6379, db=0)):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user