Fix persistent room list
This commit is contained in:
parent
b7f27f013b
commit
37b93846db
@ -47,7 +47,7 @@ class SyncFactory(Factory):
|
|||||||
self.maxChatMessageLength = maxChatMessageLength if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH
|
self.maxChatMessageLength = maxChatMessageLength if maxChatMessageLength is not None else constants.MAX_CHAT_MESSAGE_LENGTH
|
||||||
self.maxUsernameLength = maxUsernameLength if maxUsernameLength is not None else constants.MAX_USERNAME_LENGTH
|
self.maxUsernameLength = maxUsernameLength if maxUsernameLength is not None else constants.MAX_USERNAME_LENGTH
|
||||||
self.permanentRoomsFile = permanentRoomsFile if permanentRoomsFile is not None and os.path.isfile(permanentRoomsFile) else None
|
self.permanentRoomsFile = permanentRoomsFile if permanentRoomsFile is not None and os.path.isfile(permanentRoomsFile) else None
|
||||||
self.permanentRooms = self.loadListFromMultilineTextFile(self.permanentRoomsFile)
|
self.permanentRooms = self.loadListFromMultilineTextFile(self.permanentRoomsFile) if self.permanentRoomsFile is not None else []
|
||||||
if not isolateRooms:
|
if not isolateRooms:
|
||||||
self._roomManager = RoomManager(self.roomsDbFile, self.permanentRooms)
|
self._roomManager = RoomManager(self.roomsDbFile, self.permanentRooms)
|
||||||
else:
|
else:
|
||||||
@ -149,11 +149,17 @@ class SyncFactory(Factory):
|
|||||||
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, None)
|
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, None)
|
||||||
self._roomManager.broadcast(watcher, l)
|
self._roomManager.broadcast(watcher, l)
|
||||||
self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), watcher.isReady(), False))
|
self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), watcher.isReady(), False))
|
||||||
|
if self.roomsDbFile:
|
||||||
|
l = lambda w: w.sendList()
|
||||||
|
self._roomManager.broadcast(watcher, l)
|
||||||
|
|
||||||
def removeWatcher(self, watcher):
|
def removeWatcher(self, watcher):
|
||||||
if watcher and watcher.getRoom():
|
if watcher and watcher.getRoom():
|
||||||
self.sendLeftMessage(watcher)
|
self.sendLeftMessage(watcher)
|
||||||
self._roomManager.removeWatcher(watcher)
|
self._roomManager.removeWatcher(watcher)
|
||||||
|
if self.roomsDbFile:
|
||||||
|
l = lambda w: w.sendList()
|
||||||
|
self._roomManager.broadcast(watcher, l)
|
||||||
|
|
||||||
def sendLeftMessage(self, watcher):
|
def sendLeftMessage(self, watcher):
|
||||||
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, {"left": True})
|
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, {"left": True})
|
||||||
@ -163,6 +169,9 @@ class SyncFactory(Factory):
|
|||||||
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, {"joined": True, "version": watcher.getVersion(), "features": watcher.getFeatures()}) if w != watcher else None
|
l = lambda w: w.sendSetting(watcher.getName(), watcher.getRoom(), None, {"joined": True, "version": watcher.getVersion(), "features": watcher.getFeatures()}) if w != watcher else None
|
||||||
self._roomManager.broadcast(watcher, l)
|
self._roomManager.broadcast(watcher, l)
|
||||||
self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), watcher.isReady(), False))
|
self._roomManager.broadcastRoom(watcher, lambda w: w.sendSetReady(watcher.getName(), watcher.isReady(), False))
|
||||||
|
if self.roomsDbFile:
|
||||||
|
l = lambda w: w.sendList()
|
||||||
|
self._roomManager.broadcast(watcher, l)
|
||||||
|
|
||||||
def sendFileUpdate(self, watcher):
|
def sendFileUpdate(self, watcher):
|
||||||
if watcher.getFile():
|
if watcher.getFile():
|
||||||
@ -472,12 +481,11 @@ class RoomManager(object):
|
|||||||
return room
|
return room
|
||||||
|
|
||||||
def _deleteRoomIfEmpty(self, room):
|
def _deleteRoomIfEmpty(self, room):
|
||||||
if room.isEmpty() and room.isNotPermanent() and room.getName() in self._rooms:
|
if room.isEmpty() and room.getName():
|
||||||
if room.isPersistent():
|
if self._roomsDbHandle and room.isNotPermanent():
|
||||||
if room.isPlaylistEmpty():
|
if room.isPersistent() and not room.isPlaylistEmpty():
|
||||||
self._roomsDbHandle.deleteRoom(room.getName())
|
return
|
||||||
else:
|
self._roomsDbHandle.deleteRoom(room.getName())
|
||||||
return()
|
|
||||||
del self._rooms[room.getName()]
|
del self._rooms[room.getName()]
|
||||||
|
|
||||||
def findFreeUsername(self, username):
|
def findFreeUsername(self, username):
|
||||||
@ -643,6 +651,8 @@ class Room(object):
|
|||||||
def getPlaylistIndex(self):
|
def getPlaylistIndex(self):
|
||||||
return self._playlistIndex
|
return self._playlistIndex
|
||||||
|
|
||||||
|
def getControllers(self):
|
||||||
|
return []
|
||||||
|
|
||||||
class ControlledRoom(Room):
|
class ControlledRoom(Room):
|
||||||
def __init__(self, name, roomsdbhandle):
|
def __init__(self, name, roomsdbhandle):
|
||||||
@ -691,7 +701,7 @@ class ControlledRoom(Room):
|
|||||||
return watcher.getName() in self._controllers
|
return watcher.getName() in self._controllers
|
||||||
|
|
||||||
def getControllers(self):
|
def getControllers(self):
|
||||||
return self._controllers
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class Watcher(object):
|
class Watcher(object):
|
||||||
@ -771,6 +781,9 @@ class Watcher(object):
|
|||||||
if self._connector.meetsMinVersion(constants.CHAT_MIN_VERSION):
|
if self._connector.meetsMinVersion(constants.CHAT_MIN_VERSION):
|
||||||
self._connector.sendMessage({"Chat": message})
|
self._connector.sendMessage({"Chat": message})
|
||||||
|
|
||||||
|
def sendList(self):
|
||||||
|
self._connector.sendList()
|
||||||
|
|
||||||
def sendSetReady(self, username, isReady, manuallyInitiated=True):
|
def sendSetReady(self, username, isReady, manuallyInitiated=True):
|
||||||
self._connector.sendSetReady(username, isReady, manuallyInitiated)
|
self._connector.sendSetReady(username, isReady, manuallyInitiated)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user