From 7c8b3d93fac9cc0bcb9caab884ce1536e37ed3b4 Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Thu, 8 Mar 2018 22:39:03 +0100 Subject: [PATCH 1/6] Italian translation: readiness was not shown in OSD if there were any file differences --- syncplay/messages_it.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/messages_it.py b/syncplay/messages_it.py index 22f6381..499fbb5 100644 --- a/syncplay/messages_it.py +++ b/syncplay/messages_it.py @@ -50,7 +50,7 @@ it = { "file-different-notification" : u"Il file che stai riproducendo sembra essere diverso da quello di {}", # User "file-differences-notification" : u"Il tuo file mostra le seguenti differenze: {}", # Differences - "room-file-differences" : u"Differenze: {} \n", # File differences (filename, size, and/or duration) + "room-file-differences" : u"Differenze: {}", # File differences (filename, size, and/or duration) "file-difference-filename" : u"nome", "file-difference-filesize" : u"dimensione", "file-difference-duration" : u"durata", From 6c53e6c58f20deeb7c883feded0fcc35fb848f7a Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Fri, 9 Mar 2018 00:43:32 +0100 Subject: [PATCH 2/6] Fixes a bug in which paths with non-ASCII characters prevented loading of the file properties --- syncplay/client.py | 1 + 1 file changed, 1 insertion(+) diff --git a/syncplay/client.py b/syncplay/client.py index e330843..99045db 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -1929,6 +1929,7 @@ class FileSwitchManager(object): return False def notifyUserIfFileNotInMediaDirectory(self, filenameToFind, path): + path = path.decode('utf-8') directoryToFind = os.path.dirname(path) if directoryToFind in self.mediaDirectoriesNotFound: return From f929b2291f3c5e42a7b906dd2393f41128ef5466 Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Fri, 9 Mar 2018 01:25:53 +0100 Subject: [PATCH 3/6] Fixes drag-and-drop of files with non-ASCII characters in the name on macOS --- syncplay/ui/gui.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index e989756..be3646e 100755 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -19,6 +19,7 @@ from twisted.internet import task from syncplay.ui.consoleUI import ConsoleUI if isMacOS() and IsPySide: from Foundation import NSURL + from Cocoa import NSString, NSUTF8StringEncoding lastCheckedForUpdates = None class ConsoleInGUI(ConsoleUI): @@ -1609,7 +1610,9 @@ class MainWindow(QtWidgets.QMainWindow): if urls and urls[0].scheme() == 'file': url = event.mimeData().urls()[0] if isMacOS() and IsPySide: - dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path()) + macURL = NSString.alloc().initWithString_(unicode(url.toString())) + pathString = macURL.stringByAddingPercentEscapesUsingEncoding_(NSUTF8StringEncoding) + dropfilepath = os.path.abspath(NSURL.URLWithString_(pathString).filePathURL().path()) else: dropfilepath = os.path.abspath(unicode(url.toLocalFile())) if rewindFile == False: From 42433e0262dc96570a750a7b30390782c3b4d5b2 Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Fri, 9 Mar 2018 01:32:46 +0100 Subject: [PATCH 4/6] Fixes drag-and-drop in shared playlist of filenames with non-ASCII characters on macOS --- syncplay/ui/gui.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index be3646e..1e65d30 100755 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -223,7 +223,9 @@ class MainWindow(QtWidgets.QMainWindow): for url in urls[::-1]: if isMacOS() and IsPySide: - dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path()) + macURL = NSString.alloc().initWithString_(unicode(url.toString())) + pathString = macURL.stringByAddingPercentEscapesUsingEncoding_(NSUTF8StringEncoding) + dropfilepath = os.path.abspath(NSURL.URLWithString_(pathString).filePathURL().path()) else: dropfilepath = os.path.abspath(unicode(url.toLocalFile())) if os.path.isfile(dropfilepath): @@ -328,7 +330,9 @@ class MainWindow(QtWidgets.QMainWindow): indexRow = window.playlist.count() for url in urls[::-1]: if isMacOS() and IsPySide: - dropfilepath = os.path.abspath(NSURL.URLWithString_(str(url.toString())).filePathURL().path()) + macURL = NSString.alloc().initWithString_(unicode(url.toString())) + pathString = macURL.stringByAddingPercentEscapesUsingEncoding_(NSUTF8StringEncoding) + dropfilepath = os.path.abspath(NSURL.URLWithString_(pathString).filePathURL().path()) else: dropfilepath = os.path.abspath(unicode(url.toLocalFile())) if os.path.isfile(dropfilepath): From bfafe1780ea787e18dfdfe4d95a1e96a419b137b Mon Sep 17 00:00:00 2001 From: albertosottile Date: Fri, 9 Mar 2018 09:50:43 +0100 Subject: [PATCH 5/6] Fixes string decode with drag-and-drop and non-ASCII chars --- syncplay/client.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/syncplay/client.py b/syncplay/client.py index 99045db..e8cb8b5 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -1929,7 +1929,10 @@ class FileSwitchManager(object): return False def notifyUserIfFileNotInMediaDirectory(self, filenameToFind, path): - path = path.decode('utf-8') + try: + path = path.decode('utf-8') + except UnicodeEncodeError: + pass directoryToFind = os.path.dirname(path) if directoryToFind in self.mediaDirectoriesNotFound: return From e63e74976ccd2133bebcecb8041e54ad84831d78 Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Sun, 11 Mar 2018 18:40:35 +0100 Subject: [PATCH 6/6] Fixes a crash in consoleUI when filename contains non-ASCII characters --- syncplay/ui/consoleUI.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/syncplay/ui/consoleUI.py b/syncplay/ui/consoleUI.py index 332a0ca..3f7433d 100644 --- a/syncplay/ui/consoleUI.py +++ b/syncplay/ui/consoleUI.py @@ -91,6 +91,10 @@ class ConsoleUI(threading.Thread): def showMessage(self, message, noTimestamp=False): message = message.encode(sys.stdout.encoding, 'replace') + try: + message = message.decode('utf-8') + except UnicodeEncodeError: + pass if noTimestamp: print(message) else: