Code:
import curses, traceback, threading#, time
import MySQLdb, sys
#Globals
poss_y = 0
select_poss = 0
def main(stdscr):
#Show Head Tital
head = stdscr.subwin(3,79,0,0)
head.box()
head.addstr(1, 20, " WELCOM TO ANOC v0.2 ", curses.A_BOLD)
head.addstr(1, 40, " -- Monitoring Console ")
#info = stdscr.subwin(20,50,30,0)
#info.box()
#Set Global variables for monitoring console possitioning
global poss_y
global select_poss
#Start Refresh Trhead
#thread.start_new_thread(console_update, (poss_y, select_poss))
ref = threading.Thread(target=console_update)
ref.setDaemon(True)
ref.start()
#Start Controle Loop
event = "t"
while True:
event = stdscr.getch()
if event == ord("q"):
#ref.stop()
break
elif str(event) == "258": select_poss += 1
elif str(event) == "259": select_poss -= 1
head.refresh()
def console_update():
global select_poss
while True:
con_x = 3
con_y = 1
console = curses.newpad(40, 79) #Set console as a pad that is 40 chars long and 79 wide
console.box()
#console.noutrefresh()
#console.erase()
cur.execute("SELECT * FROM Alerts")
size = int(cur.rowcount)
if select_poss >= size : select_poss = 0
if select_poss < 0 : select_poss = size
for i in range(size):
if i == select_poss:
data = cur.fetchone()
console.addstr(con_y, con_x, data[1], curses.color_pair(1))
con_y += 1
console.addstr(con_y, con_x, data[2], curses.color_pair(1))
con_y += 1
console.hline(con_y, 1, curses.ACS_HLINE, 77)
con_y += 1
else:
data = cur.fetchone()
console.addstr(con_y, con_x, data[1], curses.A_BOLD)
con_y += 1
console.addstr(con_y, con_x, data[2])
con_y += 1
console.hline(con_y, 1, curses.ACS_HLINE, 77)
con_y += 1
console.addstr(con_y, con_x, "select_poss is currently", curses.color_pair(2))
con_y += 1
console.addstr(con_y, con_x, str(select_poss),curses.color_pair(2))
con_y += 1
console.hline(con_y, 1, curses.ACS_HLINE, 77)
con_y += 1
#console.doupdate(poss_y,0, 3,0, 20,79)
console.refresh(poss_y,0, 3,0, 20,79)
if __name__ == '__main__':
try:
##########################
## Setup Curses ##
##########################
stdscr=curses.initscr()
curses.noecho()
curses.cbreak()
curses.curs_set(0)
stdscr.keypad(1)
curses.start_color()
curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE)
curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_GREEN)
##########################
## Connect to DB ##
##########################
global cur
conn = None
conn = MySQLdb.Connection(db='testdb', user='anocsys', passwd='anocpass')
cur = conn.cursor()
##########################
## Start main ##
##########################
main(stdscr)
##########################
## Close Curses ##
##########################
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
except:
##########################
## Close Curses ##
## When Error ##
##########################
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
traceback.print_exc() #prints the exception that broke everything
Bookmarks