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
|
import time
|
||||||
|
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
from gameservers.models import Server, PlayerHistory
|
from gameservers.models import Server, PlayerHistory
|
||||||
|
|
||||||
@ -93,7 +94,7 @@ class Command(BaseCommand):
|
|||||||
#parser.url = './dump.html' # Use a local file instead when testing
|
#parser.url = './dump.html' # Use a local file instead when testing
|
||||||
servers = parser.run()
|
servers = parser.run()
|
||||||
history = PlayerHistory()
|
history = PlayerHistory()
|
||||||
now = time.time()
|
now = time.mktime(timezone.now().timetuple())
|
||||||
servers_handled = []
|
servers_handled = []
|
||||||
|
|
||||||
for data in servers:
|
for data in servers:
|
||||||
@ -118,3 +119,5 @@ class Command(BaseCommand):
|
|||||||
history.add_point(server, now, data['player_count'])
|
history.add_point(server, now, data['player_count'])
|
||||||
history.trim_points(server)
|
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
|
import datetime
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.utils import timezone
|
||||||
|
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ class Server(models.Model):
|
|||||||
game_url = models.URLField()
|
game_url = models.URLField()
|
||||||
site_url = models.URLField(blank=True)
|
site_url = models.URLField(blank=True)
|
||||||
current_players = models.PositiveIntegerField(default=0, editable=False)
|
current_players = models.PositiveIntegerField(default=0, editable=False)
|
||||||
|
last_updated = models.DateTimeField(auto_now=True, default=timezone.now)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
ordering = ['-current_players', 'title']
|
ordering = ['-current_players', 'title']
|
||||||
@ -18,6 +20,15 @@ class Server(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.title
|
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):
|
class PlayerHistory(object):
|
||||||
def __init__(self, redis_settings=dict(host='localhost', port=6379, db=0)):
|
def __init__(self, redis_settings=dict(host='localhost', port=6379, db=0)):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user