Revert "reduce polling load by condensing the json poll api into one method instead of several"

This reverts commit 4ae3407fb0.
This commit is contained in:
Trever Fischer
2012-04-19 17:35:27 -04:00
parent dc77f35267
commit 1d32ea66c4
7 changed files with 38 additions and 47 deletions

View File

@@ -8,7 +8,6 @@ from django.http import HttpResponse
from urllib2 import urlopen from urllib2 import urlopen
import json import json
from datetime import datetime from datetime import datetime
from models import cachePlayerList
class WhitelistHandler(AnonymousBaseHandler): class WhitelistHandler(AnonymousBaseHandler):
allowed_methods = ('GET',) allowed_methods = ('GET',)
@@ -115,16 +114,3 @@ class ServerPingHandler(BaseHandler):
def read(self, request): def read(self, request):
return {'identity': request.server} return {'identity': request.server}
class PollHandler(BaseHandler):
allowed_methods = ('GET',)
def read(self, request, timestamp):
serverInfo = cache.get('caminus-server-info')
if serverInfo == None:
cachePlayerList()
pollData = {'server-info': {}, 'user-info': {}}
pollData['server-info'] = cache.get('caminus-server-info')
if not request.user.is_anonymous():
pollData['user-info']['balance'] = request.user.minecraftprofile.currencyaccount.balance
return pollData

View File

@@ -1,17 +0,0 @@
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.name)
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)

View File

@@ -47,5 +47,4 @@ urlpatterns = patterns('api',
url(r'^server/economy/(?P<playername>.*)$', ServerResource(handlers.EconomyHandler)), url(r'^server/economy/(?P<playername>.*)$', ServerResource(handlers.EconomyHandler)),
url(r'^server/session/(?P<playername>.*)/new$', ServerResource(handlers.NewPlayerSessionHandler)), url(r'^server/session/(?P<playername>.*)/new$', ServerResource(handlers.NewPlayerSessionHandler)),
url(r'^server/session/(?P<playername>.*)/close$', ServerResource(handlers.ClosePlayerSessionHandler)), url(r'^server/session/(?P<playername>.*)/close$', ServerResource(handlers.ClosePlayerSessionHandler)),
url(r'^poll/(?P<timestamp>[0-9]+)$', Resource(handlers.PollHandler)),
) )

14
static/js/balance-poll.js Normal file
View File

@@ -0,0 +1,14 @@
function updateBalance() {
$.get("/api/balance", function(data) {
$("#balance-display").html(data['balance']);
});
}
function pollBalance() {
updateBalance();
window.setTimeout(pollBalance, 3000);
}
$(document).ready(function () {
pollBalance();
});

View File

@@ -1,14 +0,0 @@
function pollMessages() {
$.get('/api/poll/0', function(data) {
$('#balance-display').html(data['user-info']['balance']);
});
}
function poll() {
pollMessages();
window.setTimeout(pollMessages, 3000);
}
$(document).ready(function () {
poll();
});

20
static/js/server-poll.js Normal file
View File

@@ -0,0 +1,20 @@
function updateServer() {
$.get("/api/server/info/s.camin.us", function(data) {
hours = parseInt((data['time']/1000)+8)%24;
minutes = parseInt(((data['time']/1000)%1)*60);
var day = hours < 12;
minutes = ""+minutes;
while(minutes.length<2)
minutes = "0"+minutes;
$("#time-display").html(hours+":"+minutes+" "+(day ? "am":"pm"));
});
}
function pollServer() {
updateServer();
window.setTimeout(pollServer, 1000);
}
$(document).ready(function () {
pollServer();
});

View File

@@ -24,7 +24,10 @@ s.parentNode.insertBefore(po, s);
})();</script> })();</script>
<script type="text/javascript" language="javascript" src="{{STATIC_PREFIX}}/js/jquery.js"></script> <script type="text/javascript" language="javascript" src="{{STATIC_PREFIX}}/js/jquery.js"></script>
<script type="text/javascript" language="javascript" src="{{STATIC_PREFIX}}/js/poll.js"></script> <script type="text/javascript" language="javascript" src="{{STATIC_PREFIX}}/js/server-poll.js"></script>
{% if user.is_authenticated %}
<script type="text/javascript" language="javascript" src="{{STATIC_PREFIX}}/js/balance-poll.js"></script>
{% endif %}
{% block extrahead %}{% endblock %} {% block extrahead %}{% endblock %}
<script type="text/javascript"> <script type="text/javascript">