Add support for server MOTDs
This commit is contained in:
@@ -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')}
|
||||
|
@@ -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
5
minecraft/admin.py
Normal 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
15
minecraft/models.py
Normal 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
|
Reference in New Issue
Block a user