From 424859c4889547c578bf0f7c3d8c75ff9602dda1 Mon Sep 17 00:00:00 2001 From: withgod Date: Wed, 10 Jun 2009 13:48:59 +0900 Subject: [PATCH] if exists utf8 string name user found can't syncdb and more action because DBus/Ice don't same charset DBus is unicode Ice is UTF-8 --- pyweb/mumble/MumbleCtlIce.py | 21 +++++++++++++-------- pyweb/mumble/mctl.py | 11 ++++++----- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/pyweb/mumble/MumbleCtlIce.py b/pyweb/mumble/MumbleCtlIce.py index c9d33e8..364c200 100755 --- a/pyweb/mumble/MumbleCtlIce.py +++ b/pyweb/mumble/MumbleCtlIce.py @@ -43,7 +43,7 @@ class MumbleCtlIce(MumbleCtlBase): ret = [] for user in users: - ret.append([user.playerid, unicode(user.name), unicode(user.email), unicode(user.pw)]) + ret.append([user.playerid, MumbleCtlIce.setUnicodeFlag(user.name), MumbleCtlIce.setUnicodeFlag(user.email), MumbleCtlIce.setUnicodeFlag(user.pw)]) return ret @@ -53,7 +53,7 @@ class MumbleCtlIce(MumbleCtlBase): for x in chans: chan = chans[x] - ret.append([chan.id, unicode(chan.name), chan.parent, chan.links]) + ret.append([chan.id, MumbleCtlIce.setUnicodeFlag(chan.name), chan.parent, chan.links]) return ret @@ -63,7 +63,7 @@ class MumbleCtlIce(MumbleCtlBase): 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, unicode(user.name), user.onlinesecs, user.bytespersec]) + ret.append([user.session, user.mute, user.deaf, user.suppressed, user.selfMute, user.selfDeaf, user.channel, user.playerid, MumbleCtlIce.setUnicodeFlag(user.name), user.onlinesecs, user.bytespersec]) return ret @@ -76,9 +76,9 @@ class MumbleCtlIce(MumbleCtlBase): tmp = [] for y in x: if y.__class__ is Murmur.ACL: - tmp.append([y.applyHere, y.applySubs, y.inherited, y.playerid, unicode(y.group), y.allow, y.deny]) + tmp.append([y.applyHere, y.applySubs, y.inherited, y.playerid, MumbleCtlIce.setUnicodeFlag(y.group), y.allow, y.deny]) elif y.__class__ is Murmur.Group: - tmp.append([unicode(y.name), y.inherited, y.inherit, y.inheritable, y.add, y.remove, y.members]) + tmp.append([MumbleCtlIce.setUnicodeFlag(y.name), y.inherited, y.inherit, y.inheritable, y.add, y.remove, y.members]) ret.append(tmp) else: @@ -202,8 +202,13 @@ class MumbleCtlIce(MumbleCtlBase): @staticmethod def setUnicodeFlag(data): - ret = {} - for key in data.keys(): - ret[unicode(key)] = unicode(data[key]) + ret = '' + if isinstance(data, tuple) or isinstance(data, list) or isinstance(data, dict): + ret = {} + for key in data.keys(): + ret[MumbleCtlIce.setUnicodeFlag(key)] = MumbleCtlIce.setUnicodeFlag(data[key]) + else: + ret = unicode(data, 'utf-8') + return ret diff --git a/pyweb/mumble/mctl.py b/pyweb/mumble/mctl.py index 71f22de..50b6b7f 100755 --- a/pyweb/mumble/mctl.py +++ b/pyweb/mumble/mctl.py @@ -97,7 +97,6 @@ if __name__ == "__main__": 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)) @@ -106,9 +105,11 @@ if __name__ == "__main__": 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)) - """ - dbusCtl.getTexture(2, 30).__class__ - iceCtl.getTexture(2, 30).__class__ + #print "getTexture(2, 30) [%s]" % (dbusCtl.getTexture(2, 30) == iceCtl.getTexture(2, 30)) #print dbusCtl.getTexture(2, 30).__class__ +