class poller: def __init__(self, model): self.log = logging.getLogger("poller") self.model = model self.Pollfrequancy = Observable(1) self.PollNext = Observable(datetime.datetime.now()) def isDue(self): lastPolled = self.PollNext.get() now = datetime.datetime.now() if now > lastPolled: return True return False def handleResponce(self, responce, ding, dong, foo): self.log.error('Programing error this methd shoudl be overridern') def wrapOutput(self, listcommands): now = datetime.datetime.now() pollfrequancy = self.Pollfrequancy.get() next = now + datetime.timedelta(seconds=pollfrequancy) self.PollNext.update(next) output = [] for command in listcommands: seconds, message = command msg = json.dumps(message, sort_keys=True, indent=4) #print 'seconds, msg' ,seconds, msg next = now + datetime.timedelta(seconds=seconds) diction = { 'dueDate' : next, 'msg' : msg } output.append(diction) return output
class poller: def __init__(self, model): self.log = logging.getLogger("poller") self.model = model self.Pollfrequancy = Observable(1) self.PollNext = Observable(datetime.datetime.now()) def isDue(self): lastPolled = self.PollNext.get() now = datetime.datetime.now() if now > lastPolled: return True return False def handleResponce(self, responce, ding, dong, foo): self.log.error('Programing error this methd shoudl be overridern') def wrapOutput(self, listcommands): now = datetime.datetime.now() pollfrequancy = self.Pollfrequancy.get() next = now + datetime.timedelta(seconds=pollfrequancy) self.PollNext.update(next) output = [] for command in listcommands: seconds, message = command msg = json.dumps(message, sort_keys=True, indent=4) #print 'seconds, msg' ,seconds, msg next = now + datetime.timedelta(seconds=seconds) diction = {'dueDate': next, 'msg': msg} output.append(diction) return output
class squeezeConMdle: def __init__(self): self.host = Observable("localhost") self.port = Observable(9000) # connectionStr : a simple to observe break of connection settings obj self.connectionStr = Observable("localhost:9000") self.connected = Observable(False) # Number of players on the server that can be used self.playersCount = Observable(0) # Socket Computer diagnostic error. Will be 0 when no error self.SocketErrNo = Observable(0) # Socket Human diagnostic error. Will be "" with no error, self.SocketErrMsg = Observable("") self.playerList = [] self.Players = ObservableDict() self.CbPlayersAvailable= [] self.CbChurrentTrack = [] self.host.addCallback(self.OnHostChange) self.port.addCallback(self.OnPortChange) self.connectionStr.addCallback(self.OnConnectedChange) self.connected.addCallback(self.OnConnectedChange) self.playersCount.addCallback(self.OnPlayersCountChange) self.SongCache = ObservableDict() def OnHostChange(self, value): newHost = self.host.get() newPort = self.port.get() newConnectionStr = "%s:%s" % (self.host.get(), self.port.get()) self.connectionStr.update(newConnectionStr) def OnPortChange(self, value): newHost = self.host.get() newPort = self.port.get() newConnectionStr = "%s:%s" % (self.host.get(), self.port.get()) self.connectionStr.update(newConnectionStr) def OnConnectedChange(self, value): if not self.connected.get(): if 0 != self.playersCount.get(): self.playersCount.set(0) def OnPlayersCountChange(self, value): self.playerList = [] for index in range(value): self.playerList.append(squeezePlayerMdl(index)) self.playerList[index].discovered.addCallback(self.OnPlayersAvailableChange) self.playerList[index].CurrentTrackId.addCallback(self.OnCurrentTrack) self.OnPlayersAvailableChange(value) def OnPlayersAvailableChange(self, value): #print "OnPlayersAvailableChange" AvailablePlayersList = [] for index in range(len(self.playerList)): if True != self.playerList[index].discovered.get(): continue PlayerName = self.playerList[index].name.get() AvailablePlayersList.append(PlayerName) if PlayerName in self.Players: continue self.Players[PlayerName] = self.playerList[index] AvailablePlayersSet = set(AvailablePlayersList) for item in AvailablePlayersSet.symmetric_difference(self.Players): del self.Players[item] for func, args, kargs in self.CbPlayersAvailable: func(*args, **kargs) def CbPlayersAvailableAdd(self, func, *args, **kargs): self.CbPlayersAvailable.append((func, args, kargs)) def CbChurrentTrackAdd(self, func, *args, **kargs): self.CbChurrentTrack.append((func, args, kargs)) def OnCurrentTrack(self, value): #print "OnCurrentTrack (%s)" % value for func, args, kargs in self.CbChurrentTrack: func(*args, **kargs) def playerListClear(self): self.playerList = [] if 0 != self.playersCount.get(): self.playersCount.set(0)
class squeezeConMdle: def __init__(self): self.host = Observable("localhost") self.port = Observable(9000) # connectionStr : a simple to observe break of connection settings obj self.connectionStr = Observable("localhost:9000") self.connected = Observable(False) # Number of players on the server that can be used self.playersCount = Observable(0) # Socket Computer diagnostic error. Will be 0 when no error self.SocketErrNo = Observable(0) # Socket Human diagnostic error. Will be "" with no error, self.SocketErrMsg = Observable("") self.playerList = [] self.Players = ObservableDict() self.CbPlayersAvailable = [] self.CbChurrentTrack = [] self.host.addCallback(self.OnHostChange) self.port.addCallback(self.OnPortChange) self.connectionStr.addCallback(self.OnConnectedChange) self.connected.addCallback(self.OnConnectedChange) self.playersCount.addCallback(self.OnPlayersCountChange) self.SongCache = ObservableDict() def OnHostChange(self, value): newHost = self.host.get() newPort = self.port.get() newConnectionStr = "%s:%s" % (self.host.get(), self.port.get()) self.connectionStr.update(newConnectionStr) def OnPortChange(self, value): newHost = self.host.get() newPort = self.port.get() newConnectionStr = "%s:%s" % (self.host.get(), self.port.get()) self.connectionStr.update(newConnectionStr) def OnConnectedChange(self, value): if not self.connected.get(): if 0 != self.playersCount.get(): self.playersCount.set(0) def OnPlayersCountChange(self, value): self.playerList = [] for index in range(value): self.playerList.append(squeezePlayerMdl(index)) self.playerList[index].discovered.addCallback( self.OnPlayersAvailableChange) self.playerList[index].CurrentTrackId.addCallback( self.OnCurrentTrack) self.OnPlayersAvailableChange(value) def OnPlayersAvailableChange(self, value): #print "OnPlayersAvailableChange" AvailablePlayersList = [] for index in range(len(self.playerList)): if True != self.playerList[index].discovered.get(): continue PlayerName = self.playerList[index].name.get() AvailablePlayersList.append(PlayerName) if PlayerName in self.Players: continue self.Players[PlayerName] = self.playerList[index] AvailablePlayersSet = set(AvailablePlayersList) for item in AvailablePlayersSet.symmetric_difference(self.Players): del self.Players[item] for func, args, kargs in self.CbPlayersAvailable: func(*args, **kargs) def CbPlayersAvailableAdd(self, func, *args, **kargs): self.CbPlayersAvailable.append((func, args, kargs)) def CbChurrentTrackAdd(self, func, *args, **kargs): self.CbChurrentTrack.append((func, args, kargs)) def OnCurrentTrack(self, value): #print "OnCurrentTrack (%s)" % value for func, args, kargs in self.CbChurrentTrack: func(*args, **kargs) def playerListClear(self): self.playerList = [] if 0 != self.playersCount.get(): self.playersCount.set(0)