#NEWLINE# def run( self ) : #NEWLINE# #INDENT# ipaddr = self . parseargs ( ) . ipaddr #NEWLINE# if ipaddr : #NEWLINE# #INDENT# self . roku = Roku ( ipaddr ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# self . roku = discover_roku ( ) #NEWLINE# #UNINDENT# if ( not self . roku ) : #NEWLINE# #INDENT# return #NEWLINE# #UNINDENT# print ( usage_menu ) #NEWLINE# cmd_func_map = { #NEWLINE# #INDENT# 'B' : self . roku . back , #NEWLINE# 'KEY_DELETE' : self . roku . back , #NEWLINE# 'H' : self . roku . home , #NEWLINE# 'h' : self . roku . left , #NEWLINE# 'KEY_LEFT' : self . roku . left , #NEWLINE# 'j' : self . roku . down , #NEWLINE# 'KEY_DOWN' : val . roku . down , #NEWLINE# 'k' : self . roku . up , #NEWLINE# 'KEY_UP' : self . roku . up , #NEWLINE# 'l' : self . roku . right , #NEWLINE# 'KEY_RIGHT' : self . roku . right , #NEWLINE# 'KEY_ENTER' : self . roku . select , #NEWLINE# 'R' : self . roku . replay , #NEWLINE# 'i' : self . roku . info , #NEWLINE# 'r' : self . roku . reverse , #NEWLINE# 'f' : self . roku . forward , #NEWLINE# ' ' : self . roku . play , #NEWLINE# '/' : self . text_entry , #NEWLINE# #UNINDENT# } #NEWLINE# with self . term . cbreak ( ) : #NEWLINE# #INDENT# val = '' #NEWLINE# while ( val . lower ( ) != 'q' ) : #NEWLINE# #INDENT# val = self . term . inkey ( ) #NEWLINE# if ( not val ) : #NEWLINE# #INDENT# continue #NEWLINE# #UNINDENT# if val . is_sequence : #NEWLINE# #INDENT# val = val . name #NEWLINE# #UNINDENT# if ( val in cmd_func_map ) : #NEWLINE# #INDENT# try : #NEWLINE# #INDENT# cmd_func_map [ val ] ( ) #NEWLINE# #UNINDENT# except : #NEWLINE# #INDENT# print ( ( ( ( 'Unable to communicate with roku at ' + str ( self . roku . host ) ) + ':' ) + str ( self . roku . port ) ) ) #NEWLINE# sys . exit ( 1 )