From 38b77714a9987dc5fc4d4e6158c57072c568236a Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Thu, 5 Apr 2018 16:07:09 +0200 Subject: [PATCH] Make recording Python 3 compatible Python 3's bytes objects require a bit more care to get in to the output format we need. --- websockify/websockifyserver.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/websockify/websockifyserver.py b/websockify/websockifyserver.py index 933355e..5e20128 100644 --- a/websockify/websockifyserver.py +++ b/websockify/websockifyserver.py @@ -142,7 +142,9 @@ class WebSockifyRequestHandler(WebSocketRequestHandler, SimpleHTTPRequestHandler if bufs: for buf in bufs: if self.rec: - self.rec.write("%s,\n" % repr("{%s{" % tdelta + buf)) + # Python 3 compatible conversion + bufstr = buf.decode('latin1').encode('unicode_escape').decode('ascii').replace("'", "\\'") + self.rec.write("'{{{0}{{{1}',\n".format(tdelta, bufstr)) self.send_parts.append(buf) # Flush any previously queued data @@ -189,7 +191,9 @@ class WebSockifyRequestHandler(WebSocketRequestHandler, SimpleHTTPRequestHandler self.print_traffic("}") if self.rec: - self.rec.write("%s,\n" % repr("}%s}" % tdelta + buf)) + # Python 3 compatible conversion + bufstr = buf.decode('latin1').encode('unicode_escape').decode('ascii').replace("'", "\\'") + self.rec.write("'}}{0}}}{1}',\n".format(tdelta, bufstr)) bufs.append(buf)