def on_message(self, message): data = json.loads(message) if not data: return if data.get('data'): self.term.input_mode = True if str(data['data']) in ['\r', '\n', '\r\n']: if self.term.vim_flag: match = self.term.ps1_pattern.search(self.term.vim_data) if match: self.term.vim_flag = False vim_data = self.term.deal_command( self.term.vim_data)[0:200] if len(data) > 0: TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=vim_data).save() TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=self.term.deal_command( self.term.data)[0:200]).save() self.term.vim_data = '' self.term.data = '' self.term.input_mode = False self.channel.send(data['data'])
def on_message(self, message): jsondata = json.loads(message) if not jsondata: return if 'resize' in jsondata.get('data'): self.termlog.write(message) self.channel.resize_pty( width=int(jsondata.get('data').get('resize').get('cols', 100)), height=int(jsondata.get('data').get('resize').get('rows', 35))) elif jsondata.get('data'): self.termlog.recoder = True self.term.input_mode = True if str(jsondata['data']) in ['\r', '\n', '\r\n']: match = re.compile(r'\x1b\[\?1049', re.X).findall(self.term.vim_data) if match: if self.term.vim_flag or len(match) == 2: self.term.vim_flag = False else: self.term.vim_flag = True elif not self.term.vim_flag: result = self.term.deal_command(self.term.data)[0:200] if len(result) > 0: TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=result).save() self.term.vim_data = '' self.term.data = '' self.term.input_mode = False self.channel.send(jsondata['data']) else: pass