18 lines
575 B
Python
18 lines
575 B
Python
from django.db.models.signals import post_save
|
|
from minecraft.models import PlayerSession, Server
|
|
from django.core.cache import cache
|
|
|
|
def cachePlayerList():
|
|
serverInfo = {}
|
|
for s in Server.objects.all():
|
|
playerList = []
|
|
for p in s.online_players():
|
|
playerList.append(p.mc_username)
|
|
serverInfo[s.hostname] = {'players':playerList}
|
|
cache.set('caminus-server-info', serverInfo, 30)
|
|
|
|
def update_player_lists(sender, instance, created, **kwargs):
|
|
cachePlayerList()
|
|
|
|
post_save.connect(update_player_lists, sender=PlayerSession)
|