Browse Source

add drafts for the mumpytz interface that is in planning

Natenom/support-murmur-13-1446181288462
Michael Ziegler 15 years ago
parent
commit
1aa360cf6c
  1. 40
      pyweb/mumble/mmobjects.py
  2. 17
      pyweb/mumble/models.py

40
pyweb/mumble/mmobjects.py

@ -23,7 +23,6 @@ from os.path import join
from django.utils.http import urlquote from django.utils.http import urlquote
from django.conf import settings from django.conf import settings
def cmp_names( a, b ): def cmp_names( a, b ):
return cmp( a.name, b.name ); return cmp( a.name, b.name );
@ -143,6 +142,23 @@ class mmChannel( object ):
lambda self: self.server.defchan == self.chanid, lambda self: self.server.defchan == self.chanid,
doc="True if this channel is the server's default channel." doc="True if this channel is the server's default channel."
); );
def as_dict( self ):
if self.parent:
parentid = self.parent.chanid;
else:
parentid = None;
return { 'chanid': self.chanid,
'description': self.description,
'linked': [],
'linkedIDs': [],
'name': self.name,
'parent': parentid,
'players': [ pl.as_dict() for pl in self.players ],
'subchans': [ sc.as_dict() for sc in self.subchans ]
};
@ -207,6 +223,28 @@ class mmPlayer( object ):
def visit( self, callback, lvl = 0 ): def visit( self, callback, lvl = 0 ):
""" Call callback on myself. """ """ Call callback on myself. """
callback( self, lvl ); callback( self, lvl );
def as_dict( self ):
comment = None;
texture = None;
if self.mumbleuser:
comment = self.mumbleuser.comment;
if self.mumbleuser.hasTexture():
texture = self.mumbleuser.textureUrl;
return { 'bytesPerSec': self.bytesPerSec,
'dbaseid': self.dbaseid,
'deafened': self.deafened,
'muted': self.muted,
'name': self.name,
'onlinesince': self.onlinesince,
'selfdeafened': self.selfdeafened,
'selfmuted': self.selfmuted,
'suppressed': self.suppressed,
'userid': self.userid,
'comment': comment,
'texture': texture,
};

17
pyweb/mumble/models.py

@ -26,6 +26,7 @@ from mmobjects import *
from mctl import * from mctl import *
class Mumble( models.Model ): class Mumble( models.Model ):
""" Represents a Murmur server instance. """ Represents a Murmur server instance.
@ -364,6 +365,12 @@ class Mumble( models.Model ):
connecturl = property( getURL, doc="A convenience wrapper for getURL()." ); connecturl = property( getURL, doc="A convenience wrapper for getURL()." );
version = property( lambda self: self.ctl.getVersion(), doc="The version of Murmur." ); version = property( lambda self: self.ctl.getVersion(), doc="The version of Murmur." );
def as_dict( self ):
return { 'name': self.name,
'id': self.id,
'root': self.rootchan.as_dict()
};
@ -508,6 +515,8 @@ class MumbleUser( models.Model ):
"""Read an image from the infile and install it as the user's texture.""" """Read an image from the infile and install it as the user's texture."""
self.server.ctl.setTexture(self.server.srvid, self.mumbleid, infile) self.server.ctl.setTexture(self.server.srvid, self.mumbleid, infile)
texture = property( getTexture, setTexture, doc="Get the texture as a PIL Image or read from a file (pass the path)." );
def hasTexture( self ): def hasTexture( self ):
try: try:
self.getTexture(); self.getTexture();
@ -516,6 +525,14 @@ class MumbleUser( models.Model ):
else: else:
return True; return True;
def getTextureUrl( self ):
""" Get a URL under which the texture can be retrieved. """
from views import showTexture
from django.core.urlresolvers import reverse
return reverse( showTexture, kwargs={ 'server': self.server.id, 'userid': self.id } );
textureUrl = property( getTextureUrl, doc=getTextureUrl.__doc__ );
# Deletion handler # Deletion handler
@staticmethod @staticmethod

Loading…
Cancel
Save