MCPcopy Index your code
hub / github.com/Syncplay/syncplay / checkForFeatureSupport

Method checkForFeatureSupport

syncplay/client.py:662–701  ·  view source on GitHub ↗
(self, featureList)

Source from the content-addressed store, hash-verified

660 self._player.setFeatures(self.serverFeatures)
661
662 def checkForFeatureSupport(self, featureList):
663 self.serverFeatures = {
664 "featureList": utils.meetsMinVersion(self.serverVersion, constants.FEATURE_LIST_MIN_VERSION),
665 "sharedPlaylists": utils.meetsMinVersion(self.serverVersion, constants.SHARED_PLAYLIST_MIN_VERSION),
666 "chat": utils.meetsMinVersion(self.serverVersion, constants.CHAT_MIN_VERSION),
667 "readiness": utils.meetsMinVersion(self.serverVersion, constants.USER_READY_MIN_VERSION),
668 "managedRooms": utils.meetsMinVersion(self.serverVersion, constants.CONTROLLED_ROOMS_MIN_VERSION),
669 "persistentRooms": False,
670 "maxChatMessageLength": constants.FALLBACK_MAX_CHAT_MESSAGE_LENGTH,
671 "maxUsernameLength": constants.FALLBACK_MAX_USERNAME_LENGTH,
672 "maxRoomNameLength": constants.FALLBACK_MAX_ROOM_NAME_LENGTH,
673 "maxFilenameLength": constants.FALLBACK_MAX_FILENAME_LENGTH,
674 "setOthersReadiness": utils.meetsMinVersion(self.serverVersion, constants.SET_OTHERS_READINESS_MIN_VERSION)
675 }
676 if featureList:
677 self.serverFeatures.update(featureList)
678 if not utils.meetsMinVersion(self.serverVersion, constants.SHARED_PLAYLIST_MIN_VERSION):
679 self.ui.showErrorMessage(getMessage("shared-playlists-not-supported-by-server-error").format(constants.SHARED_PLAYLIST_MIN_VERSION, self.serverVersion))
680 elif not self.serverFeatures["sharedPlaylists"]:
681 self.ui.showErrorMessage(getMessage("shared-playlists-disabled-by-server-error"))
682 # TODO: Have messages for all unsupported & disabled features
683 if self.serverFeatures["maxChatMessageLength"] is not None:
684 constants.MAX_CHAT_MESSAGE_LENGTH = self.serverFeatures["maxChatMessageLength"]
685 if self.serverFeatures["maxUsernameLength"] is not None:
686 constants.MAX_USERNAME_LENGTH = self.serverFeatures["maxUsernameLength"]
687 if self.serverFeatures["maxRoomNameLength"] is not None:
688 constants.MAX_ROOM_NAME_LENGTH = self.serverFeatures["maxRoomNameLength"]
689 if self.serverFeatures["maxFilenameLength"] is not None:
690 constants.MAX_FILENAME_LENGTH = self.serverFeatures["maxFilenameLength"]
691 constants.MPV_SYNCPLAYINTF_CONSTANTS_TO_SEND = [
692 "MaxChatMessageLength={}".format(constants.MAX_CHAT_MESSAGE_LENGTH),
693 "inputPromptStartCharacter={}".format(constants.MPV_INPUT_PROMPT_START_CHARACTER),
694 "inputPromptEndCharacter={}".format(constants.MPV_INPUT_PROMPT_END_CHARACTER),
695 "backslashSubstituteCharacter={}".format(constants.MPV_INPUT_BACKSLASH_SUBSTITUTE_CHARACTER)]
696 self.ui.setFeatures(self.serverFeatures)
697 if self._player:
698 self.sendFeaturesToPlayer()
699 else:
700 # Player might not have been loaded if connecting to localhost (#545)
701 self.addPlayerReadyCallback(lambda x: self.sendFeaturesToPlayer())
702
703 def getSanitizedCurrentUserFile(self):
704 if self.userlist.currentUser.file:

Callers 1

setServerVersionMethod · 0.95

Calls 6

sendFeaturesToPlayerMethod · 0.95
getMessageFunction · 0.90
meetsMinVersionMethod · 0.80
showErrorMessageMethod · 0.45
setFeaturesMethod · 0.45

Tested by

no test coverage detected