def run(self): curses.cbreak() curses.noecho() output.lastline() output.overwriteline() self.prompt() output.scr.refresh() last = None for item in self.data: if item[0] != None: if not self.inahurry: if last != None: curses.napms(600 + len(last)*30) else: curses.napms(1000) self.receive(item[0], item[1]) output.scr.refresh() last = item[1] else: self.send(item[1]) output.openline() self.prompt() output.scr.refresh() last = None output.removelastline()
def receive(self, sender, msg): scr = output.scr output.messageline() scr.addstr("Incoming message from %s" % sender, output.white | curses.A_DIM) scr.refresh() if not self.inahurry: curses.napms(1000 + len(msg)*10) output.overwriteline() scr.addstr(sender, curses.color_pair(hash(sender) % 5 + 1)) scr.addstr(": ", output.white) scr.addstr(msg, output.white)
def send(self, msg): curses.curs_set(1) scr = output.scr output.lastline() self.prompt() curses.flushinp() for c in msg: # take out for release # if scr.getch() == ord('\n'): # break if not self.inahurry: scr.getch() scr.addch(c) if not self.inahurry: while scr.getch() != ord('\n'): pass output.overwriteline() scr.addstr("Sent: ", output.yellow | curses.A_BOLD) scr.addstr(msg, output.white) scr.refresh() curses.curs_set(0)