Some refactoring

This commit is contained in:
Uriziel 2013-01-15 18:53:27 +01:00
parent 36d2485dd6
commit b5a87087d4

View File

@ -211,11 +211,13 @@ class SyncplayClient(object):
madeChangeOnPlayer = self._serverUnpaused(setBy) madeChangeOnPlayer = self._serverUnpaused(setBy)
elif (paused == True and pauseChanged): elif (paused == True and pauseChanged):
madeChangeOnPlayer = self._serverPaused(setBy, diff) madeChangeOnPlayer = self._serverPaused(setBy, diff)
self._warnings.checkWarnings(paused)
if(paused == False):
self.userlist.roomCheckedOnFirstUnpause()
return madeChangeOnPlayer return madeChangeOnPlayer
def _executePlaystateHooks(self, position, paused, doSeek, setBy, latency):
if(self.userlist.hasRoomStateChanged() and not paused):
self._warnings.checkWarnings()
self.userlist.roomStateConfirmed()
def updateGlobalState(self, position, paused, doSeek, setBy, latency): def updateGlobalState(self, position, paused, doSeek, setBy, latency):
if(self.__getUserlistOnLogon): if(self.__getUserlistOnLogon):
self.__getUserlistOnLogon = False self.__getUserlistOnLogon = False
@ -227,7 +229,8 @@ class SyncplayClient(object):
madeChangeOnPlayer = self._changePlayerStateAccordingToGlobalState(position, paused, doSeek, setBy) madeChangeOnPlayer = self._changePlayerStateAccordingToGlobalState(position, paused, doSeek, setBy)
if(madeChangeOnPlayer): if(madeChangeOnPlayer):
self.askPlayer() self.askPlayer()
self._executePlaystateHooks(position, paused, doSeek, setBy, latency)
def getUserOffset(self): def getUserOffset(self):
return self._userOffset return self._userOffset
@ -349,32 +352,32 @@ class SyncplayClient(object):
"room-files-not-same": { "room-files-not-same": {
"timer": task.LoopingCall(self.__displayMessageOnOSD, ("room-files-not-same"),), "timer": task.LoopingCall(self.__displayMessageOnOSD, ("room-files-not-same"),),
"displayedFor": 0, "displayedFor": 0,
"tester": self._checkRoomForSameFiles
}, },
"alone-in-the-room": { "alone-in-the-room": {
"timer": task.LoopingCall(self.__displayMessageOnOSD, ("alone-in-the-room"),), "timer": task.LoopingCall(self.__displayMessageOnOSD, ("alone-in-the-room"),),
"displayedFor": 0, "displayedFor": 0,
"tester": self._checkIfYouReAloneInTheRoom
}, },
} }
def checkWarnings(self, paused): def checkWarnings(self):
for w in self._warnings.itervalues(): self._checkIfYouReAloneInTheRoom()
w["tester"](paused) self._checkRoomForSameFiles()
def _checkRoomForSameFiles(self, paused): def _checkRoomForSameFiles(self):
roomFilesDiffer = not self._userlist.areAllFilesInRoomSameOnFirstUnpause() if (not self._userlist.areAllFilesInRoomSame()):
if (paused == False and roomFilesDiffer):
self._ui.showMessage(getMessage("en", "room-files-not-same"), True) self._ui.showMessage(getMessage("en", "room-files-not-same"), True)
if(not self._warnings["room-files-not-same"]['timer'].running): if(not self._warnings["room-files-not-same"]['timer'].running):
self._warnings["room-files-not-same"]['timer'].start(constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, True) self._warnings["room-files-not-same"]['timer'].start(constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, True)
elif(self._warnings["room-files-not-same"]['timer'].running):
def _checkIfYouReAloneInTheRoom(self, paused): self._warnings["room-files-not-same"]['timer'].stop()
aloneInRoom = self._userlist.areYouAloneInRoomOnFirstUnpause()
if (paused == False and aloneInRoom): def _checkIfYouReAloneInTheRoom(self):
if (self._userlist.areYouAloneInRoom()):
self._ui.showMessage(getMessage("en", "alone-in-the-room"), True) self._ui.showMessage(getMessage("en", "alone-in-the-room"), True)
if(not self._warnings["alone-in-the-room"]['timer'].running): if(not self._warnings["alone-in-the-room"]['timer'].running):
self._warnings["alone-in-the-room"]['timer'].start(constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, True) self._warnings["alone-in-the-room"]['timer'].start(constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL, True)
elif(self._warnings["alone-in-the-room"]['timer'].running):
self._warnings["alone-in-the-room"]['timer'].stop()
def __displayMessageOnOSD(self, warningName): def __displayMessageOnOSD(self, warningName):
if (constants.OSD_WARNING_MESSAGE_DURATION > self._warnings[warningName]["displayedFor"]): if (constants.OSD_WARNING_MESSAGE_DURATION > self._warnings[warningName]["displayedFor"]):
self._ui.showOSDMessage(getMessage("en", warningName ), constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL) self._ui.showOSDMessage(getMessage("en", warningName ), constants.WARNING_OSD_MESSAGES_LOOP_INTERVAL)
@ -417,7 +420,7 @@ class SyncplayUserlist(object):
self._users = {} self._users = {}
self.ui = ui self.ui = ui
self._client = client self._client = client
self._wasChangeInRoomSinceLastRoomCheck = True self._roomUsersChanged = True
def __showUserChangeMessage(self, username, room, file_): def __showUserChangeMessage(self, username, room, file_):
if (room and not file_): if (room and not file_):
@ -443,7 +446,7 @@ class SyncplayUserlist(object):
self.ui.showMessage(message) self.ui.showMessage(message)
def addUser(self, username, room, file_, position = 0, noMessage = False): def addUser(self, username, room, file_, position = 0, noMessage = False):
self._wasChangeInRoomSinceLastRoomCheck = True self._roomUsersChanged = True
if(username == self.currentUser.username): if(username == self.currentUser.username):
self.currentUser.lastPosition = position self.currentUser.lastPosition = position
return return
@ -453,7 +456,7 @@ class SyncplayUserlist(object):
self.__showUserChangeMessage(username, room, file_) self.__showUserChangeMessage(username, room, file_)
def removeUser(self, username): def removeUser(self, username):
self._wasChangeInRoomSinceLastRoomCheck = True self._roomUsersChanged = True
if(self._users.has_key(username)): if(self._users.has_key(username)):
self._users.pop(username) self._users.pop(username)
message = getMessage("en", "left-notification").format(username) message = getMessage("en", "left-notification").format(username)
@ -466,7 +469,7 @@ class SyncplayUserlist(object):
self.__showUserChangeMessage(username, room, None) self.__showUserChangeMessage(username, room, None)
def modUser(self, username, room, file_): def modUser(self, username, room, file_):
self._wasChangeInRoomSinceLastRoomCheck = True self._roomUsersChanged = True
if(self._users.has_key(username)): if(self._users.has_key(username)):
user = self._users[username] user = self._users[username]
self.__displayModUserMessage(username, room, file_, user) self.__displayModUserMessage(username, room, file_, user)
@ -536,23 +539,23 @@ class SyncplayUserlist(object):
self.__displayFileWatchersInRoomList(key, rooms[roomName][key]) self.__displayFileWatchersInRoomList(key, rooms[roomName][key])
self.__displayPeopleInRoomWithNoFile(noFileList) self.__displayPeopleInRoomWithNoFile(noFileList)
def areAllFilesInRoomSameOnFirstUnpause(self): def areAllFilesInRoomSame(self):
if(self._wasChangeInRoomSinceLastRoomCheck): for user in self._users.itervalues():
for user in self._users.itervalues(): if(user.room == self.currentUser.room and user.file and not self.currentUser.isFileSame(user.file)):
if(user.room == self.currentUser.room and user.file and not self.currentUser.isFileSame(user.file)): return False
return False
return True return True
def areYouAloneInRoomOnFirstUnpause(self): def areYouAloneInRoom(self):
if(self._wasChangeInRoomSinceLastRoomCheck): for user in self._users.itervalues():
for user in self._users.itervalues(): if(user.room == self.currentUser.room):
if(user.room == self.currentUser.room): return False
return False return True
return True
return False
def roomCheckedOnFirstUnpause(self): def roomStateConfirmed(self):
self._wasChangeInRoomSinceLastRoomCheck = False self._roomUsersChanged = False
def hasRoomStateChanged(self):
return self._roomUsersChanged
def showUserList(self): def showUserList(self):
rooms = {} rooms = {}