From db72048c312e60446d04e0e3677434d9fdccadf0 Mon Sep 17 00:00:00 2001 From: kelianchun Date: Wed, 23 Mar 2016 15:47:08 +0800 Subject: [PATCH 1/2] Update run_server.py --- run_server.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/run_server.py b/run_server.py index d448d34a1..bb08cf29c 100755 --- a/run_server.py +++ b/run_server.py @@ -367,13 +367,13 @@ class WebTerminalHandler(tornado.websocket.WebSocketHandler): match = self.term.ps1_pattern.search(self.term.vim_data) if match: self.term.vim_flag = False - data = self.term.deal_command(self.term.data)[0:200] - if len(data) > 0: - TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=data).save() + 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() else: - data = self.term.deal_command(self.term.data)[0:200] - if len(data) > 0: - TtyLog(log=self.log, datetime=datetime.datetime.now(), cmd=data).save() + 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 From 6d329b130abd40cafe1af7da6e4f51c9fc7d8aaf Mon Sep 17 00:00:00 2001 From: kelianchun Date: Thu, 24 Mar 2016 13:02:02 +0800 Subject: [PATCH 2/2] remove ps1 search remove ps1 search --- connect.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/connect.py b/connect.py index 4c7989614..c3d575249 100755 --- a/connect.py +++ b/connect.py @@ -303,6 +303,7 @@ class SshTty(Tty): data = '' input_str = '' input_mode = False + vim_end_flag = False try: tty.setraw(sys.stdin.fileno()) tty.setcbreak(sys.stdin.fileno()) @@ -363,12 +364,13 @@ class SshTty(Tty): if input_str != x: data += input_str if self.vim_flag: - match = self.ps1_pattern.search(self.vim_data) + match = re.compile(r'\x1b\[\?1049', re.X).findall(self.vim_data) if match: - self.vim_flag = False - data = self.deal_command(data)[0:200] - if len(data) > 0: - TtyLog(log=log, datetime=datetime.datetime.now(), cmd=data).save() + if vim_end_flag or len(match) == 2: + self.vim_flag = False + vim_end_flag = False + else: + vim_end_flag = True else: data = self.deal_command(data)[0:200] if len(data) > 0: