mirror of
https://github.com/mumble-voip/mumble.git
synced 2025-10-26 11:19:16 +00:00
94 lines
2.7 KiB
Python
Executable File
94 lines
2.7 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8
|
|
import Ice, sys
|
|
|
|
Ice.loadSlice('Murmur.ice')
|
|
import Murmur
|
|
|
|
class MetaCallbackI(Murmur.MetaCallback):
|
|
def started(self, s, current=None):
|
|
print "started"
|
|
serverR=Murmur.ServerCallbackPrx.uncheckedCast(adapter.addWithUUID(ServerCallbackI(server, current.adapter)))
|
|
s.addCallback(serverR)
|
|
|
|
def stopped(self, s, current=None):
|
|
print "stopped"
|
|
|
|
class ServerCallbackI(Murmur.ServerCallback):
|
|
def __init__(self, server, adapter):
|
|
self.server = server
|
|
self.contextR=Murmur.ServerContextCallbackPrx.uncheckedCast(adapter.addWithUUID(ServerContextCallbackI(server)))
|
|
|
|
def userConnected(self, p, current=None):
|
|
print "connected"
|
|
print p
|
|
self.server.addContextCallback(p.session, "flubber", "Power up the T", self.contextR, Murmur.ContextChannel | Murmur.ContextUser)
|
|
if (self.server.hasPermission(p.session, 0, Murmur.PermissionWrite)):
|
|
print "Is a global admin"
|
|
|
|
def userDisconnected(self, p, current=None):
|
|
print "disconnected"
|
|
print p
|
|
|
|
def userStateChanged(self, p, current=None):
|
|
print "stateChanged"
|
|
print self.server
|
|
print p
|
|
|
|
def channelCreated(self, c, current=None):
|
|
print "created"
|
|
print c
|
|
|
|
def channelRemoved(self, c, current=None):
|
|
print "removed"
|
|
print c
|
|
|
|
def channelStateChanged(self, c, current=None):
|
|
print "stateChanged"
|
|
print c
|
|
|
|
class ServerContextCallbackI(Murmur.ServerContextCallback):
|
|
def __init__(self, server):
|
|
self.server = server
|
|
|
|
def contextAction(self, action, p, session, chanid, current=None):
|
|
print "aaand ACTION"
|
|
print action
|
|
print p
|
|
print session
|
|
print chanid
|
|
if (session != 0):
|
|
server.sendMessage(session, "Bouncy")
|
|
elif (chanid >= 0):
|
|
server.sendMessageChannel(chanid, 0, "Channel Bouncy")
|
|
|
|
if __name__ == "__main__":
|
|
global contextR
|
|
|
|
print "Creating callbacks...",
|
|
ice = Ice.initialize(sys.argv)
|
|
|
|
meta = Murmur.MetaPrx.checkedCast(ice.stringToProxy('Meta:tcp -h 127.0.0.1 -p 6502'))
|
|
|
|
adapter = ice.createObjectAdapterWithEndpoints("Callback.Client", "tcp -h 127.0.0.1")
|
|
|
|
metaR=Murmur.MetaCallbackPrx.uncheckedCast(adapter.addWithUUID(MetaCallbackI()))
|
|
adapter.activate()
|
|
|
|
meta.addCallback(metaR)
|
|
|
|
for server in meta.getBootedServers():
|
|
serverR=Murmur.ServerCallbackPrx.uncheckedCast(adapter.addWithUUID(ServerCallbackI(server, adapter)))
|
|
server.addCallback(serverR)
|
|
|
|
print "Done"
|
|
print 'Script running (press CTRL-C to abort)';
|
|
try:
|
|
ice.waitForShutdown()
|
|
except KeyboardInterrupt:
|
|
print 'CTRL-C caught, aborting'
|
|
|
|
meta.removeCallback(metaR)
|
|
ice.shutdown()
|
|
print "Goodbye"
|