diff --git a/bin/dmxserver b/bin/dmxserver --- a/bin/dmxserver +++ b/bin/dmxserver @@ -24,7 +24,7 @@ todo: if parport fails, run in dummy mode (and make an option for that too) """ -from __future__ import division + from twisted.internet import reactor from twisted.web import xmlrpc, server import sys, time, os @@ -68,7 +68,7 @@ class ReceiverApplication(object): self.port, txosc. async .DatagramServerProtocol(self.receiver), interface='0.0.0.0') - print "Listening OSC on udp port %s" % (self.port) + print("Listening OSC on udp port %s" % (self.port)) def pixel_handler(self, message, address): # this is already 1-based though I don't know why @@ -97,7 +97,7 @@ class XMLRPCServe(xmlrpc.XMLRPC): # desired seconds between sendlevels() calls self.calldelay = 1 / options.updates_per_sec - print "starting parport connection" + print("starting parport connection") self.parportdmx = UsbDMX(dimmers=90, port=options.dmx_device) if os.environ.get('DMXDUMMY', 0): self.parportdmx.godummy() @@ -122,12 +122,12 @@ class XMLRPCServe(xmlrpc.XMLRPC): reactor.callLater(1, self.purgeclients) now = time.time() - cids = self.lastseen.keys() + cids = list(self.lastseen.keys()) for cid in cids: lastseen = self.lastseen[cid] if lastseen < now - purge_age: - print("forgetting client %s (no activity for %s sec)" % - (cid, purge_age)) + print(("forgetting client %s (no activity for %s sec)" % + (cid, purge_age))) try: del self.clientlevels[cid] except KeyError: @@ -175,7 +175,7 @@ class XMLRPCServe(xmlrpc.XMLRPC): self.combinedlevels = [] for chan in range(0, self.parportdmx.dimmers): x = 0 - for clientlist in self.clientlevels.values(): + for clientlist in list(self.clientlevels.values()): if len(clientlist) > chan: # clamp client levels to 0..1 cl = max(0, min(1, clientlist[chan])) @@ -184,8 +184,8 @@ class XMLRPCServe(xmlrpc.XMLRPC): def printlevels(self): """write all the levels to stdout""" - print "Levels:", "".join( - ["% 2d " % (x * 100) for x in self.combinedlevels]) + print("Levels:", "".join( + ["% 2d " % (x * 100) for x in self.combinedlevels])) def printstats(self): """print the clock, freq, etc, with a \r at the end""" @@ -194,7 +194,7 @@ class XMLRPCServe(xmlrpc.XMLRPC): time.strftime("%H:%M:%S"), str(self.updatefreq), )) - for cid, freq in self.clientfreq.items(): + for cid, freq in list(self.clientfreq.items()): sys.stdout.write("[%s %s] " % (cid, str(freq))) sys.stdout.write("\r") sys.stdout.flush() @@ -237,7 +237,7 @@ class XMLRPCServe(xmlrpc.XMLRPC): def trackClientFreq(self, cid): if cid not in self.lastseen: - print "hello new client %s" % cid + print("hello new client %s" % cid) self.clientfreq[cid] = Updatefreq() self.lastseen[cid] = time.time() self.clientfreq[cid].update() @@ -264,13 +264,13 @@ parser.add_option("-n", help="dummy mode, same as DMXDUMMY=1 env variable") (options, songfiles) = parser.parse_args() -print options +print(options) if options.dummy: os.environ['DMXDUMMY'] = "1" port = networking.dmxServer.port -print "starting xmlrpc server on port %s" % port +print("starting xmlrpc server on port %s" % port) xmlrpcServe = XMLRPCServe(options) reactor.listenTCP(port, server.Site(xmlrpcServe))