Skip to content

Commit

Permalink
Created a remotelistener
Browse files Browse the repository at this point in the history
  • Loading branch information
Marthyn committed May 2, 2011
1 parent 6cff509 commit 599d746
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 95 deletions.
30 changes: 30 additions & 0 deletions TuxNotifier/src/RemoteListener.py
@@ -0,0 +1,30 @@
'''
Created on May 2, 2011
@author: marthyn
'''
import time
import threading
class RemoteListener(threading.Thread):

def __init__(self, tux, runner):
threading.Thread.__init__(self)
self.tux = tux
self.runner = runner
self.comList = {"K_1":"ideal", "K_2":"live", "K_3":"independent", "K_4":"order", "K_5":"payment", "K_6":"test", "K_STANDBY":"stop"}


def run(self):
self.run = 'true'
self.stateOld = ''
while self.run=='true':
self.state = self.tux.tux.remote.getState()
if self.state != self.stateOld:
if self.state in self.comList:
self.runner.commands.put(self.comList[self.state])

time.sleep(0.01)
self.stateOld = self.state

def stop(self):
self.run = 'false'
19 changes: 11 additions & 8 deletions TuxNotifier/src/Runner.py
Expand Up @@ -4,6 +4,7 @@
@author: marthyn
'''
import threading
import Queue

class Runner( threading.Thread ):
'''
Expand All @@ -13,27 +14,29 @@ class Runner( threading.Thread ):

def __init__(self, tux):
threading.Thread.__init__(self)
self.commands = Queue.Queue()
self.myTux = tux

def setListeners(self, listeners):
self.listeners = listeners


def setRemote(self, remote):
self.remote = remote

def setText(self, text):
self.text = text

def run(self):
while True:
command = self.myTux.commands.get()
command = self.commands.get()
if command == "stop":
self.myTux.disconnect()
for listener in self.listeners:
listener.stop()
return
if command == "left":
self.myTux.links()
if command == "right":
self.myTux.rechts()
if command == "say":
self.myTux.speak()
self.myTux.speak(self.text)

if self.listeners.has_key(command):
self.listeners[command].getLastBuildStatus()

print command
64 changes: 4 additions & 60 deletions TuxNotifier/src/Tux.py
Expand Up @@ -14,75 +14,19 @@ class Tux( threading.Thread ):

def __init__(self, host, port):
threading.Thread.__init__(self)
self.commands = Queue.Queue()
self.tux = TuxAPI(host, port)
time.sleep(0.5)

def setListeners(self, listeners):
self.listeners = listeners

def setMessage(self, message):
self.message = message

def links(self):
self.tux.spinning.leftOn(1.0, 5)

def rechts(self):
self.tux.spinning.rightOn(1.0, 5)


def disconnect(self):
self.tux.server.destroy()
self.limit = 0

def speak(self):
def speak(self, text):
self.tux.mouth.open()
self.tux.eyes.open()
self.tux.tts.speak(self.message)
self.tux.tts.speak(text)
self.tux.mouth.open()
self.tux.eyes.close()

def stop(self):
self.commands.put('stop')

def listen(self):
self.state = self.tux.remote.getState()
if self.state == "K_LEFT":
if(self.state != self.stateOld):
self.commands.put('left')
if self.state == "K_1":
if(self.state != self.stateOld):
self.commands.put('ideal')
if self.state == "K_2":
if(self.state != self.stateOld):
self.commands.put('live')
if self.state == "K_3":
if(self.state != self.stateOld):
self.commands.put('independent')
if self.state == "K_4":
if(self.state != self.stateOld):
self.commands.put('order')
if self.state == "K_5":
if(self.state != self.stateOld):
self.commands.put('payment')
if self.state == "K_6":
if(self.state != self.stateOld):
self.commands.put('test')

if self.state == "K_RIGHT":
if(self.state != self.stateOld):
self.commands.put('right')

if self.state == "K_STANDBY":
if(self.state != self.stateOld):
self.commands.put('stop')
return

if self.state == "K_OK":

self.commands.put('say')

time.sleep(0.01)
self.stateOld = self.state
self.tux.eyes.close()

def connect(self):
self.tux.server.connect(CLIENT_LEVEL_FREE, "TuxShell", "NoPasswd")
Expand Down
19 changes: 8 additions & 11 deletions TuxNotifier/src/XmlListener.py
Expand Up @@ -9,14 +9,10 @@
import re

class XmlListener(threading.Thread):
'''
classdocs
'''


def __init__(self, tux, url):
def __init__(self, runner, url):
threading.Thread.__init__(self)
self.myTux = tux
self.runner = runner
self.url=url

def parse(self):
Expand All @@ -39,10 +35,10 @@ def run(self):
timestamp = timestamp[-19:]
self.date = timestamp.split('_')[0]
self.time = timestamp.split('_')[1].replace('-', ':')
self.curString = "Name %s.\r Build#%s.\r State: %s.\r Date: %s.\r Time: %s." % (self.name, self.number, self.state, self.date, self.time)
self.curString = "Name %s.\rBuild#%s.\rState: %s.\rDate: %s.\rTime: %s." % (self.name, self.number, self.state, self.date, self.time)
if self.number != self.oldNumber and self.oldNumber != "" :
self.myTux.setMessage(str(self.curString))
self.myTux.commands.put('say')
self.runner.setText(str("Status of build #"+self.number+" of job "+self.name+" is "+self.state))
self.runner.commands.put('say')
print self.curString
if 'broken' in self.state:
self.countFailures+=1
Expand All @@ -54,8 +50,9 @@ def stop(self):
self.run = "false"

def getLastBuildStatus(self):
self.myTux.setMessage(str("Last build of job "+self.name+" was "+self.state))
self.myTux.commands.put('say')
self.runner.setText(str("Last build of job "+self.name+" was "+self.state))
print self.curString
self.runner.commands.put('say')



31 changes: 15 additions & 16 deletions TuxNotifier/src/main.py
Expand Up @@ -6,29 +6,28 @@
from Tux import *
from Runner import *
from XmlListener import *
from RemoteListener import *

if __name__ == '__main__':
myTux = Tux("127.0.0.1", 54321)
myTux.connect()

IdealListener = XmlListener( myTux, "http://www.wtstest.com:8080/job/Ideal/rssAll" )
IndependentListener = XmlListener( myTux, "http://www.wtstest.com:8080/job/Independent/rssAll")
LiveListener = XmlListener( myTux, "http://www.wtstest.com:8080/job/Live/rssAll")
OrderListener = XmlListener( myTux, "http://www.wtstest.com:8080/job/Order/rssAll")
PaymentListener = XmlListener( myTux, "http://www.wtstest.com:8080/job/Payment/rssAll")
TestjobListener = XmlListener( myTux, "http://www.wtstest.com:8080/job/Test%20job/rssAll")
listeners = {'ideal':IdealListener, 'independent':IndependentListener, 'live':LiveListener, 'order':OrderListener, 'payment':PaymentListener, 'test':TestjobListener}
runner = Runner(myTux)
remote = RemoteListener(myTux, runner)


IdealListener = XmlListener( runner, "http://www.wtstest.com:8080/job/Ideal/rssAll" )
IndependentListener = XmlListener( runner, "http://www.wtstest.com:8080/job/Independent/rssAll")
LiveListener = XmlListener( runner, "http://www.wtstest.com:8080/job/Live/rssAll")
OrderListener = XmlListener( runner, "http://www.wtstest.com:8080/job/Order/rssAll")
PaymentListener = XmlListener( runner, "http://www.wtstest.com:8080/job/Payment/rssAll")
TestjobListener = XmlListener( runner, "http://www.wtstest.com:8080/job/Test%20job/rssAll")
listeners = {'ideal':IdealListener, 'independent':IndependentListener, 'live':LiveListener, 'order':OrderListener, 'payment':PaymentListener, 'test':TestjobListener}

runner.setRemote(remote)
runner.setListeners(listeners)
remote.start()
runner.start()
myTux.setListeners(listeners)

for listener in listeners:
listeners.get(listener).start()
#IdealListener.start()
#IndependentListener.start()
#LiveListener.start()
#OrderListener.start()
#PaymentListener.start()

myTux.listen()
myTux.stop()

0 comments on commit 599d746

Please sign in to comment.