class Worker(QObject): def __init__(self, parent=None): QObject.__init__(self, parent) @pyqtSlot() def setupDatabase(self): from collections import OrderedDict self.db = Database('chat-advance.db') if not self.db.createConnection(): EventManager.trigger(Event('Database.databaseConnectionFail')) return if not self.db.isTableExist(DataCenter.TABLE_FRIENDS): self.db.createTable(DataCenter.TABLE_SERVERS, OrderedDict([('name', Database.TYPE_TEXT), ('url', Database.TYPE_TEXT), ('port', Database.TYPE_TEXT)])) @pyqtSlot(str, str) def addServer(self, name, desc): self.db.addRecord(DataCenter.TABLE_VMS, name=name, desc=desc) index = self.db.lastInsertRowId() EventManager.trigger(Event('DataCenter.ServerAdded', index, (name, desc))) @pyqtSlot(int) def delServer(self, index): self.db.delRecord(DataCenter.TABLE_VMS, id=index) @pyqtSlot() def loadAllServers(self): items = self.db.load(DataCenter.TABLE_VMS) EventManager.trigger(Event('DataCenter.allServersLoaded', items))
class Worker(QObject): def __init__(self, parent=None): QObject.__init__(self, parent) @pyqtSlot() def setupDatabase(self): from collections import OrderedDict self.db = Database('server.db') if not self.db.createConnection(): EventManager.trigger(Event('Database.databaseConnectionFail')) return if not self.db.isTableExist(DataCenter.TABLE_GPS): self.db.createTable( DataCenter.TABLE_GPS, OrderedDict( [('uuid', Database.TYPE_TEXT), ('desc', Database.TYPE_TEXT), ('lng', Database.TYPE_TEXT), ('lat', Database.TYPE_TEXT)] ) ) if not self.db.isTableExist(DataCenter.TABLE_ACCOUNT): self.db.createTable( DataCenter.TABLE_ACCOUNT, OrderedDict( [('uuid', Database.TYPE_TEXT), ('desc', Database.TYPE_TEXT), ('username', Database.TYPE_TEXT), ('password', Database.TYPE_TEXT)] ) ) @pyqtSlot(str, str, str, str, str) def addGps(self, uuid_, desc, lng, lat, clientId): self.db.addRecord(DataCenter.TABLE_GPS, uuid=uuid_, desc=desc, lng=lng, lat=lat) EventManager.trigger(Event('DataCenter.gpsAdded', {'id': uuid_, 'desc': desc, 'lng': lng, 'lat': lat}, clientId)) @pyqtSlot(str, str, str, str, str) def addAccount(self, id_, desc, username, password, clientId): self.db.addRecord(DataCenter.TABLE_ACCOUNT, uuid=id_, desc=desc, username=username, password=password) EventManager.trigger(Event('DataCenter.accountAdded', {'id': id_, 'desc': desc, 'username': username, 'password': password}, clientId)) @pyqtSlot(str) def loadAllGps(self, clientId): gps = self.db.load(DataCenter.TABLE_GPS) EventManager.trigger(Event('DataCenter.gpsLoaded', gps, clientId)) @pyqtSlot(str) def loadAllAccount(self, clientId): accounts = self.db.load(DataCenter.TABLE_ACCOUNT) EventManager.trigger(Event('DataCenter.accountLoaded', accounts, clientId)) @pyqtSlot(str, str, str) def updateGps(self, gpsId, desc, clientId): self.db.update(DataCenter.TABLE_GPS, 'desc', desc, uuid=gpsId) EventManager.trigger(Event('DataCenter.gpsUpdated', gpsId, desc, clientId)) @pyqtSlot(list, str) def deleteGps(self, ids, clientId): for id_ in ids: self.db.delRecord(DataCenter.TABLE_GPS, uuid=id_) EventManager.trigger(Event('DataCenter.gpsDeleted', ids, clientId)) @pyqtSlot(list, str) def deleteAccount(self, ids, clientId): for id_ in ids: self.db.delRecord(DataCenter.TABLE_ACCOUNT, uuid=id_) EventManager.trigger(Event('DataCenter.accountDeleted', ids, clientId))