Пример #1
0
async def save(client, dbFileName, message):
    accounts = utilities.unpackAccounts(message["accounts"])
    packages = utilities.unpackPackages(message["packages"])

    print("packages before          ", message["packages"])
    print("packages after         ", packages)
    successList, failedList = database.save(dbFileName, accounts, packages)

    print("successList           ", successList)
    await messages.respond(
        client, message, {
            "successful": utilities.packPackages(successList, set(["data"])),
            "failed": utilities.packPackages(failedList, set(["data"]))
        })

    changedAccountIds = set([package["accountId"] for package in successList])
    print("changedAccountIds1       ", changedAccountIds)
    print("activeClients       ", connections.activeClients())
    clients2accountIds = connections.getClients(changedAccountIds)
    print("changedAccountIds2.5     ", clients2accountIds)
    clients2accountIds.pop(client, None)
    print("changedAccountIds2       ", clients2accountIds)
    for otherClient, accountIds in clients2accountIds.items():
        accountIds = list(accountIds)
        print("accountIds           ", accountIds)
        await messages.send(otherClient, 'packages changed',
                            {'accountIds': utilities.packBlobs(accountIds)})
Пример #2
0
async def save(client, dbFileName, message):
    accounts = utilities.unpackAccounts(message["accounts"])
    packages = utilities.unpackPackages(message["packages"])

    database.save(dbFileName, accounts, packages)

    successful = [
        entity["entity"] for entity in packages
        if entity["status"] == "success"
    ]
    print("successful               ", successful)

    await messages.respond(
        client, message, {
            "packages": [{
                "entity":
                utilities.packPackages([entity["entity"]])[0],
                **(utilities.packEntities([entity])[0])
            } for entity in packages]
        })

    changedUsernames = set([package["username"] for package in successful])
    clients2usernames = connections.getClients(changedUsernames)
    for otherClient, usernames in clients2usernames.items():
        usernames = list(usernames)
        await messages.send(otherClient, 'packages changed',
                            {'usernames': usernames})
Пример #3
0
async def get(client, dbFileName, message):
    accounts = utilities.unpackAccounts(message["accounts"])

    packages, failedAccounts = database.get(dbFileName, accounts)
    await messages.respond(client, message, {
        'packages': utilities.packPackages(packages, set(["_id"])),
        "failed": utilities.packAccounts(failedAccounts)
    })
Пример #4
0
async def createIdentities(client, dbFileName, message):
    identities, failedAccounts = database.createIdentities(
        dbFileName, utilities.unpackAccounts(message["accounts"]),
        message["amount"])
    await messages.respond(
        client, message, {
            "identities": utilities.packIdentities(identities),
            "failed": utilities.packAccounts(failedAccounts)
        })
Пример #5
0
async def createLogins(client, dbFileName, message):
    logins, failedAccounts = database.createLogins(
        dbFileName, utilities.unpackAccounts(message["accounts"]),
        message["amount"])
    await messages.respond(
        client, message, {
            "logins": utilities.packLogins(logins),
            "failed": utilities.packAccounts(failedAccounts)
        })
Пример #6
0
async def createAccounts(client, dbFileName, message):
    accountWrappers = database.createAccounts(
        dbFileName, utilities.unpackAccounts(message["accounts"]))

    await messages.respond(
        client, message, {
            "accountWrappers":
            utilities.packStatusWrappers(accountWrappers,
                                         utilities.packAccount)
        })
Пример #7
0
async def authenticate(client, dbFileName, message):
    accounts = utilities.unpackAccounts(message["accounts"])
    successful, failed = database.verify(dbFileName, accounts)
    # activeSession = connections.activeSession(entities)
    # anyActive = connections.anyActive(entities)
    # more flexibility possible, but good enough for now
    connections.remember(client, [account["id"] for account in successful])
    await messages.respond(client, message, {
        "successful": utilities.packAccounts(successful),
        "failed": utilities.packAccounts(failed)
    });
Пример #8
0
async def createAccounts(client, dbFileName, message):
    entities = database.createAccounts(
        dbFileName, utilities.unpackAccounts(message["accounts"]))

    await messages.respond(
        client, message, {
            "accounts": [{
                "entity":
                utilities.packAccounts([entity["entity"]])[0],
                **(utilities.packEntities([entity])[0])
            } for entity in entities]
        })
Пример #9
0
async def sendMessages(client, dbFileName, message):
    messageWrappers, failed = database.sendMessages(
        dbFileName, utilities.unpackAccounts(message["accounts"]),
        utilities.unpackMessages(message["messages"]))

    await messages.respond(
        client, message, {
            "messageWrappers":
            utilities.packStatusWrappers(
                messageWrappers, utilities.packMessages,
                set(["body", "timestamp", "expires"])),
            "failed":
            utilities.packAccounts(failedAccounts)
        })
Пример #10
0
async def save(client, dbFileName, message):
    accounts = utilities.unpackAccounts(message["accounts"])
    packages = utilities.unpackPackages(message["packages"])
    
    successList, failedList = database.save(dbFileName, accounts, packages) 

    await messages.respond(client, message, {
        "successful" : utilities.packPackages(successList, set(["data"])),
        "failed" : utilities.packPackages(failedList, set(["data"]))
    })

    changedAccountIds = set([package["accountId"] for package in successList])
    clients2accountIds = connections.getClients(changedAccountIds)
    for otherClient, accountIds in clients2accountIds.items():
        accountIds = list(accountIds)
        await messages.send(otherClient, 'packages changed', {
            'accountIds': utilities.packBlobs(accountIds)
        })
Пример #11
0
async def save(client, dbFileName, message):
    accounts = utilities.unpackAccounts(message["accounts"])
    packages = utilities.unpackPackages(message["packages"])

    packageWrappers = database.savePackages(dbFileName, accounts, packages)

    await messages.respond(
        client, message, {
            "packages":
            utilities.packStatusWrappers(packageWrappers,
                                         utilities.packPackage)
        })

    successful = [
        wrapper["entity"] for wrapper in packageWrappers
        if wrapper["status"] == "success"
    ]
    changedUsernames = set([package["username"] for package in successful])
    clients2usernames = connections.getClients(changedUsernames)
    for otherClient, usernames in clients2usernames.items():
        usernames = list(usernames)
        await messages.send(otherClient, 'packages changed',
                            {'usernames': usernames})