(self, featureList)
| 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: |
no test coverage detected