Beispiel #1
0
    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))
Beispiel #2
0
    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))