MCPcopy Create free account
hub / github.com/Syncplay/syncplay / FileSwitchManager

Class FileSwitchManager

syncplay/client.py:2198–2378  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2196
2197
2198class FileSwitchManager(object):
2199 def __init__(self, client):
2200 self._client = client
2201 self.mediaFilesCache = {}
2202 self.filenameWatchlist = []
2203 self.currentDirectory = None
2204 self.mediaDirectories = client.getConfig().get('mediaSearchDirectories')
2205 self.lock = threading.Lock()
2206 self.folderSearchEnabled = True
2207 self.directorySearchError = None
2208 self.newInfo = False
2209 self.currentlyUpdating = False
2210 self.newWatchlist = []
2211 self.fileSwitchTimer = task.LoopingCall(self.updateInfo)
2212 self.fileSwitchTimer.start(constants.FOLDER_SEARCH_DOUBLE_CHECK_INTERVAL, True)
2213 self.mediaDirectoriesNotFound = []
2214
2215 def setClient(self, newClient):
2216 self._client = newClient
2217
2218 def setCurrentDirectory(self, curDir):
2219 self.currentDirectory = curDir
2220
2221 def changeMediaDirectories(self, mediaDirs):
2222 from syncplay.ui.ConfigurationGetter import ConfigurationGetter
2223 ConfigurationGetter().setConfigOption("mediaSearchDirectories", mediaDirs)
2224 self._client._config["mediaSearchDirectories"] = mediaDirs
2225 self._client.ui.showMessage(getMessage("media-directory-list-updated-notification"))
2226 self.mediaDirectoriesNotFound = []
2227 self.folderSearchEnabled = True
2228 self.setMediaDirectories(mediaDirs)
2229 if mediaDirs == "":
2230 self._client.ui.showErrorMessage(getMessage("no-media-directories-error"))
2231 self.mediaFilesCache = {}
2232 self.newInfo = True
2233 self.checkForFileSwitchUpdate()
2234
2235 def setMediaDirectories(self, mediaDirs):
2236 self.mediaDirectories = mediaDirs
2237 self.updateInfo()
2238
2239 def checkForFileSwitchUpdate(self):
2240 if self.newInfo:
2241 self.newInfo = False
2242 self.infoUpdated()
2243 if self.directorySearchError:
2244 self._client.ui.showErrorMessage(self.directorySearchError)
2245 self.directorySearchError = None
2246
2247 def updateInfo(self):
2248 if not self.currentlyUpdating and self.mediaDirectories:
2249 threads.deferToThread(self._updateInfoThread).addCallback(lambda x: self.checkForFileSwitchUpdate())
2250
2251 def setFilenameWatchlist(self, unfoundFilenames):
2252 self.filenameWatchlist = unfoundFilenames
2253
2254 def _updateInfoThread(self):
2255 with self.lock:

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected