From bca8a2c941d8df7d151f0d4fbcb430cf99984777 Mon Sep 17 00:00:00 2001 From: powerjungle Date: Sat, 12 Feb 2022 15:26:48 +0100 Subject: [PATCH] Fixed server argument max-username-length not working --- syncplay/server.py | 6 +++--- syncplay/utils.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/syncplay/server.py b/syncplay/server.py index 149be12..4c3e2d5 100755 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -125,7 +125,7 @@ class SyncFactory(Factory): def addWatcher(self, watcherProtocol, username, roomName): roomName = truncateText(roomName, constants.MAX_ROOM_NAME_LENGTH) - username = self._roomManager.findFreeUsername(username) + username = self._roomManager.findFreeUsername(username, self.maxUsernameLength) watcher = Watcher(self, watcherProtocol, username) self.setWatcherRoom(watcher, roomName, asJoin=True) @@ -488,8 +488,8 @@ class RoomManager(object): self._roomsDbHandle.deleteRoom(room.getName()) del self._rooms[room.getName()] - def findFreeUsername(self, username): - username = truncateText(username, constants.MAX_USERNAME_LENGTH) + def findFreeUsername(self, username, maxUsernameLength=constants.MAX_USERNAME_LENGTH): + username = truncateText(username, maxUsernameLength) allnames = [] for room in self._rooms.values(): for watcher in room.getWatchers(): diff --git a/syncplay/utils.py b/syncplay/utils.py index 28a9d01..77c4f46 100755 --- a/syncplay/utils.py +++ b/syncplay/utils.py @@ -232,8 +232,9 @@ def truncateText(unicodeText, maxLength): unicodeText = unicodeText.decode('utf-8') except: pass + try: - return(str(unicodeText.encode("utf-8"), "utf-8", errors="ignore")[:maxLength]) + return str(unicodeText.encode("utf-8"), "utf-8", errors="ignore")[:maxLength] except: pass return ""