From 139f3f533123c17caf3e93b546052713bd5bc2d2 Mon Sep 17 00:00:00 2001 From: Etoh Date: Sun, 4 Feb 2018 23:19:38 +0000 Subject: [PATCH 01/24] Add first letter of Cyrillic alphabet to Syncplay mpv script (#174 raised by Corginyan) --- resources/syncplayintf.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/resources/syncplayintf.lua b/resources/syncplayintf.lua index 3de79f4..9115faf 100644 --- a/resources/syncplayintf.lua +++ b/resources/syncplayintf.lua @@ -61,6 +61,7 @@ local cursor = 1 local key_hints_enabled = false non_us_chars = { + 'А','а', 'ą','ć','ę','ł','ń','ś','ź','ż','Ą','Ć','Ę','Ł','Ń','Ś','Ź','Ż', 'à','è','ì','ò','ù','À','È','Ì','Ò','Ù', 'á', 'é', 'í', 'ó', 'ú', 'ý', 'Á', 'É', 'Í', 'Ó', 'Ú', 'Ý', From ad85ce98566321a3bfa32a8e159d36d71e21cbc6 Mon Sep 17 00:00:00 2001 From: alby128 Date: Fri, 9 Feb 2018 12:40:01 +0100 Subject: [PATCH 02/24] Added homebrew self update on Travis --- .travis.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index ee035e0..accff29 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,21 +6,22 @@ branches: - master script: -- python buildPy2app.py py2app +- python2 buildPy2app.py py2app fix before_install: +- brew update - brew install python - brew tap cartr/qt4 - brew tap-pin cartr/qt4 - brew install pyside install: -- export PATH=/usr/local/bin:$PATH +#- export PATH=/usr/local/bin:$PATH - export QT_PREFERRED_BINDING="PySide" -- pip install twisted appnope pyobjc py2app +- pip2 install twisted appnope pyobjc py2app before_deploy: -- pip install dmgbuild +- pip2 install dmgbuild - mkdir dist_dmg - mv resources/macos_vlc_install.command resources/.macos_vlc_install.command - mv resources/lua/intf/syncplay.lua resources/lua/intf/.syncplay.lua From 6f12315c8ee9cf5648716ab290727c6b2b3fb022 Mon Sep 17 00:00:00 2001 From: Etoh Date: Sat, 10 Feb 2018 17:54:01 +0000 Subject: [PATCH 03/24] Fix error when server run without --max-chat-message-length being set (#177) --- syncplay/client.py | 12 ++++++++---- syncplay/server.py | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index 8a1b3cd..e330843 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -560,10 +560,14 @@ class SyncplayClient(object): elif not self.serverFeatures["sharedPlaylists"]: self.ui.showErrorMessage(getMessage("shared-playlists-disabled-by-server-error")) # TODO: Have messages for all unsupported & disabled features - constants.MAX_CHAT_MESSAGE_LENGTH = self.serverFeatures["maxChatMessageLength"] - constants.MAX_USERNAME_LENGTH = self.serverFeatures["maxUsernameLength"] - constants.MAX_ROOM_NAME_LENGTH = self.serverFeatures["maxRoomNameLength"] - constants.MAX_FILENAME_LENGTH = self.serverFeatures["maxFilenameLength"] + if self.serverFeatures["maxChatMessageLength"] is not None: + constants.MAX_CHAT_MESSAGE_LENGTH = self.serverFeatures["maxChatMessageLength"] + if self.serverFeatures["maxUsernameLength"] is not None: + constants.MAX_USERNAME_LENGTH = self.serverFeatures["maxUsernameLength"] + if self.serverFeatures["maxRoomNameLength"] is not None: + constants.MAX_ROOM_NAME_LENGTH = self.serverFeatures["maxRoomNameLength"] + if self.serverFeatures["maxFilenameLength"] is not None: + constants.MAX_FILENAME_LENGTH = self.serverFeatures["maxFilenameLength"] constants.MPV_SYNCPLAYINTF_CONSTANTS_TO_SEND = ["MaxChatMessageLength={}".format(constants.MAX_CHAT_MESSAGE_LENGTH), u"inputPromptStartCharacter={}".format(constants.MPV_INPUT_PROMPT_START_CHARACTER), u"inputPromptEndCharacter={}".format(constants.MPV_INPUT_PROMPT_END_CHARACTER), diff --git a/syncplay/server.py b/syncplay/server.py index 96904ee..21a09ad 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -27,7 +27,7 @@ class SyncFactory(Factory): self._motdFilePath = motdFilePath self.disableReady = disableReady self.disableChat = disableChat - self.maxChatMessageLength = maxChatMessageLength + self.maxChatMessageLength = maxChatMessageLength if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH if not isolateRooms: self._roomManager = RoomManager() else: @@ -548,4 +548,4 @@ class ConfigurationGetter(object): self._argparser.add_argument('--disable-chat', action='store_true', help=getMessage("server-chat-argument")) self._argparser.add_argument('--salt', metavar='salt', type=str, nargs='?', help=getMessage("server-salt-argument")) self._argparser.add_argument('--motd-file', metavar='file', type=str, nargs='?', help=getMessage("server-motd-argument")) - self._argparser.add_argument('--max-chat-message-length', metavar='maxChatMessageLength', type=int, nargs='?',help=getMessage("server-chat-maxchars-argument").format(constants.MAX_CHAT_MESSAGE_LENGTH)) + self._argparser.add_argument('--max-chat-message-length', metavar='maxChatMessageLength',type=int, nargs='?',help=getMessage("server-chat-maxchars-argument").format(constants.MAX_CHAT_MESSAGE_LENGTH)) From 14955c397d1a487f3f362b13608b1432319552ac Mon Sep 17 00:00:00 2001 From: Etoh Date: Sat, 10 Feb 2018 17:54:01 +0000 Subject: [PATCH 04/24] Fix error when server run without --max-chat-message-length being set (#177) --- syncplay/client.py | 12 ++++++++---- syncplay/server.py | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index 8a1b3cd..e330843 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -560,10 +560,14 @@ class SyncplayClient(object): elif not self.serverFeatures["sharedPlaylists"]: self.ui.showErrorMessage(getMessage("shared-playlists-disabled-by-server-error")) # TODO: Have messages for all unsupported & disabled features - constants.MAX_CHAT_MESSAGE_LENGTH = self.serverFeatures["maxChatMessageLength"] - constants.MAX_USERNAME_LENGTH = self.serverFeatures["maxUsernameLength"] - constants.MAX_ROOM_NAME_LENGTH = self.serverFeatures["maxRoomNameLength"] - constants.MAX_FILENAME_LENGTH = self.serverFeatures["maxFilenameLength"] + if self.serverFeatures["maxChatMessageLength"] is not None: + constants.MAX_CHAT_MESSAGE_LENGTH = self.serverFeatures["maxChatMessageLength"] + if self.serverFeatures["maxUsernameLength"] is not None: + constants.MAX_USERNAME_LENGTH = self.serverFeatures["maxUsernameLength"] + if self.serverFeatures["maxRoomNameLength"] is not None: + constants.MAX_ROOM_NAME_LENGTH = self.serverFeatures["maxRoomNameLength"] + if self.serverFeatures["maxFilenameLength"] is not None: + constants.MAX_FILENAME_LENGTH = self.serverFeatures["maxFilenameLength"] constants.MPV_SYNCPLAYINTF_CONSTANTS_TO_SEND = ["MaxChatMessageLength={}".format(constants.MAX_CHAT_MESSAGE_LENGTH), u"inputPromptStartCharacter={}".format(constants.MPV_INPUT_PROMPT_START_CHARACTER), u"inputPromptEndCharacter={}".format(constants.MPV_INPUT_PROMPT_END_CHARACTER), diff --git a/syncplay/server.py b/syncplay/server.py index 96904ee..3e3967a 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -27,7 +27,7 @@ class SyncFactory(Factory): self._motdFilePath = motdFilePath self.disableReady = disableReady self.disableChat = disableChat - self.maxChatMessageLength = maxChatMessageLength + self.maxChatMessageLength = maxChatMessageLength # if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH if not isolateRooms: self._roomManager = RoomManager() else: @@ -548,4 +548,4 @@ class ConfigurationGetter(object): self._argparser.add_argument('--disable-chat', action='store_true', help=getMessage("server-chat-argument")) self._argparser.add_argument('--salt', metavar='salt', type=str, nargs='?', help=getMessage("server-salt-argument")) self._argparser.add_argument('--motd-file', metavar='file', type=str, nargs='?', help=getMessage("server-motd-argument")) - self._argparser.add_argument('--max-chat-message-length', metavar='maxChatMessageLength', type=int, nargs='?',help=getMessage("server-chat-maxchars-argument").format(constants.MAX_CHAT_MESSAGE_LENGTH)) + self._argparser.add_argument('--max-chat-message-length', metavar='maxChatMessageLength',type=int, nargs='?',help=getMessage("server-chat-maxchars-argument").format(constants.MAX_CHAT_MESSAGE_LENGTH)) From 9c5308869f29c0c65771cbad05d9033290cca82e Mon Sep 17 00:00:00 2001 From: Etoh Date: Sat, 10 Feb 2018 18:06:08 +0000 Subject: [PATCH 05/24] Fix error when server run without --max-chat-message-length (#177) Part 2 --- syncplay/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/server.py b/syncplay/server.py index 3e3967a..21a09ad 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -27,7 +27,7 @@ class SyncFactory(Factory): self._motdFilePath = motdFilePath self.disableReady = disableReady self.disableChat = disableChat - self.maxChatMessageLength = maxChatMessageLength # if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH + self.maxChatMessageLength = maxChatMessageLength if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH if not isolateRooms: self._roomManager = RoomManager() else: From 03ab3fe7205bb2f12b504026440f4bd8c7284533 Mon Sep 17 00:00:00 2001 From: albertosottile Date: Fri, 23 Feb 2018 11:45:44 +0100 Subject: [PATCH 06/24] Change ConfigDialog to modeless --- syncplay/ui/GuiConfiguration.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index 373715d..605007c 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -1,5 +1,5 @@ from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2 -from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine +from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices if IsPySide2: @@ -25,7 +25,10 @@ class GuiConfiguration: if QCoreApplication.instance() is None: self.app = QtWidgets.QApplication(sys.argv) dialog = ConfigDialog(self.config, self._availablePlayerPaths, self.error, self.defaultConfig) - dialog.exec_() + configLoop = QEventLoop() + dialog.show() + dialog.closed.connect(configLoop.quit) + configLoop.exec_() def setAvailablePaths(self, paths): self._availablePlayerPaths = paths @@ -73,6 +76,8 @@ class ConfigDialog(QtWidgets.QDialog): pressedclosebutton = True moreToggling = False + + closed = Signal() def automaticUpdatePromptCheck(self): if self.automaticupdatesCheckbox.checkState() == Qt.PartiallyChecked: @@ -421,11 +426,12 @@ class ConfigDialog(QtWidgets.QDialog): self.pressedclosebutton = False self.close() - return + self.closed.emit() def closeEvent(self, event): if self.pressedclosebutton: super(ConfigDialog, self).closeEvent(event) + self.closed.emit() sys.exit() def keyPressEvent(self, event): @@ -1189,6 +1195,7 @@ class ConfigDialog(QtWidgets.QDialog): self.config['resetConfig'] = True self.pressedclosebutton = False self.close() + self.closed.emit() def showEvent(self, *args, **kwargs): self.ensureTabListIsVisible() From ff972dfda03cb0092f7b4dfdbf965d816520aa1d Mon Sep 17 00:00:00 2001 From: albertosottile Date: Fri, 23 Feb 2018 11:45:44 +0100 Subject: [PATCH 07/24] Change ConfigDialog to modeless --- syncplay/ui/GuiConfiguration.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index 373715d..605007c 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -1,5 +1,5 @@ from syncplay.vendor.Qt import QtCore, QtWidgets, QtGui, __binding__, IsPySide, IsPySide2 -from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine +from syncplay.vendor.Qt.QtCore import Qt, QSettings, QCoreApplication, QSize, QPoint, QUrl, QLine, QEventLoop, Signal from syncplay.vendor.Qt.QtWidgets import QApplication, QLineEdit, QLabel, QCheckBox, QButtonGroup, QRadioButton, QDoubleSpinBox, QPlainTextEdit from syncplay.vendor.Qt.QtGui import QCursor, QIcon, QImage, QDesktopServices if IsPySide2: @@ -25,7 +25,10 @@ class GuiConfiguration: if QCoreApplication.instance() is None: self.app = QtWidgets.QApplication(sys.argv) dialog = ConfigDialog(self.config, self._availablePlayerPaths, self.error, self.defaultConfig) - dialog.exec_() + configLoop = QEventLoop() + dialog.show() + dialog.closed.connect(configLoop.quit) + configLoop.exec_() def setAvailablePaths(self, paths): self._availablePlayerPaths = paths @@ -73,6 +76,8 @@ class ConfigDialog(QtWidgets.QDialog): pressedclosebutton = True moreToggling = False + + closed = Signal() def automaticUpdatePromptCheck(self): if self.automaticupdatesCheckbox.checkState() == Qt.PartiallyChecked: @@ -421,11 +426,12 @@ class ConfigDialog(QtWidgets.QDialog): self.pressedclosebutton = False self.close() - return + self.closed.emit() def closeEvent(self, event): if self.pressedclosebutton: super(ConfigDialog, self).closeEvent(event) + self.closed.emit() sys.exit() def keyPressEvent(self, event): @@ -1189,6 +1195,7 @@ class ConfigDialog(QtWidgets.QDialog): self.config['resetConfig'] = True self.pressedclosebutton = False self.close() + self.closed.emit() def showEvent(self, *args, **kwargs): self.ensureTabListIsVisible() From 398641c5f7d30beff32064ebf5b504a633c1c227 Mon Sep 17 00:00:00 2001 From: albertosottile Date: Sun, 25 Feb 2018 14:44:56 +0000 Subject: [PATCH 08/24] Add --max-username-length option & increased default username and chat lengths to 150 characters --- syncplay/constants.py | 4 ++-- syncplay/messages_de.py | 1 + syncplay/messages_en.py | 1 + syncplay/messages_it.py | 1 + syncplay/messages_ru.py | 1 + syncplay/server.py | 6 ++++-- syncplay/ui/GuiConfiguration.py | 1 - 7 files changed, 10 insertions(+), 5 deletions(-) diff --git a/syncplay/constants.py b/syncplay/constants.py index f5f0f41..5ea98c8 100644 --- a/syncplay/constants.py +++ b/syncplay/constants.py @@ -66,8 +66,8 @@ DEFAULT_CHAT_OUTPUT_FONT_COLOR = "#FFFF00" DEFAULT_CHAT_FONT_WEIGHT = 1 # Max numbers are used by server (and client pre-connection). Once connected client gets values from server featureList (or uses 'fallback' versions for old servers) -MAX_CHAT_MESSAGE_LENGTH = 125 # Number of displayed characters -MAX_USERNAME_LENGTH = 20 # Number of displayed characters +MAX_CHAT_MESSAGE_LENGTH = 150 # Number of displayed characters +MAX_USERNAME_LENGTH = 150 # Number of displayed characters MAX_ROOM_NAME_LENGTH = 35 # Number of displayed characters MAX_FILENAME_LENGTH = 250 # Number of displayed characters FALLBACK_MAX_CHAT_MESSAGE_LENGTH = 50 # Number of displayed characters diff --git a/syncplay/messages_de.py b/syncplay/messages_de.py index f015834..7caed97 100644 --- a/syncplay/messages_de.py +++ b/syncplay/messages_de.py @@ -433,6 +433,7 @@ de = { "server-motd-argument": u"Pfad zur Datei, von der die Nachricht des Tages geladen wird", "server-chat-argument" : "Should chat be disabled?", # TODO: Translate "server-chat-maxchars-argument": u"Maximum number of characters in a chat message (default is {})", # TODO: Translate + "server-maxusernamelength-argument" : u"Maximum number of charactrs in a username (default is {})", # TODO: Translate "server-messed-up-motd-unescaped-placeholders": u"Die Nachricht des Tages hat unmaskierte Platzhalter. Alle $-Zeichen sollten verdoppelt werden ($$).", "server-messed-up-motd-too-long": u"Die Nachricht des Tages ist zu lang - Maximal {} Zeichen, aktuell {}.", diff --git a/syncplay/messages_en.py b/syncplay/messages_en.py index 4d04b04..5548f00 100644 --- a/syncplay/messages_en.py +++ b/syncplay/messages_en.py @@ -437,6 +437,7 @@ en = { "server-motd-argument": "path to file from which motd will be fetched", "server-chat-argument" : "Should chat be disabled?", "server-chat-maxchars-argument" : u"Maximum number of characters in a chat message (default is {})", # Default number of characters + "server-maxusernamelength-argument" : u"Maximum number of charactrs in a username (default is {})", "server-messed-up-motd-unescaped-placeholders": "Message of the Day has unescaped placeholders. All $ signs should be doubled ($$).", "server-messed-up-motd-too-long": u"Message of the Day is too long - maximum of {} chars, {} given.", diff --git a/syncplay/messages_it.py b/syncplay/messages_it.py index 53a5c1e..bda5522 100644 --- a/syncplay/messages_it.py +++ b/syncplay/messages_it.py @@ -438,6 +438,7 @@ it = { "server-motd-argument": u"percorso del file da cui verrà letto il messaggio del giorno", "server-chat-argument" : u"abilita o disabilita la chat", "server-chat-maxchars-argument" : u"Numero massimo di caratteri in un messaggio di chat (default è {})", # Default number of characters + "server-maxusernamelength-argument": u"Maximum number of charactrs in a username (default is {})", # TODO: Translate "server-messed-up-motd-unescaped-placeholders": u"Il messaggio del giorno ha dei caratteri non 'escaped'. Tutti i simboli $ devono essere doppi ($$).", "server-messed-up-motd-too-long": u"Il messaggio del giorno è troppo lungo - numero massimo di caratteri è {}, {} trovati.", diff --git a/syncplay/messages_ru.py b/syncplay/messages_ru.py index 0b47c07..7a1fafe 100644 --- a/syncplay/messages_ru.py +++ b/syncplay/messages_ru.py @@ -439,6 +439,7 @@ ru = { "server-motd-argument" : u"путь к файлу, из которого будет извлекаться MOTD-сообщение", "server-chat-argument" : "Should chat be disabled?", # TODO: Translate "server-chat-maxchars-argument": u"Maximum number of characters in a chat message (default is {})", # TODO: Translate + "server-maxusernamelength-argument": u"Maximum number of charactrs in a username (default is {})", # TODO: Translate "server-messed-up-motd-unescaped-placeholders" : u"MOTD-сообщение содержит неэкранированные спец.символы. Все знаки $ должны быть продублированы ($$).", "server-messed-up-motd-too-long" : u"MOTD-сообщение слишком длинное: максимальная длина - {} символ(ов), текущая длина - {} символ(ов).", diff --git a/syncplay/server.py b/syncplay/server.py index 21a09ad..8e1c625 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -14,7 +14,7 @@ import argparse from syncplay.utils import RoomPasswordProvider, NotControlledRoom, RandomStringGenerator, meetsMinVersion, playlistIsValid, truncateText class SyncFactory(Factory): - def __init__(self, password='', motdFilePath=None, isolateRooms=False, salt=None, disableReady=False,disableChat=False, maxChatMessageLength=constants.MAX_CHAT_MESSAGE_LENGTH): + def __init__(self, password='', motdFilePath=None, isolateRooms=False, salt=None, disableReady=False,disableChat=False, maxChatMessageLength=constants.MAX_CHAT_MESSAGE_LENGTH, maxUsernameLength=constants.MAX_USERNAME_LENGTH): self.isolateRooms = isolateRooms print getMessage("welcome-server-notification").format(syncplay.version) if password: @@ -28,6 +28,7 @@ class SyncFactory(Factory): self.disableReady = disableReady self.disableChat = disableChat self.maxChatMessageLength = maxChatMessageLength if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH + self.maxUsernameLength = maxUsernameLength if maxUsernameLength is not None else constants.MAX_USERNAME_LENGTH if not isolateRooms: self._roomManager = RoomManager() else: @@ -50,7 +51,7 @@ class SyncFactory(Factory): features["managedRooms"] = True features["chat"] = not self.disableChat features["maxChatMessageLength"] = self.maxChatMessageLength - features["maxUsernameLength"] = constants.MAX_USERNAME_LENGTH + features["maxUsernameLength"] = self.maxUsernameLength features["maxRoomNameLength"] = constants.MAX_ROOM_NAME_LENGTH features["maxFilenameLength"] = constants.MAX_FILENAME_LENGTH @@ -549,3 +550,4 @@ class ConfigurationGetter(object): self._argparser.add_argument('--salt', metavar='salt', type=str, nargs='?', help=getMessage("server-salt-argument")) self._argparser.add_argument('--motd-file', metavar='file', type=str, nargs='?', help=getMessage("server-motd-argument")) self._argparser.add_argument('--max-chat-message-length', metavar='maxChatMessageLength',type=int, nargs='?',help=getMessage("server-chat-maxchars-argument").format(constants.MAX_CHAT_MESSAGE_LENGTH)) + self._argparser.add_argument('--max-username-length', metavar='maxUsernameLength', type=int, nargs='?',help=getMessage("server-maxusernamelength-argument").format(constants.MAX_USERNAME_LENGTH)) diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index 605007c..fd6bcd3 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -596,7 +596,6 @@ class ConfigDialog(QtWidgets.QDialog): self.defaultroomLabel.setObjectName("room") self.defaultroomTextbox.setObjectName("room") - self.usernameTextbox.setMaxLength(constants.MAX_USERNAME_LENGTH) self.defaultroomTextbox.setMaxLength(constants.MAX_ROOM_NAME_LENGTH) self.connectionSettingsLayout = QtWidgets.QGridLayout() From 27675bf8e7feba0012fdf914c4b9f85452fa0422 Mon Sep 17 00:00:00 2001 From: albertosottile Date: Thu, 1 Mar 2018 19:26:07 +0000 Subject: [PATCH 09/24] Set recent client as 1.5.2 --- syncplay/__init__.py | 2 +- syncplay/constants.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/syncplay/__init__.py b/syncplay/__init__.py index e039478..c66c5cc 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,4 +1,4 @@ version = '1.5.2' milestone = 'Yoitsu' -release_number = '56' +release_number = '57' projectURL = 'http://syncplay.pl/' diff --git a/syncplay/constants.py b/syncplay/constants.py index 5ea98c8..d6a2d73 100644 --- a/syncplay/constants.py +++ b/syncplay/constants.py @@ -10,7 +10,7 @@ UI_TIME_FORMAT = "[%X] " CONFIG_NAMES = [".syncplay", "syncplay.ini"] #Syncplay searches first to last DEFAULT_CONFIG_NAME_WINDOWS = "syncplay.ini" DEFAULT_CONFIG_NAME_LINUX = ".syncplay" -RECENT_CLIENT_THRESHOLD = "1.5.1" #This and higher considered 'recent' clients (no warnings) +RECENT_CLIENT_THRESHOLD = "1.5.2" #This and higher considered 'recent' clients (no warnings) WARN_OLD_CLIENTS = True #Use MOTD to inform old clients to upgrade LIST_RELATIVE_CONFIGS = True # Print list of relative configs loaded SHOW_CONTACT_INFO = True # Displays dev contact details below list in GUI From 300d4097b4943a21319a128d6c5b2cf543377aab Mon Sep 17 00:00:00 2001 From: albertosottile Date: Sat, 3 Mar 2018 12:18:30 +0000 Subject: [PATCH 10/24] Fix typo --- syncplay/messages_de.py | 2 +- syncplay/messages_en.py | 2 +- syncplay/messages_it.py | 2 +- syncplay/messages_ru.py | 2 +- syncplay/ui/gui.py | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/syncplay/messages_de.py b/syncplay/messages_de.py index 7caed97..b389a97 100644 --- a/syncplay/messages_de.py +++ b/syncplay/messages_de.py @@ -455,7 +455,7 @@ de = { "sharedplaylistenabled-label" : u"Enable shared playlists", "removefromplaylist-menu-label" : u"Remove from playlist", "shuffleremainingplaylist-menu-label" : u"Shuffle remaining playlist", - "shuffleentireplaylist-menuu-label" : u"Shuffle entire playlist", + "shuffleentireplaylist-menu-label" : u"Shuffle entire playlist", "undoplaylist-menu-label" : u"Undo last change to playlist", "addfilestoplaylist-menu-label" : u"Add file(s) to bottom of playlist", "addurlstoplaylist-menu-label" : u"Add URL(s) to bottom of playlist", diff --git a/syncplay/messages_en.py b/syncplay/messages_en.py index 5548f00..ce216ed 100644 --- a/syncplay/messages_en.py +++ b/syncplay/messages_en.py @@ -459,7 +459,7 @@ en = { "sharedplaylistenabled-label" : u"Enable shared playlists", "removefromplaylist-menu-label" : u"Remove from playlist", "shuffleremainingplaylist-menu-label" : u"Shuffle remaining playlist", - "shuffleentireplaylist-menuu-label" : u"Shuffle entire playlist", + "shuffleentireplaylist-menu-label" : u"Shuffle entire playlist", "undoplaylist-menu-label" : u"Undo last change to playlist", "addfilestoplaylist-menu-label" : u"Add file(s) to bottom of playlist", "addurlstoplaylist-menu-label" : u"Add URL(s) to bottom of playlist", diff --git a/syncplay/messages_it.py b/syncplay/messages_it.py index bda5522..22f6381 100644 --- a/syncplay/messages_it.py +++ b/syncplay/messages_it.py @@ -460,7 +460,7 @@ it = { "sharedplaylistenabled-label" : u"Abilita le playlist condivise", "removefromplaylist-menu-label" : u"Rimuovi dalla playlist", "shuffleremainingplaylist-menu-label" : u"Mescola i file non ancora riprodotti", - "shuffleentireplaylist-menuu-label" : u"Mescola l'intera playlist", + "shuffleentireplaylist-menu-label" : u"Mescola l'intera playlist", "undoplaylist-menu-label" : u"Annulla l'ultima modifica alla playlist", "addfilestoplaylist-menu-label" : u"Aggiungi un file alla fine della playlist", "addurlstoplaylist-menu-label" : u"Aggiungi un indirizzo alla fine della playlist", diff --git a/syncplay/messages_ru.py b/syncplay/messages_ru.py index 7a1fafe..f32e73f 100644 --- a/syncplay/messages_ru.py +++ b/syncplay/messages_ru.py @@ -460,7 +460,7 @@ ru = { "sharedplaylistenabled-label" : u"Включить общий список воспроизведения", "removefromplaylist-menu-label" : u"Удалить", "shufflepremaininglaylist-menuu-label" : u"Shuffle remaining playlist", # Was: Перемешать список # TODO: Translate - "shuffleentireplaylist-menuu-label" : u"Shuffle entire playlist", # TODO: Translate + "shuffleentireplaylist-menu-label" : u"Shuffle entire playlist", # TODO: Translate "undoplaylist-menu-label" : u"Отменить последнее действие", "addfilestoplaylist-menu-label" : u"Добавить файлы в очередь", "addurlstoplaylist-menu-label" : u"Добавить ссылку в очередь", diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index d2fa381..e989756 100755 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -597,7 +597,7 @@ class MainWindow(QtWidgets.QMainWindow): menu.addAction(QtGui.QPixmap(resourcespath + u"delete.png"), getMessage("removefromplaylist-menu-label"), lambda: self.deleteSelectedPlaylistItems()) menu.addSeparator() menu.addAction(QtGui.QPixmap(resourcespath + u"arrow_switch.png"), getMessage("shuffleremainingplaylist-menu-label"), lambda: self.shuffleRemainingPlaylist()) - menu.addAction(QtGui.QPixmap(resourcespath + u"arrow_switch.png"), getMessage("shuffleentireplaylist-menuu-label"), lambda: self.shuffleEntirePlaylist()) + menu.addAction(QtGui.QPixmap(resourcespath + u"arrow_switch.png"), getMessage("shuffleentireplaylist-menu-label"), lambda: self.shuffleEntirePlaylist()) menu.addAction(QtGui.QPixmap(resourcespath + u"arrow_undo.png"), getMessage("undoplaylist-menu-label"), lambda: self.undoPlaylistChange()) menu.addAction(QtGui.QPixmap(resourcespath + u"film_edit.png"), getMessage("editplaylist-menu-label"), lambda: self.openEditPlaylistDialog()) menu.addAction(QtGui.QPixmap(resourcespath + u"film_add.png"),getMessage("addfilestoplaylist-menu-label"), lambda: self.OpenAddFilesToPlaylistDialog()) From 1db116d69d004133cceded2ecd640730d205b640 Mon Sep 17 00:00:00 2001 From: albertosottile Date: Sat, 3 Mar 2018 15:08:49 +0100 Subject: [PATCH 11/24] Correct Travis script to explicitely install python2 --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index accff29..84377f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,13 +10,14 @@ script: before_install: - brew update -- brew install python +- brew install python@2 - brew tap cartr/qt4 - brew tap-pin cartr/qt4 - brew install pyside install: #- export PATH=/usr/local/bin:$PATH +- export PATH="/usr/local/opt/python@2/bin:$PATH" - export QT_PREFERRED_BINDING="PySide" - pip2 install twisted appnope pyobjc py2app From 440357063874c02691b9d97b1916cea9cb9adac2 Mon Sep 17 00:00:00 2001 From: albertosottile Date: Sun, 4 Mar 2018 20:29:11 +0100 Subject: [PATCH 12/24] Retrieve python@2 cache from external build --- .travis.yml | 7 ++++--- travis/cache-homebrew | 6 ++++++ travis/cache-python | 5 +++++ travis/download-homebrew | 13 +++++++++++++ travis/download-python | 10 ++++++++++ 5 files changed, 38 insertions(+), 3 deletions(-) create mode 100755 travis/cache-homebrew create mode 100755 travis/cache-python create mode 100755 travis/download-homebrew create mode 100755 travis/download-python diff --git a/.travis.yml b/.travis.yml index 84377f7..87cf3be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,18 +10,19 @@ script: before_install: - brew update -- brew install python@2 +- travis/download-homebrew +- export PATH="/usr/local/opt/python@2/bin:$PATH" +- travis/download-python - brew tap cartr/qt4 - brew tap-pin cartr/qt4 - brew install pyside install: -#- export PATH=/usr/local/bin:$PATH -- export PATH="/usr/local/opt/python@2/bin:$PATH" - export QT_PREFERRED_BINDING="PySide" - pip2 install twisted appnope pyobjc py2app before_deploy: +#- travis/cache-homebrew - pip2 install dmgbuild - mkdir dist_dmg - mv resources/macos_vlc_install.command resources/.macos_vlc_install.command diff --git a/travis/cache-homebrew b/travis/cache-homebrew new file mode 100755 index 0000000..d9dcc38 --- /dev/null +++ b/travis/cache-homebrew @@ -0,0 +1,6 @@ +#!/bin/sh + +mkdir travis-cache +if [ ! -f homebrew-cache.tar.gz ]; then + tar czf travis-cache/homebrew-cache.tar.gz --directory /usr/local/Cellar pkg-config readline sqlite gdbm makedepend openssl python@2 +fi diff --git a/travis/cache-python b/travis/cache-python new file mode 100755 index 0000000..f7d1e65 --- /dev/null +++ b/travis/cache-python @@ -0,0 +1,5 @@ +#!/bin/sh + +if [ ! -f python-cache.tar.gz ]; then + tar czf travis-cache/python-cache.tar.gz --directory /usr/local/lib/python2.7 site-packages +fi diff --git a/travis/download-homebrew b/travis/download-homebrew new file mode 100755 index 0000000..dd23237 --- /dev/null +++ b/travis/download-homebrew @@ -0,0 +1,13 @@ +#!/bin/sh + +curl -L "https://dl.bintray.com/alby128/Syncplay/homebrew-cache.tar.gz" -o homebrew-cache.tar.gz +if [ -f homebrew-cache.tar.gz ]; then + if ! tar tf homebrew-cache.tar.gz &>/dev/null; then + rm homebrew-cache.tar.gz + exit 0 + fi + tar zxf homebrew-cache.tar.gz --directory /usr/local/Cellar + brew unlink pkg-config + brew link pkg-config + brew link --force readline sqlite gdbm makedepend python@2 +fi diff --git a/travis/download-python b/travis/download-python new file mode 100755 index 0000000..870f07e --- /dev/null +++ b/travis/download-python @@ -0,0 +1,10 @@ +#!/bin/sh + +curl -L "https://dl.bintray.com/alby128/Syncplay/python-cache.tar.gz" -o python-cache.tar.gz +if [ -f python-cache.tar.gz ]; then + if ! tar tf python-cache.tar.gz &>/dev/null; then + rm python-cache.tar.gz + exit 0 + fi + tar zxf python-cache.tar.gz --directory /usr/local/lib/python2.7 +fi From 7c8b3d93fac9cc0bcb9caab884ce1536e37ed3b4 Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Thu, 8 Mar 2018 22:39:03 +0100 Subject: [PATCH 13/24] 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 14/24] 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 15/24] 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 16/24] 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 17/24] 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 18/24] 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: From 2382cf111bea086f91a2cf8c7de6657eed69fd12 Mon Sep 17 00:00:00 2001 From: Etoh Date: Thu, 22 Mar 2018 18:05:32 +0000 Subject: [PATCH 19/24] Move Syncplay.pl web links to HTTPS --- README.md | 4 ++-- buildPy2exe.py | 4 ++-- resources/lua/intf/syncplay.lua | 4 ++-- syncplay/__init__.py | 4 ++-- syncplay/constants.py | 6 +++--- syncplay/messages_de.py | 22 +++++++++++----------- syncplay/messages_en.py | 22 +++++++++++----------- syncplay/messages_it.py | 22 +++++++++++----------- syncplay/messages_ru.py | 16 ++++++++-------- syncplay/ui/GuiConfiguration.py | 2 +- syncplay/ui/gui.py | 8 ++++---- 11 files changed, 57 insertions(+), 57 deletions(-) diff --git a/README.md b/README.md index 173b7e2..a873676 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,10 @@ Solution to synchronize video playback across multiple instances of mpv, VLC, MPC-HC, MPC-BE and mplayer2 over the Internet. ## Official website -http://syncplay.pl +https://syncplay.pl ## Download -http://syncplay.pl/download/ +https://syncplay.pl/download/ ## What does it do diff --git a/buildPy2exe.py b/buildPy2exe.py index 7efc506..e78831f 100755 --- a/buildPy2exe.py +++ b/buildPy2exe.py @@ -439,7 +439,7 @@ NSIS_SCRIPT_TEMPLATE = r""" CreateShortCut "$$SMPROGRAMS\Syncplay\Syncplay.lnk" "$$INSTDIR\Syncplay.exe" "" CreateShortCut "$$SMPROGRAMS\Syncplay\Syncplay Server.lnk" "$$INSTDIR\syncplayServer.exe" "" CreateShortCut "$$SMPROGRAMS\Syncplay\Uninstall.lnk" "$$INSTDIR\Uninstall.exe" "" - WriteINIStr "$$SMPROGRAMS\Syncplay\SyncplayWebsite.url" "InternetShortcut" "URL" "http://syncplay.pl" + WriteINIStr "$$SMPROGRAMS\Syncplay\SyncplayWebsite.url" "InternetShortcut" "URL" "https://syncplay.pl" $${EndIf} $${If} $$CheckBox_DesktopShortcut_State == $${BST_CHECKED} @@ -496,7 +496,7 @@ NSIS_SCRIPT_TEMPLATE = r""" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayIcon" "$$INSTDIR\resources\icon.ico" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "Publisher" "Syncplay" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayVersion" "$version" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "URLInfoAbout" "http://syncplay.pl/" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "URLInfoAbout" "https://syncplay.pl/" WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "NoModify" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "NoRepair" 1 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "EstimatedSize" "$$SizeHex" diff --git a/resources/lua/intf/syncplay.lua b/resources/lua/intf/syncplay.lua index 4f3d07d..44e8828 100644 --- a/resources/lua/intf/syncplay.lua +++ b/resources/lua/intf/syncplay.lua @@ -4,14 +4,14 @@ Principal author: Etoh Other contributors: DerGenaue, jb, Pilotat - Project: http://syncplay.pl/ + Project: https://syncplay.pl/ Version: 0.3.4 Note: * This interface module is intended to be used in conjunction with Syncplay. * Syncplay provides synchronized video playback across multiple media player instances over the net. * Syncplay allows group of people who all have the same videos to watch them together wherever they are. - * Syncplay is available to download for free from http://syncplay.pl/ + * Syncplay is available to download for free from https://syncplay.pl/ --[==========================================================================[ diff --git a/syncplay/__init__.py b/syncplay/__init__.py index c66c5cc..304abd9 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,4 +1,4 @@ version = '1.5.2' milestone = 'Yoitsu' -release_number = '57' -projectURL = 'http://syncplay.pl/' +release_number = '58' +projectURL = 'https://syncplay.pl/' diff --git a/syncplay/constants.py b/syncplay/constants.py index d6a2d73..d9ee018 100644 --- a/syncplay/constants.py +++ b/syncplay/constants.py @@ -256,9 +256,9 @@ OSD_CHAT = "chat" CHATROOM_MODE = "Chatroom" SCROLLING_MODE = "Scrolling" -SYNCPLAY_UPDATE_URL = u"http://syncplay.pl/checkforupdate?{}" # Params -SYNCPLAY_DOWNLOAD_URL = "http://syncplay.pl/download/" -SYNCPLAY_PUBLIC_SERVER_LIST_URL = u"http://syncplay.pl/listpublicservers?{}" # Params +SYNCPLAY_UPDATE_URL = u"https://syncplay.pl/checkforupdate?{}" # Params +SYNCPLAY_DOWNLOAD_URL = "https://syncplay.pl/download/" +SYNCPLAY_PUBLIC_SERVER_LIST_URL = u"https://syncplay.pl/listpublicservers?{}" # Params DEFAULT_TRUSTED_DOMAINS = [u"youtube.com",u"youtu.be"] TRUSTABLE_WEB_PROTOCOLS = [u"http://www.",u"https://www.",u"http://",u"https://"] diff --git a/syncplay/messages_de.py b/syncplay/messages_de.py index b389a97..eac5b70 100644 --- a/syncplay/messages_de.py +++ b/syncplay/messages_de.py @@ -66,7 +66,7 @@ de = { "controller-userlist-userflag" : u"Raumleiter", "ready-userlist-userflag" : u"Bereit", - "update-check-failed-notification" : u"Konnte nicht automatisch prüfen, ob Syncplay {} aktuell ist. Soll http://syncplay.pl/ geöffnet werden, um manuell nach Updates zu suchen?", #Syncplay version + "update-check-failed-notification" : u"Konnte nicht automatisch prüfen, ob Syncplay {} aktuell ist. Soll https://syncplay.pl/ geöffnet werden, um manuell nach Updates zu suchen?", #Syncplay version "syncplay-uptodate-notification" : u"Syncplay ist aktuell", "syncplay-updateavailable-notification" : u"Eine neuere Version von Syncplay ist verfügbar. Soll die Download-Seite geöffnet werden?", @@ -94,9 +94,9 @@ de = { "promptforupdate-label" : u"Soll Syncplay regelmäßig nach Updates suchen?", "vlc-version-mismatch": u"This version of VLC does not support Syncplay. VLC {}+ supports Syncplay but VLC 3 does not. Please use an alternative media player.", # VLC min version # TODO: Translate - "vlc-interface-version-mismatch": u"Du nutzt Version {} des VLC-Syncplay Interface-Moduls, Syncplay benötigt aber mindestens Version {}. In der Syncplay-Anleitung unter http://syncplay.pl/guide/ [Englisch] findest du Details zur Installation des syncplay.lua-Skripts.", # VLC interface version, VLC interface min version - "vlc-interface-oldversion-warning": u"Warnung: Es ist eine alte Version des Syncplay Interface-Moduls für VLC im VLC-Verzeichnis installiert. In der Syncplay-Anleitung unter http://syncplay.pl/guide/ [Englisch] findest du Details zur Installation des syncplay.lua-Skripts.", - "vlc-interface-not-installed": u"Warnung: Es wurde kein Syncplay Interface-Modul für VLC im VLC-Verzeichnis gefunden. Daher wird, wenn du VLC 2.0 nutzt, die syncplay.lua die mit Syncplay mitgeliefert wurde, verwendet. Dies bedeutet allerdings, dass keine anderen Interface-Skripts und Erweiterungen geladen werden. In der Syncplay-Anleitung unter http://syncplay.pl/guide/ [Englisch] findest du Details zur Installation des syncplay.lua-Skripts.", + "vlc-interface-version-mismatch": u"Du nutzt Version {} des VLC-Syncplay Interface-Moduls, Syncplay benötigt aber mindestens Version {}. In der Syncplay-Anleitung unter https://syncplay.pl/guide/ [Englisch] findest du Details zur Installation des syncplay.lua-Skripts.", # VLC interface version, VLC interface min version + "vlc-interface-oldversion-warning": u"Warnung: Es ist eine alte Version des Syncplay Interface-Moduls für VLC im VLC-Verzeichnis installiert. In der Syncplay-Anleitung unter https://syncplay.pl/guide/ [Englisch] findest du Details zur Installation des syncplay.lua-Skripts.", + "vlc-interface-not-installed": u"Warnung: Es wurde kein Syncplay Interface-Modul für VLC im VLC-Verzeichnis gefunden. Daher wird, wenn du VLC 2.0 nutzt, die syncplay.lua die mit Syncplay mitgeliefert wurde, verwendet. Dies bedeutet allerdings, dass keine anderen Interface-Skripts und Erweiterungen geladen werden. In der Syncplay-Anleitung unter https://syncplay.pl/guide/ [Englisch] findest du Details zur Installation des syncplay.lua-Skripts.", "media-player-latency-warning": u"Warnung: Der Mediaplayer brauchte {} Sekunden zum Antworten. Wenn Probleme bei der Synchronisation auftreten, schließe bitte andere Anwendungen, um Ressourcen freizugeben. Sollte das nicht funktionieren, versuche es mit einem anderen Media-Player.", # Seconds to respond "mpv-unresponsive-error": u"MPV hat für {} Sekunden nicht geantwortet und scheint abgestürzt zu sein. Bitte starte Syncplay neu.", # Seconds to respond @@ -130,8 +130,8 @@ de = { "not-json-error" : u"Kein JSON-String\n", "hello-arguments-error" : u"Zu wenige Hello-Argumente\n", "version-mismatch-error" : u"Verschiedene Versionen auf Client und Server\n", - "vlc-failed-connection": u"Kann nicht zu VLC verbinden. Wenn du syncplay.lua nicht installiert hast, findest du auf http://syncplay.pl/LUA/ [Englisch] eine Anleitung.", - "vlc-failed-noscript": u"Laut VLC ist das syncplay.lua Interface-Skript nicht installiert. Auf http://syncplay.pl/LUA/ [Englisch] findest du eine Anleitung.", + "vlc-failed-connection": u"Kann nicht zu VLC verbinden. Wenn du syncplay.lua nicht installiert hast, findest du auf https://syncplay.pl/LUA/ [Englisch] eine Anleitung.", + "vlc-failed-noscript": u"Laut VLC ist das syncplay.lua Interface-Skript nicht installiert. Auf https://syncplay.pl/LUA/ [Englisch] findest du eine Anleitung.", "vlc-failed-versioncheck": u"Diese VLC-Version wird von Syncplay nicht unterstützt. Bitte nutze VLC 2.0", "vlc-failed-other" : u"Beim Laden des syncplay.lua Interface-Skripts durch VLC trat folgender Fehler auf: {}", # Syncplay Error @@ -262,7 +262,7 @@ de = { "run-label" : u"Syncplay starten", "storeandrun-label" : u"Konfiguration speichern und Syncplay starten", - "contact-label" : u"Du hast eine Idee, einen Bug gefunden oder möchtest Feedback geben? Sende eine E-Mail an dev@syncplay.pl, chatte auf dem #Syncplay IRC-Kanal auf irc.freenode.net oder öffne eine Fehlermeldung auf GitHub. Außerdem findest du auf http://syncplay.pl/ weitere Informationen, Hilfestellungen und Updates. OTE: Chat messages are not encrypted so do not use Syncplay to send sensitive information.", # TODO: Translate last sentence + "contact-label" : u"Du hast eine Idee, einen Bug gefunden oder möchtest Feedback geben? Sende eine E-Mail an dev@syncplay.pl, chatte auf dem #Syncplay IRC-Kanal auf irc.freenode.net oder öffne eine Fehlermeldung auf GitHub. Außerdem findest du auf https://syncplay.pl/ weitere Informationen, Hilfestellungen und Updates. OTE: Chat messages are not encrypted so do not use Syncplay to send sensitive information.", # TODO: Translate last sentence "joinroom-label" : u"Raum beitreten", "joinroom-menu-label" : u"Raum beitreten {}", #TODO: Might want to fix this @@ -316,7 +316,7 @@ de = { "about-dialog-dependencies": u"Dependencies", "setoffset-msgbox-label" : u"Offset einstellen", - "offsetinfo-msgbox-label" : u"Offset (siehe http://syncplay.pl/guide/ für eine Anleitung [Englisch]):", + "offsetinfo-msgbox-label" : u"Offset (siehe https://syncplay.pl/guide/ für eine Anleitung [Englisch]):", "promptforstreamurl-msgbox-label" : u"Stream URL öffnen", "promptforstreamurlinfo-msgbox-label" : u"Stream URL", @@ -328,10 +328,10 @@ de = { "trusteddomains-msgbox-label" : u"Domains it is okay to automatically switch to (one per line)", # TODO: Translate "createcontrolledroom-msgbox-label" : u"Zentral gesteuerten Raum erstellen", - "controlledroominfo-msgbox-label" : u"Namen des zentral gesteuerten Raums eingeben\r\n(siehe http://syncplay.pl/guide/ für eine Anleitung [Englisch]):", + "controlledroominfo-msgbox-label" : u"Namen des zentral gesteuerten Raums eingeben\r\n(siehe https://syncplay.pl/guide/ für eine Anleitung [Englisch]):", "identifyascontroller-msgbox-label" : u"Als Raumleiter identifizieren", - "identifyinfo-msgbox-label" : u"Passwort des zentral gesteuerten Raums eingeben\r\n(siehe http://syncplay.pl/guide/ für eine Anleitung [Englisch]):", + "identifyinfo-msgbox-label" : u"Passwort des zentral gesteuerten Raums eingeben\r\n(siehe https://syncplay.pl/guide/ für eine Anleitung [Englisch]):", "public-server-msgbox-label" : u"Einen öffentlichen Server für diese Sitzung auswählen", @@ -414,7 +414,7 @@ de = { "nofile-note" : u"(keine Datei wird abgespielt)", # Server messages to client - "new-syncplay-available-motd-message" : u" Du nutzt Syncplay Version {}, aber es gibt eine neuere Version auf http://syncplay.pl", # ClientVersion + "new-syncplay-available-motd-message" : u" Du nutzt Syncplay Version {}, aber es gibt eine neuere Version auf https://syncplay.pl", # ClientVersion # Server notifications "welcome-server-notification" : u"Willkommen zum Syncplay-Server, v. {0}", # version diff --git a/syncplay/messages_en.py b/syncplay/messages_en.py index ce216ed..2dc14a5 100644 --- a/syncplay/messages_en.py +++ b/syncplay/messages_en.py @@ -66,7 +66,7 @@ en = { "controller-userlist-userflag" : "Operator", "ready-userlist-userflag" : "Ready", - "update-check-failed-notification" : u"Could not automatically check whether Syncplay {} is up to date. Want to visit http://syncplay.pl/ to manually check for updates?", #Syncplay version + "update-check-failed-notification" : u"Could not automatically check whether Syncplay {} is up to date. Want to visit https://syncplay.pl/ to manually check for updates?", #Syncplay version "syncplay-uptodate-notification" : u"Syncplay is up to date", "syncplay-updateavailable-notification" : u"A new version of Syncplay is available. Do you want to visit the release page?", @@ -93,9 +93,9 @@ en = { "language-changed-msgbox-label" : "Language will be changed when you run Syncplay.", "promptforupdate-label" : u"Is it okay for Syncplay to automatically check for updates from time to time?", - "vlc-interface-version-mismatch": "You are running version {} of the Syncplay interface module for VLC, but Syncplay is designed to run with version {} and above. Please refer to the Syncplay User Guide at http://syncplay.pl/guide/ for instructions on how to install syncplay.lua.", # VLC interface version, VLC interface min version - "vlc-interface-oldversion-warning": "Warning: Syncplay detected that an old version version of the Syncplay interface module for VLC was installed in the VLC directory. Please refer to the Syncplay User Guide at http://syncplay.pl/guide/ for instructions on how to install syncplay.lua.", - "vlc-interface-not-installed": "Warning: The Syncplay interface module for VLC was not found in the VLC directory. As such, if you are running VLC 2.0 then VLC will use the syncplay.lua module contained within the Syncplay directory, but this will mean that other custom interface scripts and extensions will not work. Please refer to the Syncplay User Guide at http://syncplay.pl/guide/ for instructions on how to install syncplay.lua.", + "vlc-interface-version-mismatch": "You are running version {} of the Syncplay interface module for VLC, but Syncplay is designed to run with version {} and above. Please refer to the Syncplay User Guide at https://syncplay.pl/guide/ for instructions on how to install syncplay.lua.", # VLC interface version, VLC interface min version + "vlc-interface-oldversion-warning": "Warning: Syncplay detected that an old version version of the Syncplay interface module for VLC was installed in the VLC directory. Please refer to the Syncplay User Guide at https://syncplay.pl/guide/ for instructions on how to install syncplay.lua.", + "vlc-interface-not-installed": "Warning: The Syncplay interface module for VLC was not found in the VLC directory. As such, if you are running VLC 2.0 then VLC will use the syncplay.lua module contained within the Syncplay directory, but this will mean that other custom interface scripts and extensions will not work. Please refer to the Syncplay User Guide at https://syncplay.pl/guide/ for instructions on how to install syncplay.lua.", "media-player-latency-warning": u"Warning: The media player took {} seconds to respond. If you experience syncing issues then close applications to free up system resources, and if that doesn't work then try a different media player.", # Seconds to respond "mpv-unresponsive-error": u"mpv has not responded for {} seconds so appears to have malfunctioned. Please restart Syncplay.", # Seconds to respond @@ -129,8 +129,8 @@ en = { "not-json-error" : "Not a json encoded string\n", "hello-arguments-error" : "Not enough Hello arguments\n", # DO NOT TRANSLATE "version-mismatch-error" : "Mismatch between versions of client and server\n", - "vlc-failed-connection": "Failed to connect to VLC. If you have not installed syncplay.lua and are using the latest verion of VLC then please refer to http://syncplay.pl/LUA/ for instructions.", - "vlc-failed-noscript": "VLC has reported that the syncplay.lua interface script has not been installed. Please refer to http://syncplay.pl/LUA/ for instructions.", + "vlc-failed-connection": "Failed to connect to VLC. If you have not installed syncplay.lua and are using the latest verion of VLC then please refer to https://syncplay.pl/LUA/ for instructions.", + "vlc-failed-noscript": "VLC has reported that the syncplay.lua interface script has not been installed. Please refer to https://syncplay.pl/LUA/ for instructions.", "vlc-failed-versioncheck": "This version of VLC is not supported by Syncplay.", "feature-sharedPlaylists" : u"shared playlists", # used for not-supported-by-server-error @@ -267,7 +267,7 @@ en = { "run-label" : "Run Syncplay", "storeandrun-label" : "Store configuration and run Syncplay", - "contact-label" : "Feel free to e-mail dev@syncplay.pl, chat via the #Syncplay IRC channel on irc.freenode.net, raise an issue via GitHub, like us on Facebook, follow us on Twitter, or visit http://syncplay.pl/. NOTE: Chat messages are not encrypted so do not use Syncplay to send sensitive information.", + "contact-label" : "Feel free to e-mail dev@syncplay.pl, chat via the #Syncplay IRC channel on irc.freenode.net, raise an issue via GitHub, like us on Facebook, follow us on Twitter, or visit https://syncplay.pl/. NOTE: Chat messages are not encrypted so do not use Syncplay to send sensitive information.", "joinroom-label" : "Join room", "joinroom-menu-label" : u"Join room {}", @@ -321,7 +321,7 @@ en = { "about-dialog-dependencies": u"Dependencies", "setoffset-msgbox-label" : "Set offset", - "offsetinfo-msgbox-label" : "Offset (see http://syncplay.pl/guide/ for usage instructions):", + "offsetinfo-msgbox-label" : "Offset (see https://syncplay.pl/guide/ for usage instructions):", "promptforstreamurl-msgbox-label" : "Open media stream URL", "promptforstreamurlinfo-msgbox-label" : "Stream URL", @@ -333,10 +333,10 @@ en = { "trusteddomains-msgbox-label" : u"Domains it is okay to automatically switch to (one per line)", "createcontrolledroom-msgbox-label" : "Create managed room", - "controlledroominfo-msgbox-label" : "Enter name of managed room\r\n(see http://syncplay.pl/guide/ for usage instructions):", + "controlledroominfo-msgbox-label" : "Enter name of managed room\r\n(see https://syncplay.pl/guide/ for usage instructions):", "identifyascontroller-msgbox-label" : "Identify as room operator", - "identifyinfo-msgbox-label" : "Enter operator password for this room\r\n(see http://syncplay.pl/guide/ for usage instructions):", + "identifyinfo-msgbox-label" : "Enter operator password for this room\r\n(see https://syncplay.pl/guide/ for usage instructions):", "public-server-msgbox-label" : u"Select the public server for this viewing session", @@ -417,7 +417,7 @@ en = { "nofile-note" : "(No file being played)", # Server messages to client - "new-syncplay-available-motd-message" : " You are using Syncplay {} but a newer version is available from http://syncplay.pl ", # ClientVersion + "new-syncplay-available-motd-message" : " You are using Syncplay {} but a newer version is available from https://syncplay.pl ", # ClientVersion # Server notifications "welcome-server-notification" : "Welcome to Syncplay server, ver. {0}", # version diff --git a/syncplay/messages_it.py b/syncplay/messages_it.py index 22f6381..1ec49b7 100644 --- a/syncplay/messages_it.py +++ b/syncplay/messages_it.py @@ -66,7 +66,7 @@ it = { "controller-userlist-userflag" : u"Gestore", "ready-userlist-userflag" : u"Pronto", - "update-check-failed-notification" : u"Controllo automatico degli aggiornamenti di Syncplay {} fallito. Vuoi visitare http://syncplay.pl/ per verificare manualmente la presenza di aggiornamenti?", #Syncplay version + "update-check-failed-notification" : u"Controllo automatico degli aggiornamenti di Syncplay {} fallito. Vuoi visitare https://syncplay.pl/ per verificare manualmente la presenza di aggiornamenti?", #Syncplay version "syncplay-uptodate-notification" : u"Syncplay è aggiornato", "syncplay-updateavailable-notification" : u"Una nuova versione di Syncplay è disponibile. Vuoi visitare la pagina delle release?", @@ -93,10 +93,10 @@ it = { "language-changed-msgbox-label" : u"La lingua sarà cambiata quando avvierai Syncplay.", "promptforupdate-label" : u"Ti piacerebbe che, di tanto in tanto, Syncplay controllasse automaticamente la presenza di aggiornamenti?", - "vlc-interface-version-mismatch": u"Stai eseguendo la versione {} del modulo di interfaccia per VLC di Syncplay, ma Syncplay è progettato per essere utilizzato con la versione {} o superiore. Per favore, fai riferimento alla User Guide di Syncplay presso http://syncplay.pl/guide/ per istruzioni su come installare syncplay.lua.", # VLC interface version, VLC interface min version - "vlc-interface-oldversion-warning": u"Attenzione: Syncplay ha rilevato una vecchia versione del modulo di interfaccia per VLC di Syncplay installata nella cartella di VLC. Per favore, fai riferimento alla User Guide di Syncplay presso http://syncplay.pl/guide/ per istruzioni su come installare syncplay.lua.", + "vlc-interface-version-mismatch": u"Stai eseguendo la versione {} del modulo di interfaccia per VLC di Syncplay, ma Syncplay è progettato per essere utilizzato con la versione {} o superiore. Per favore, fai riferimento alla User Guide di Syncplay presso https://syncplay.pl/guide/ per istruzioni su come installare syncplay.lua.", # VLC interface version, VLC interface min version + "vlc-interface-oldversion-warning": u"Attenzione: Syncplay ha rilevato una vecchia versione del modulo di interfaccia per VLC di Syncplay installata nella cartella di VLC. Per favore, fai riferimento alla User Guide di Syncplay presso https://syncplay.pl/guide/ per istruzioni su come installare syncplay.lua.", "media-player-latency-warning": u"Attenzione: il media player ha impiegato {} secondi per rispondere. Se stai avendo problemi di sincronizzazione, chiudi delle applicazioni per liberare le risorse di sistema e, se ciò non dovesse avere alcun effetto, prova un altro media player.", # Seconds to respond - "vlc-interface-not-installed": u"Attenzione: il modulo di interfaccia per VLC di Syncplay non è stato trovato nella cartella di VLC. Se stai utilizzando VLC 2.0, VLC userà il modulo syncplay.lua contenuto nella cartella di Syncplay, ma ciò significa che altri custom script di interfaccia ed estensioni non funzioneranno. Per favore, fai riferimento alla User Guide di Syncplay presso http://syncplay.pl/guide/ per istruzioni su come installare syncplay.lua.", + "vlc-interface-not-installed": u"Attenzione: il modulo di interfaccia per VLC di Syncplay non è stato trovato nella cartella di VLC. Se stai utilizzando VLC 2.0, VLC userà il modulo syncplay.lua contenuto nella cartella di Syncplay, ma ciò significa che altri custom script di interfaccia ed estensioni non funzioneranno. Per favore, fai riferimento alla User Guide di Syncplay presso https://syncplay.pl/guide/ per istruzioni su come installare syncplay.lua.", "mpv-unresponsive-error": u"mpv non ha risposto per {} secondi, quindi sembra non funzionare correttamente. Per favore, riavvia Syncplay.", # Seconds to respond # Client prompts @@ -129,8 +129,8 @@ it = { "not-json-error" : u"Non è una stringa con codifica JSON\n", "hello-arguments-error" : "Not enough Hello arguments\n", # DO NOT TRANSLATE "version-mismatch-error" : u"La versione del client è diversa da quella del server\n", - "vlc-failed-connection": u"Impossibile collegarsi a VLC. Se non hai installato syncplay.lua e stai usando l'ultima versione di VLC, fai riferimento a http://syncplay.pl/LUA/ per istruzioni.", - "vlc-failed-noscript": u"VLC ha segnalato che lo script di interfaccia syncplay.lua non è stato installato. Per favore, fai riferimento a http://syncplay.pl/LUA/ per istruzioni.", + "vlc-failed-connection": u"Impossibile collegarsi a VLC. Se non hai installato syncplay.lua e stai usando l'ultima versione di VLC, fai riferimento a https://syncplay.pl/LUA/ per istruzioni.", + "vlc-failed-noscript": u"VLC ha segnalato che lo script di interfaccia syncplay.lua non è stato installato. Per favore, fai riferimento a https://syncplay.pl/LUA/ per istruzioni.", "vlc-failed-versioncheck": u"Questa versione di VLC non è supportata da Syncplay.", "feature-sharedPlaylists" : u"playlist condivise", # used for not-supported-by-server-error @@ -268,7 +268,7 @@ it = { "run-label" : u"Avvia Syncplay", "storeandrun-label" : u"Salva la configurazione e avvia Syncplay", - "contact-label" : u"Sentiti libero di inviare un'e-mail a dev@syncplay.pl, chattare tramite il canale IRC #Syncplay su irc.freenode.net, segnalare un problema su GitHub, lasciare un like sulla nostra pagina Facebook, seguirci su Twitter, o visitare http://syncplay.pl/. NOTA: i messaggi di chat non sono cifrati, quindi non usare Syncplay per inviare dati sensibili.", + "contact-label" : u"Sentiti libero di inviare un'e-mail a dev@syncplay.pl, chattare tramite il canale IRC #Syncplay su irc.freenode.net, segnalare un problema su GitHub, lasciare un like sulla nostra pagina Facebook, seguirci su Twitter, o visitare https://syncplay.pl/. NOTA: i messaggi di chat non sono cifrati, quindi non usare Syncplay per inviare dati sensibili.", "joinroom-label" : u"Entra nella stanza", "joinroom-menu-label" : u"Entra nella stanza {}", @@ -322,7 +322,7 @@ it = { "about-dialog-dependencies": u"Dipendenze", "setoffset-msgbox-label" : u"Imposta offset", - "offsetinfo-msgbox-label" : u"Offset (vedi http://syncplay.pl/guide/ per istruzioni):", + "offsetinfo-msgbox-label" : u"Offset (vedi https://syncplay.pl/guide/ per istruzioni):", "promptforstreamurl-msgbox-label" : u"Apri URL", "promptforstreamurlinfo-msgbox-label" : u"Indirizzo di rete", @@ -334,10 +334,10 @@ it = { "trusteddomains-msgbox-label" : u"Domini a cui è lecito passare automaticamente (uno per riga)", "createcontrolledroom-msgbox-label" : u"Crea stanza gestita", - "controlledroominfo-msgbox-label" : u"Inserisci il nome della stanza gestita\r\n(vedi http://syncplay.pl/guide/ per istruzioni):", + "controlledroominfo-msgbox-label" : u"Inserisci il nome della stanza gestita\r\n(vedi https://syncplay.pl/guide/ per istruzioni):", "identifyascontroller-msgbox-label" : u"Identificati come operatore della stanza", - "identifyinfo-msgbox-label" : u"Inserisci la password dell'operatore per questa stanza\r\n(vedi http://syncplay.pl/guide/ per istruzioni):", + "identifyinfo-msgbox-label" : u"Inserisci la password dell'operatore per questa stanza\r\n(vedi https://syncplay.pl/guide/ per istruzioni):", "public-server-msgbox-label" : u"Seleziona il server pubblico per questa sessione", @@ -418,7 +418,7 @@ it = { "nofile-note" : u"(Nessun file in riproduzione)", # Server messages to client - "new-syncplay-available-motd-message" : u" Stai usando Syncplay {} ma una nuova versione è disponibile presso http://syncplay.pl ", # ClientVersion + "new-syncplay-available-motd-message" : u" Stai usando Syncplay {} ma una nuova versione è disponibile presso https://syncplay.pl ", # ClientVersion # Server notifications "welcome-server-notification" : u"Benvenuto nel server Syncplay, ver. {0}", # version diff --git a/syncplay/messages_ru.py b/syncplay/messages_ru.py index f32e73f..c235946 100644 --- a/syncplay/messages_ru.py +++ b/syncplay/messages_ru.py @@ -66,7 +66,7 @@ ru = { "controller-userlist-userflag" : u"Оператор", "ready-userlist-userflag" : u"Готов", - "update-check-failed-notification" : u"Невозможно автоматически проверить, что версия Syncplay {} все еще актуальна. Хотите зайти на http://syncplay.pl/ и вручную проверить наличие обновлений?", + "update-check-failed-notification" : u"Невозможно автоматически проверить, что версия Syncplay {} все еще актуальна. Хотите зайти на https://syncplay.pl/ и вручную проверить наличие обновлений?", "syncplay-uptodate-notification" : u"У вас последняя версия Syncplay", "syncplay-updateavailable-notification" : u"Доступна новая версия Syncplay. Хотите открыть страницу релиза?", @@ -94,9 +94,9 @@ ru = { "promptforupdate-label" : u"Вы не против, если Syncplay будет автоматически изредка проверять наличие обновлений?", "vlc-version-mismatch": u"Syncplay не поддерживает данную версию VLC. Syncplay поддерживает VLC {}+, но не VLC 3. Используйте другой проигрыватель.", # VLC min version - "vlc-interface-version-mismatch" : u"Вы используете модуль интерфейса Syncplay устаревшей версии {} для VLC. К сожалению, Syncplay способен работать с версией {} и выше. Пожалуйста, обратитесь к Руководству Пользователя Syncplay (http://syncplay.pl/guide/) за инструкциями о том, как установить syncplay.lua.", # VLC interface version, VLC interface min version - "vlc-interface-oldversion-warning" : u"Внимание: Syncplay обнаружил, что старая версия модуля интерфейса Syncplay для VLC уже установлена в директорию VLC. Пожалуйста, обратитесь к Руководству Пользователя Syncplay (http://syncplay.pl/guide/) за инструкциями о том, как установить syncplay.lua.", - "vlc-interface-not-installed" : u"Внимание: Модуль интерфейса Syncplay для VLC не обнаружен в директории VLC. По существу, если Вы используете VLC 2.0, то VLC будет использовать модуль syncplay.lua из директории Syncplay, но в таком случае другие пользовательские скрипты и расширения интерфейса не будут работать. Пожалуйста, обратитесь к Руководству Пользователя Syncplay (http://syncplay.pl/guide/) за инструкциями о том, как установить syncplay.lua.", + "vlc-interface-version-mismatch" : u"Вы используете модуль интерфейса Syncplay устаревшей версии {} для VLC. К сожалению, Syncplay способен работать с версией {} и выше. Пожалуйста, обратитесь к Руководству Пользователя Syncplay (https://syncplay.pl/guide/) за инструкциями о том, как установить syncplay.lua.", # VLC interface version, VLC interface min version + "vlc-interface-oldversion-warning" : u"Внимание: Syncplay обнаружил, что старая версия модуля интерфейса Syncplay для VLC уже установлена в директорию VLC. Пожалуйста, обратитесь к Руководству Пользователя Syncplay (https://syncplay.pl/guide/) за инструкциями о том, как установить syncplay.lua.", + "vlc-interface-not-installed" : u"Внимание: Модуль интерфейса Syncplay для VLC не обнаружен в директории VLC. По существу, если Вы используете VLC 2.0, то VLC будет использовать модуль syncplay.lua из директории Syncplay, но в таком случае другие пользовательские скрипты и расширения интерфейса не будут работать. Пожалуйста, обратитесь к Руководству Пользователя Syncplay (https://syncplay.pl/guide/) за инструкциями о том, как установить syncplay.lua.", "media-player-latency-warning": u"Внимание: У Вашего проигрывателя слишком большой отклик ({} секунд). Если Вы замечаете проблемы с синхронизацией, то закройте ресурсоемкие приложения. Если это не помогло - попробуйте другой проигрыватель.", # Seconds to respond "mpv-unresponsive-error": u"mpv не отвечает {} секунд, по-видимому, произошел сбой. Пожалуйста, перезапустите Syncplay.", # Seconds to respond @@ -130,8 +130,8 @@ ru = { "not-json-error" : u"Не является закодированной json-строкой\n", "hello-arguments-error" : u"Не хватает аргументов Hello\n", "version-mismatch-error" : u"Конфликт версий между клиентом и сервером\n", - "vlc-failed-connection" : u"Ошибка подключения к VLC. Если у Вас не установлен syncplay.lua, то обратитесь к http://syncplay.pl/LUA/ за инструкциями.", - "vlc-failed-noscript" : u"VLC сообщает, что скрипт интерфейса syncplay.lua не установлен. Пожалуйста, обратитесь к http://syncplay.pl/LUA/ за инструкциями.", + "vlc-failed-connection" : u"Ошибка подключения к VLC. Если у Вас не установлен syncplay.lua, то обратитесь к https://syncplay.pl/LUA/ за инструкциями.", + "vlc-failed-noscript" : u"VLC сообщает, что скрипт интерфейса syncplay.lua не установлен. Пожалуйста, обратитесь к https://syncplay.pl/LUA/ за инструкциями.", "vlc-failed-versioncheck" : u"Данная версия VLC не поддерживается Syncplay. Пожалуйста, используйте VLC версии 2 или выше.", "vlc-failed-other" : u"Во время загрузки скрипта интерфейса syncplay.lua в VLC произошла следующая ошибка: {}", # Syncplay Error @@ -271,7 +271,7 @@ ru = { "run-label" : u"Запустить", "storeandrun-label" : u"Сохранить и запустить", - "contact-label" : u"Есть идея, нашли ошибку или хотите оставить отзыв? Пишите на dev@syncplay.pl, в IRC канал #Syncplay на irc.freenode.net или задавайте вопросы через GitHub. Кроме того, заходите на www.syncplay.pl за инорфмацией, помощью и обновлениями! NOTE: Chat messages are not encrypted so do not use Syncplay to send sensitive information.", # TODO: Translate last sentence + "contact-label" : u"Есть идея, нашли ошибку или хотите оставить отзыв? Пишите на dev@syncplay.pl, в IRC канал #Syncplay на irc.freenode.net или задавайте вопросы через GitHub. Кроме того, заходите на www.syncplay.pl за инорфмацией, помощью и обновлениями! NOTE: Chat messages are not encrypted so do not use Syncplay to send sensitive information.", # TODO: Translate last sentence "joinroom-label" : u"Зайти в комнату", "joinroom-menu-label" : u"Зайти в комнату {}", @@ -420,7 +420,7 @@ ru = { "nofile-note" : u"(ничего)", # Server messages to client - "new-syncplay-available-motd-message" : u" Вы используете Syncplay версии {}. Доступна более новая версия на http://syncplay.pl/ . ", # ClientVersion + "new-syncplay-available-motd-message" : u" Вы используете Syncplay версии {}. Доступна более новая версия на https://syncplay.pl/ . ", # ClientVersion # Server notifications "welcome-server-notification" : u"Добро пожаловать на сервер Syncplay версии {0}", # version diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index fd6bcd3..7a94147 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -132,7 +132,7 @@ class ConfigDialog(QtWidgets.QDialog): self.setFixedWidth(self.minimumSizeHint().width()) def openHelp(self): - self.QtGui.QDesktopServices.openUrl(QUrl("http://syncplay.pl/guide/client/")) + self.QtGui.QDesktopServices.openUrl(QUrl("https://syncplay.pl/guide/client/")) def safenormcaseandpath(self, path): if utils.isURL(path): diff --git a/syncplay/ui/gui.py b/syncplay/ui/gui.py index e989756..52b965f 100755 --- a/syncplay/ui/gui.py +++ b/syncplay/ui/gui.py @@ -111,7 +111,7 @@ class AboutDialog(QtWidgets.QDialog): self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) nameLabel = QtWidgets.QLabel("
Syncplay
") nameLabel.setFont(QtGui.QFont("Helvetica", 20)) - linkLabel = QtWidgets.QLabel("
syncplay.pl
") + linkLabel = QtWidgets.QLabel("
syncplay.pl
") linkLabel.setOpenExternalLinks(True) versionLabel = QtWidgets.QLabel("
" + getMessage("about-dialog-release").format(version, release_number, __binding__) + "
") licenseLabel = QtWidgets.QLabel("

Copyright © 2017 Syncplay

" + getMessage("about-dialog-license-text") + "

") @@ -1120,11 +1120,11 @@ class MainWindow(QtWidgets.QMainWindow): def openUserGuide(self): if isLinux(): - self.QtGui.QDesktopServices.openUrl(QUrl("http://syncplay.pl/guide/linux/")) + self.QtGui.QDesktopServices.openUrl(QUrl("https://syncplay.pl/guide/linux/")) elif isWindows(): - self.QtGui.QDesktopServices.openUrl(QUrl("http://syncplay.pl/guide/windows/")) + self.QtGui.QDesktopServices.openUrl(QUrl("https://syncplay.pl/guide/windows/")) else: - self.QtGui.QDesktopServices.openUrl(QUrl("http://syncplay.pl/guide/")) + self.QtGui.QDesktopServices.openUrl(QUrl("https://syncplay.pl/guide/")) def drop(self): self.close() From 548189b58457cc6c3b745da54e5970dc096ceb24 Mon Sep 17 00:00:00 2001 From: Etoh Date: Thu, 5 Apr 2018 19:22:56 +0100 Subject: [PATCH 20/24] Include SSL in .exe for HTTPS --- buildPy2exe.py | 2 +- syncplay/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildPy2exe.py b/buildPy2exe.py index e78831f..310f765 100755 --- a/buildPy2exe.py +++ b/buildPy2exe.py @@ -722,7 +722,7 @@ info = dict( 'dist_dir': OUT_DIR, 'packages': 'PySide.QtUiTools', 'includes': 'twisted, sys, encodings, datetime, os, time, math, PySide, liburl, ast, unicodedata', - 'excludes': 'venv, _ssl, doctest, pdb, unittest, win32clipboard, win32file, win32pdh, win32security, win32trace, win32ui, winxpgui, win32pipe, win32process, Tkinter', + 'excludes': 'venv, doctest, pdb, unittest, win32clipboard, win32file, win32pdh, win32security, win32trace, win32ui, winxpgui, win32pipe, win32process, Tkinter', 'dll_excludes': 'msvcr71.dll, MSVCP90.dll, POWRPROF.dll', 'optimize': 2, 'compressed': 1 diff --git a/syncplay/__init__.py b/syncplay/__init__.py index 304abd9..d727352 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,4 +1,4 @@ version = '1.5.2' milestone = 'Yoitsu' -release_number = '58' +release_number = '59' projectURL = 'https://syncplay.pl/' From 40be7d51919f6908b3a3c096b9048e2f96481705 Mon Sep 17 00:00:00 2001 From: Alberto Sottile Date: Sat, 7 Apr 2018 21:20:31 +0100 Subject: [PATCH 21/24] Upver to 1.5.3/60 --- syncplay/__init__.py | 4 ++-- syncplay/constants.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/syncplay/__init__.py b/syncplay/__init__.py index d727352..53e985a 100644 --- a/syncplay/__init__.py +++ b/syncplay/__init__.py @@ -1,4 +1,4 @@ -version = '1.5.2' +version = '1.5.3' milestone = 'Yoitsu' -release_number = '59' +release_number = '60' projectURL = 'https://syncplay.pl/' diff --git a/syncplay/constants.py b/syncplay/constants.py index d9ee018..122b491 100644 --- a/syncplay/constants.py +++ b/syncplay/constants.py @@ -10,7 +10,7 @@ UI_TIME_FORMAT = "[%X] " CONFIG_NAMES = [".syncplay", "syncplay.ini"] #Syncplay searches first to last DEFAULT_CONFIG_NAME_WINDOWS = "syncplay.ini" DEFAULT_CONFIG_NAME_LINUX = ".syncplay" -RECENT_CLIENT_THRESHOLD = "1.5.2" #This and higher considered 'recent' clients (no warnings) +RECENT_CLIENT_THRESHOLD = "1.5.3" #This and higher considered 'recent' clients (no warnings) WARN_OLD_CLIENTS = True #Use MOTD to inform old clients to upgrade LIST_RELATIVE_CONFIGS = True # Print list of relative configs loaded SHOW_CONTACT_INFO = True # Displays dev contact details below list in GUI From 130b348d6a3da630c8e54278159b221cb8f7663f Mon Sep 17 00:00:00 2001 From: albertosottile Date: Sat, 7 Apr 2018 23:02:55 +0200 Subject: [PATCH 22/24] Fixes deploy phase on Travis --- .travis.yml | 1 + bintray.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 87cf3be..631d11f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,6 +32,7 @@ before_deploy: - dmgbuild -s appdmg.py "Syncplay" dist_dmg/Syncplay_${VER}_macOS.dmg deploy: + skip_cleanup: true on: master provider: bintray file: "bintray.json" diff --git a/bintray.json b/bintray.json index 6ecef62..0583eee 100644 --- a/bintray.json +++ b/bintray.json @@ -6,7 +6,7 @@ }, "version": { - "name": "v1.5.1" + "name": "v1.5.3" }, "files": From c7402856c7e88a1fefd51eab88a691cc6fdee034 Mon Sep 17 00:00:00 2001 From: Etoh Date: Sun, 8 Apr 2018 16:08:12 +0100 Subject: [PATCH 23/24] Hopefully fix update check bug when changing Python versions (#170) --- syncplay/ui/GuiConfiguration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index 7a94147..5a092f0 100755 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -303,7 +303,7 @@ class ConfigDialog(QtWidgets.QDialog): else: self.config["lastCheckedForUpdates"] = self.lastCheckedForUpdates.toString("yyyy-MM-d HH:mm:ss.z") except: - self.lastCheckedForUpdates = None + self.config["lastCheckedForUpdates"] = None def loadSavedPublicServerList(self): settings = QSettings("Syncplay", "Interface") From b7e73c5c1e25523b28c8e39a73ed6dfe6b52839e Mon Sep 17 00:00:00 2001 From: albertosottile Date: Tue, 10 Apr 2018 21:31:51 +0200 Subject: [PATCH 24/24] Fixes issue #181 --- buildPy2app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildPy2app.py b/buildPy2app.py index a68338b..f923626 100644 --- a/buildPy2app.py +++ b/buildPy2app.py @@ -14,7 +14,7 @@ cmdlist = {} APP = ['syncplayClient.py'] DATA_FILES = [ - ('resources', glob('resources/*.png') + glob('resources/*.rtf')), + ('resources', glob('resources/*.png') + glob('resources/*.rtf') + glob('resources/*.lua')), ] OPTIONS = { 'iconfile':'resources/icon.icns',