def handle(self, session, line): #Time of last command executed. Will be used for external timeout cleanup. Update.setLastAction(time.time(), session.p_id) if not line.strip(): session.push("> ") # Filter the telnet commands self.tiac = TelnetTalk() self.ndata = self.tiac.listen(line) line = self.ndata[0] session.push(self.ndata[1]) # Reply accordingly parts = line.split(' ', 1) cmd = parts[0] if not cmd: pass # Easier to do it here, as EndSession is defined outside of action.py elif (cmd == "logout") or (cmd == "quit"): raise EndSession else: try: line = parts[1].strip() except IndexError: line = '' meth = getattr(Actions, 'do_'+cmd, None) # Normal commands, actions.py if cmd.find('@') == 0 : methadm = getattr(Admincmd, 'do_'+cmd.strip('@'), None) # Admin commands, admin.py if session.pname in self.coders and callable(methadm): methadm(session, line) session.push("> ") else: self.unknown(session, cmd) session.push("> ") elif callable(meth): # Normal command meth(session, line) session.push("> ") else: self.unknown(session, cmd) session.push("> ")