Add support for server MOTDs

This commit is contained in:
Trever Fischer
2012-02-27 11:53:06 -05:00
parent a45a3845da
commit aa15f4d797
4 changed files with 38 additions and 2 deletions

View File

@@ -1,5 +1,6 @@
from piston.handler import AnonymousBaseHandler
from profiles.models import MinecraftProfile
from profiles.models import MinecraftProfile, Quote
from minecraft.models import MOTD
from django.http import HttpResponse
class WhitelistHandler(AnonymousBaseHandler):
@@ -14,3 +15,16 @@ class WhitelistHandler(AnonymousBaseHandler):
if profile.user.is_active:
return HttpResponse(status=204)
return HttpResponse(status=404)
class MOTDHandler(AnonymousBaseHandler):
allowed_methods = ('GET',)
def read(self, request, username):
motd = "No MOTD configured!"
motdList = MOTD.objects.all()
if len(motdList) > 0:
motd = motdList[0].text
quote = Quote.objects.order_by('?')
if len(quote) > 0:
motd += "\n"+quote.text
return {"motd":motd.split('\n')}

View File

@@ -3,7 +3,9 @@ from piston.resource import Resource
import handlers
whitelistHandler = Resource(handlers.WhitelistHandler)
motdHandler = Resource(handlers.MOTDHandler)
urlpatterns = patterns('api',
url(r'^validate/(?P<username>.*)$', whitelistHandler)
url(r'^validate/(?P<username>.*)$', whitelistHandler),
url(r'^motd/(?P<username>.*)$', motdHandler)
)

5
minecraft/admin.py Normal file
View File

@@ -0,0 +1,5 @@
import models
from django.contrib import admin
admin.site.register(models.Server)
admin.site.register(models.MOTD)

15
minecraft/models.py Normal file
View File

@@ -0,0 +1,15 @@
from django.db import models
class Server(models.Model):
hostname = models.CharField(max_length=100)
port = models.IntegerField(default=25565)
def __unicode__(self):
return "%s:%d"%(self.hostname, self.port)
class MOTD(models.Model):
server = models.ForeignKey(Server)
text = models.TextField()
def __unicode__(self):
return self.text