Move from @requireMinServerVersion to @requireServerVersion and apply to sendChat

This commit is contained in:
Etoh 2017-04-16 12:11:35 +01:00
parent 7ca76620dd
commit cae66b7a58
4 changed files with 40 additions and 20 deletions

View File

@ -585,11 +585,6 @@ class SyncplayClient(object):
self.userlist.currentUser.room = roomName
if resetAutoplay:
self.resetAutoPlayState()
def sendChat(self,message):
if self._protocol and self._protocol.logged:
message = utils.truncateText(message,constants.MAX_CHAT_MESSAGE_LENGTH)
self._protocol.sendChatMessage(message)
def sendRoom(self):
room = self.userlist.currentUser.room
@ -685,19 +680,27 @@ class SyncplayClient(object):
if promptForAction:
self.ui.promptFor(getMessage("enter-to-exit-prompt"))
def requireMinServerVersion(minVersion):
def requireMinVersionDecorator(f):
def requireServerFeature(featureRequired):
def requireServerFeatureDecorator(f):
@wraps(f)
def wrapper(self, *args, **kwds):
if not utils.meetsMinVersion(self.serverVersion,minVersion):
if self.serverVersion != "0.0.0":
self.ui.showErrorMessage(getMessage("not-supported-by-server-error").format(minVersion, self.serverVersion))
else:
self.ui.showDebugMessage("Tried to check server version too soon (threshold: {})".format(minVersion))
if self.serverVersion == "0.0.0":
self.ui.showDebugMessage(
"Tried to check server version too soon (testing support for: {})".format(featureRequired))
return None
if not self.serverFeatures.has_key(featureRequired) or not self.serverFeatures[featureRequired]:
featureName = getMessage(u"feature-{}".format(featureRequired))
self.ui.showErrorMessage(getMessage("not-supported-by-server-error").format(featureName))
return
return f(self, *args, **kwds)
return wrapper
return requireMinVersionDecorator
return requireServerFeatureDecorator
@requireServerFeature("chat")
def sendChat(self,message):
if self._protocol and self._protocol.logged:
message = utils.truncateText(message,constants.MAX_CHAT_MESSAGE_LENGTH)
self._protocol.sendChatMessage(message)
def changePlaylistEnabledState(self, newState):
oldState = self.sharedPlaylistIsEnabled()
@ -777,11 +780,11 @@ class SyncplayClient(object):
self.ui.updateAutoPlayState(False)
self.stopAutoplayCountdown()
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
@requireServerFeature("readiness")
def toggleReady(self, manuallyInitiated=True):
self._protocol.setReady(not self.userlist.currentUser.isReady(), manuallyInitiated)
@requireMinServerVersion(constants.USER_READY_MIN_VERSION)
@requireServerFeature("readiness")
def changeReadyState(self, newState, manuallyInitiated=True):
oldState = self.userlist.currentUser.isReady()
if newState != oldState:
@ -796,7 +799,7 @@ class SyncplayClient(object):
if oldReadyState != isReady:
self._warnings.checkReadyStates()
@requireMinServerVersion(constants.CONTROLLED_ROOMS_MIN_VERSION)
@requireServerFeature("managedRooms")
def createControlledRoom(self, roomName):
controlPassword = utils.RandomStringGenerator.generate_room_password()
self.lastControlPasswordAttempt = controlPassword
@ -815,7 +818,7 @@ class SyncplayClient(object):
else:
return ""
@requireMinServerVersion(constants.CONTROLLED_ROOMS_MIN_VERSION)
@requireServerFeature("managedRooms")
def identifyAsController(self, controlPassword):
controlPassword = self.stripControlPassword(controlPassword)
self.ui.showMessage(getMessage("identifying-as-controller-notification").format(controlPassword))

View File

@ -134,7 +134,13 @@ de = {
"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
"not-supported-by-server-error" : u"Dieses Feature wird vom Server nicht unterstützt. Es wird ein Server mit Syncplay Version {}+ benötigt, aktuell verwendet wird jedoch Version {}.", #minVersion, serverVersion
"feature-sharedPlaylists": u"shared playlists", # used for not-supported-by-server-error # TODO: Translate
"feature-chat": u"chat", # used for not-supported-by-server-error # TODO: Translate
"feature-readiness": u"readiness", # used for not-supported-by-server-error # TODO: Translate
"feature-managedRooms": u"managed rooms", # used for not-supported-by-server-error # TODO: Translate
"not-supported-by-server-error": u"The {} feature is not supported by this server..", # feature # TODO: Translate
#OLD TRANSLATION: "not-supported-by-server-error" : u"Dieses Feature wird vom Server nicht unterstützt. Es wird ein Server mit Syncplay Version {}+ benötigt, aktuell verwendet wird jedoch Version {}.", #minVersion, serverVersion
"shared-playlists-not-supported-by-server-error" : "The shared playlists feature may not be supported by the server. To ensure that it works correctly requires a server running Syncplay {}+, but the server is running Syncplay {}.", #minVersion, serverVersion # TODO: Translate
"shared-playlists-disabled-by-server-error" : "The shared playlist feature has been disabled in the server configuration. To use this feature you will need to connect to a different server.", # TODO: Translate

View File

@ -132,7 +132,12 @@ en = {
"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-versioncheck": "This version of VLC is not supported by Syncplay.",
"not-supported-by-server-error" : "This feature is not supported by the server. The feature requires a server running Syncplay {}+, but the server is running Syncplay {}.", #minVersion, serverVersion
"feature-sharedPlaylists" : u"shared playlists", # used for not-supported-by-server-error
"feature-chat" : u"chat", # used for not-supported-by-server-error
"feature-readiness" : u"readiness", # used for not-supported-by-server-error
"feature-managedRooms" : u"managed rooms", # used for not-supported-by-server-error
"not-supported-by-server-error" : u"The {} feature is not supported by this server..", #feature
"shared-playlists-not-supported-by-server-error" : "The shared playlists feature may not be supported by the server. To ensure that it works correctly requires a server running Syncplay {}+, but the server is running Syncplay {}.", #minVersion, serverVersion
"shared-playlists-disabled-by-server-error" : "The shared playlist feature has been disabled in the server configuration. To use this feature you will need to connect to a different server.",

View File

@ -134,7 +134,13 @@ ru = {
"vlc-failed-versioncheck" : u"Данная версия VLC не поддерживается Syncplay. Пожалуйста, используйте VLC версии 2 или выше.",
"vlc-failed-other" : u"Во время загрузки скрипта интерфейса syncplay.lua в VLC произошла следующая ошибка: {}", # Syncplay Error
"not-supported-by-server-error" : u"Эта возможность не поддерживается сервером. Требуется сервер Syncplay {}+, вы подключены к серверу Syncplay {}.", #minVersion, serverVersion
"feature-sharedPlaylists": u"shared playlists", # used for not-supported-by-server-error # TODO: Translate
"feature-chat": u"chat", # used for not-supported-by-server-error # TODO: Translate
"feature-readiness": u"readiness", # used for not-supported-by-server-error # TODO: Translate
"feature-managedRooms": u"managed rooms", # used for not-supported-by-server-error # TODO: Translate
"not-supported-by-server-error": u"The {} feature is not supported by this server..", # feature # TODO: Translate
#OLD TRANSLATION: "not-supported-by-server-error" : u"Эта возможность не поддерживается сервером. Требуется сервер Syncplay {}+, вы подключены к серверу Syncplay {}.", #minVersion, serverVersion
"shared-playlists-not-supported-by-server-error" : u"Общие списки воспроизведения могут не поддерживаться сервером. Для корректной работы требуется сервер Syncplay {}+, вы подключены к серверу Syncplay {}.", #minVersion, serverVersion
"shared-playlists-disabled-by-server-error" : "The shared playlist feature has been disabled in the server configuration. To use this feature you will need to connect to a different server.", # TODO: Translate