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:
@@ -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
|
|
||||||
|
@@ -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)
|
|
||||||
|
@@ -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
14
static/js/balance-poll.js
Normal 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();
|
||||||
|
});
|
@@ -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
20
static/js/server-poll.js
Normal 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();
|
||||||
|
});
|
@@ -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">
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user