diff --git a/pyweb/mumble/MumbleCtlDbus.py b/pyweb/mumble/MumbleCtlDbus.py index aad2903..6b70523 100755 --- a/pyweb/mumble/MumbleCtlDbus.py +++ b/pyweb/mumble/MumbleCtlDbus.py @@ -19,14 +19,14 @@ from PIL import Image from struct import pack, unpack from zlib import compress, decompress -from mctl import MumbleCtlBase +from mctl import MumbleCtlBase import dbus + class MumbleCtlDbus(MumbleCtlBase): method = "DBus"; def __init__( self, connstring ): - # Prior to saving the model, connect to murmur via dbus and update its settings. self.dbus_base = connstring; self.meta = self._getDbusMeta(); @@ -34,10 +34,8 @@ class MumbleCtlDbus(MumbleCtlBase): return dbus.Interface( dbus.SystemBus().get_object( self.dbus_base, '/' ), 'net.sourceforge.mumble.Meta' ); def _getDbusServerObject( self, srvid): - "Connects to DBus and returns an mmServer object representing this Murmur instance." - if srvid not in self.getBootedServers(): - raise Exception, 'No murmur process with the given server ID (%d) is running and attached to system dbus under %s.' % ( srvid, self.meta ); + raise SystemError, 'No murmur process with the given server ID (%d) is running and attached to system dbus under %s.' % ( srvid, self.meta ); return dbus.Interface( dbus.SystemBus().get_object( self.dbus_base, '/%d' % srvid ), 'net.sourceforge.mumble.Murmur' ); @@ -104,7 +102,6 @@ class MumbleCtlDbus(MumbleCtlBase): def setRegistration(self, srvid, mumbleid, name, email, password): return MumbleCtlDbus.converDbusTypeToNative(self._getDbusServerObject(srvid).setRegistration(dbus.Int32(mumbleid), name, email, password)) - #return MumbleCtlDbus.converDbusTypeToNative(self._getDbusServerObject(srvid).setRegistration(dbus.Int32(mumbleid), dbus.String(name), dbus.String(email), dbus.String(password))) def getTexture(self, srvid, mumbleid): texture = self._getDbusServerObject(srvid).getTexture(dbus.Int32(mumbleid)); @@ -170,3 +167,5 @@ class MumbleCtlDbus(MumbleCtlBase): elif data.__class__ is dbus.Byte: ret = byte(data) return ret + + diff --git a/pyweb/mumble/MumbleCtlIce.py b/pyweb/mumble/MumbleCtlIce.py index 2c01c51..ebd3154 100755 --- a/pyweb/mumble/MumbleCtlIce.py +++ b/pyweb/mumble/MumbleCtlIce.py @@ -22,14 +22,14 @@ from zlib import compress, decompress from django.conf import settings -from mctl import MumbleCtlBase +from mctl import MumbleCtlBase import Ice def MumbleCtlIce( connstring ): version = settings.SLICE_VERSION; - + slice = settings.SLICE; if not slice: slice = join( @@ -106,7 +106,7 @@ class MumbleCtlIce_118(MumbleCtlBase): def getPlayers(self, srvid): users = self._getIceServerObject(srvid).getPlayers() ret = [] - + for x in users: user = users[x] ret.append([user.session, user.mute, user.deaf, user.suppressed, user.selfMute, user.selfDeaf, user.channel, user.playerid, self.setUnicodeFlag(user.name), user.onlinesecs, user.bytespersec]) @@ -250,7 +250,7 @@ class MumbleCtlIce_118(MumbleCtlBase): ret[MumbleCtlIce_118.setUnicodeFlag(key)] = MumbleCtlIce_118.setUnicodeFlag(data[key]) else: ret = unicode(data, 'utf-8') - + return ret diff --git a/pyweb/mumble/mctl.py b/pyweb/mumble/mctl.py index 0d2fe1c..3a50bee 100755 --- a/pyweb/mumble/mctl.py +++ b/pyweb/mumble/mctl.py @@ -15,10 +15,6 @@ * GNU General Public License for more details. """ -#zope.interface is good but don't standard interface library -#abc is better but 2.6 higher. -#import abc - import re class MumbleCtlBase (): @@ -106,26 +102,3 @@ class MumbleCtlBase (): -if __name__ == "__main__": - import sys - from MumbleCtlIce import MumbleCtlIce - from MumbleCtlDbus import MumbleCtlDbus - x = int(sys.argv[1]) - dbusCtl = MumbleCtlDbus() - iceCtl = MumbleCtlIce() - print "equal test ---" - print "getBootedServers [%s]" % (dbusCtl.getBootedServers() == iceCtl.getBootedServers()) - print "getChannels [%s]" % (dbusCtl.getChannels(x) == iceCtl.getChannels(x)) - print "getPlayers [%s]" % (dbusCtl.getPlayers(x) == iceCtl.getPlayers(x)) - print "getACL(x, 0) [%s]" % (dbusCtl.getACL(x, 0) == iceCtl.getACL(x, 0)) - print "getAllServers [%s]" % (dbusCtl.getAllServers() == iceCtl.getAllServers()) - print "getDefaultConf [%s]" % (dbusCtl.getDefaultConf() == iceCtl.getDefaultConf()) - print "getAllConf(x) [%s]" % (dbusCtl.getAllConf(x) == iceCtl.getAllConf(x)) - print dbusCtl.getRegisteredPlayers(x) - #print dbusCtl.getRegisteredPlayers(x)[3][1] - print iceCtl.getRegisteredPlayers(x) - #print iceCtl.getRegisteredPlayers(x)[3][1] - print "getRegisteredPlayers(x) [%s]" % (dbusCtl.getRegisteredPlayers(x) == iceCtl.getRegisteredPlayers(x)) - #print "getTexture(2, 30) [%s]" % (dbusCtl.getTexture(2, 30) == iceCtl.getTexture(2, 30)) - #print dbusCtl.getTexture(2, 30).__class__ - diff --git a/pyweb/mumble/models.py b/pyweb/mumble/models.py index aed58d5..5903965 100755 --- a/pyweb/mumble/models.py +++ b/pyweb/mumble/models.py @@ -144,7 +144,6 @@ class Mumble( models.Model ): # Deletion handler def deleteServer( self ): - # Unregister this player in Murmur via ctroller. self.ctl.deleteServer(self.srvid) @staticmethod @@ -152,7 +151,7 @@ class Mumble( models.Model ): kwargs['instance'].deleteServer(); - # Channel lists: flat list + # Channel list def getChannels( self ): if self._channels is None: self._channels = {}; @@ -291,7 +290,7 @@ class MumbleUser( models.Model ): acl = mmACL( 0, self.server.ctl.getACL(self.server.srvid, 0) ); if not hasattr( acl, "admingroup" ): - raise ValueError( "The admin group was not found in the ACL's groups list!" ); + raise ReferenceError( "The admin group was not found in the ACL's groups list!" ); return self.mumbleid in acl.admingroup['add']; def setAdmin( self, value ): @@ -300,7 +299,7 @@ class MumbleUser( models.Model ): acl = mmACL( 0, ctl.getACL(self.server.srvid, 0) ); if not hasattr( acl, "admingroup" ): - raise ValueError( "The admin group was not found in the ACL's groups list!" ); + raise ReferenceError( "The admin group was not found in the ACL's groups list!" ); if value != ( self.mumbleid in acl.admingroup['add'] ): if value: