From e88863e2ac2ec5d6aa1285be2776b6e47141961b Mon Sep 17 00:00:00 2001 From: Uriziel Date: Sun, 12 Oct 2014 22:07:01 +0200 Subject: [PATCH] Added sending the "controller" status with a list --- syncplay/client.py | 4 +++- syncplay/protocols.py | 9 +++++++-- syncplay/server.py | 4 +++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/syncplay/client.py b/syncplay/client.py index 6110ffd..2833fe0 100644 --- a/syncplay/client.py +++ b/syncplay/client.py @@ -574,10 +574,12 @@ class SyncplayUserlist(object): message = getMessage("file-differences-notification") + ", ".join(differences) self.ui.showMessage(message, not constants.SHOW_OSD_WARNINGS) - def addUser(self, username, room, file_, noMessage=False): + def addUser(self, username, room, file_, noMessage=False, isController=False): if username == self.currentUser.username: return user = SyncplayUser(username, room, file_) + if isController: + user.setAsController() self._users[username] = user if not noMessage: self.__showUserChangeMessage(username, room, file_) diff --git a/syncplay/protocols.py b/syncplay/protocols.py index e56d457..36d15b8 100644 --- a/syncplay/protocols.py +++ b/syncplay/protocols.py @@ -148,7 +148,8 @@ class SyncClientProtocol(JSONCommandProtocol): for user in room[1].iteritems(): userName = user[0] file_ = user[1]['file'] if user[1]['file'] <> {} else None - self._client.userlist.addUser(userName, roomName, file_, noMessage=True) + isController = user[1]['controller'] if 'controller' in user[1] else False + self._client.userlist.addUser(userName, roomName, file_, noMessage=True, isController=isController) self._client.userlist.showUserList() def sendList(self): @@ -360,7 +361,11 @@ class SyncServerProtocol(JSONCommandProtocol): if room: if room.getName() not in userlist: userlist[room.getName()] = {} - userFile = { "position": 0, "file": watcher.getFile() if watcher.getFile() else {} } + userFile = { + "position": 0, + "file": watcher.getFile() if watcher.getFile() else {}, + "controller": watcher.isController() + } userlist[room.getName()][watcher.getName()] = userFile def sendList(self): diff --git a/syncplay/server.py b/syncplay/server.py index e576eb7..2d79067 100644 --- a/syncplay/server.py +++ b/syncplay/server.py @@ -1,6 +1,5 @@ import hashlib import random -import re from twisted.internet import task, reactor from twisted.internet.protocol import Factory import syncplay @@ -402,6 +401,9 @@ class Watcher(object): if doSeek or pauseChanged: self._server.forcePositionUpdate(self, doSeek, paused) + def isController(self): + return RoomPasswordProvider.isControlledRoom(self._room.getName()) \ + and self._room.canControl(self) class ConfigurationGetter(object): def getConfiguration(self):