use ansi escape and readline so output doesnt mix with input in cli ui

This commit is contained in:
gospodin 2023-10-14 23:45:09 +03:00
parent 20846ca78c
commit f1c675721c

View File

@ -4,6 +4,7 @@ import sys
import threading import threading
import time import time
import os import os
import readline
import syncplay import syncplay
from syncplay import constants from syncplay import constants
@ -105,10 +106,15 @@ class ConsoleUI(threading.Thread):
message = message.decode('utf-8') message = message.decode('utf-8')
except UnicodeEncodeError: except UnicodeEncodeError:
pass pass
sys.stdout.write('\33[2K\r')
if noTimestamp: if noTimestamp:
print(message) print(message)
else: else:
print(time.strftime(constants.UI_TIME_FORMAT, time.localtime()) + message) print(time.strftime(constants.UI_TIME_FORMAT, time.localtime()) + message)
line = readline.get_line_buffer()
if line != '':
print(line, end='')
sys.stdout.flush()
def showDebugMessage(self, message): def showDebugMessage(self, message):
print(message) print(message)