Compare commits

...
5 changed files with 22 additions and 11 deletions
@@ -27,14 +27,15 @@ class MessageQueueHandler:
def _dispatch_messages(self):
for message in iter(self._queue.get, None):
message['typing'] = not self._queue.empty()
is_queue_empty = self._queue.empty()
message['typing'] = not is_queue_empty
self.connector.send_message(message)
self._sleep(self._get_sleep_time(message))
self._sleep(self._get_sleep_time(message, is_queue_empty))
def _get_sleep_time(self, message):
def _get_sleep_time(self, message, is_queue_empty):
words_per_min = message['wpm'] if 'wpm' in message else self.wpm
chars_per_min = self.avg_word_len * words_per_min / 60
return len(message['message']) / chars_per_min
return 0 if is_queue_empty else len(message['message']) / chars_per_min
def _sleep(self, seconds):
poll_freq = self.drain_poll_freq
+1
View File
@@ -79,6 +79,7 @@ class IdeHandler:
def read(self, message):
if 'patterns' in message:
self.filemanager.patterns = message['patterns']
self.monitor.paths = self.filemanager.parents
try:
message['filename'] = self.filemanager.find_file(
message.get('filename') or self.initial_file
@@ -17,7 +17,7 @@ class TerminadoMiniServer:
url,
TerminadoMiniServer.ResetterTermSocket,
{'term_manager': self._term_manager}
)])
)], websocket_ping_interval=30)
@property
def term_manager(self):
@@ -33,10 +33,6 @@ class TerminadoMiniServer:
def check_origin(self, origin):
return True
def on_close(self):
self.term_manager.terminal = None
self.term_manager.get_terminal()
def listen(self):
self.application.listen(self.port)
+14 -1
View File
@@ -42,7 +42,8 @@ def deserialize_tfw_msg(*args):
"""
Return message from TFW multipart data
"""
return _deserialize_all(*args)[1]
envelope = _deserialize_all(*args)
return _repair_if_needed(envelope)
def _serialize_all(*args):
@@ -84,6 +85,18 @@ def _deserialize_single(data):
return _decode_if_needed(data)
def _repair_if_needed(envelope):
"""
Quick fix for broken messages received from separate processes.
"""
if len(envelope) == 2:
return envelope[1]
for part in envelope:
if isinstance(part, dict):
return part
return {}
def _encode_if_needed(value):
"""
Return input as bytes
+1 -1
View File
@@ -28,7 +28,7 @@ class TFWServer:
r'/ws', ZMQWebSocketRouter, {
'listener': self._listener,
}
)])
)], websocket_ping_interval=30)
def listen(self):
self.application.listen(TFWENV.WEB_PORT)