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

Class RoomDBManager

syncplay/server.py:379–410  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

377 self._connection.runQuery("INSERT INTO clients_snapshots VALUES (?, ?)", content)
378
379class RoomDBManager(object):
380 def __init__(self, dbpath, loadroomscallback):
381 self._dbPath = dbpath
382 self._connection = None
383 self._loadRoomsCallback = loadroomscallback
384
385 def __del__(self):
386 if self._connection is not None:
387 self._connection.close()
388
389 def connect(self):
390 self._connection = adbapi.ConnectionPool("sqlite3", self._dbPath, check_same_thread=False)
391 self._createSchema().addCallback(self.loadRooms)
392
393 def _createSchema(self):
394 initQuery = 'create table if not exists persistent_rooms (name STRING PRIMARY KEY, playlist STRING, playlistIndex INTEGER, position REAL, lastSavedUpdate INTEGER)'
395 return self._connection.runQuery(initQuery)
396
397 def saveRoom(self, name, playlist, playlistIndex, position, lastUpdate):
398 content = (name, playlist, playlistIndex, position, lastUpdate)
399 self._connection.runQuery("INSERT OR REPLACE INTO persistent_rooms VALUES (?, ?, ?, ?, ?)", content)
400
401 def deleteRoom(self, name):
402 self._connection.runQuery("DELETE FROM persistent_rooms where name = ?", [name])
403
404 def loadRooms(self, result=None):
405 roomsQuery = "SELECT * FROM persistent_rooms"
406 rooms = self._connection.runQuery(roomsQuery)
407 rooms.addCallback(self.loadedRooms)
408
409 def loadedRooms(self, rooms):
410 self._loadRoomsCallback(rooms)
411
412class RoomManager(object):
413 def __init__(self, roomsdbfile=None, permanentRooms=[]):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected