summaryrefslogtreecommitdiff
path: root/snapdb.py
blob: 8bdb2ff0ffb7d063e13fd8a6c252b029d2dd334e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/env python3

from mongodict import MongoDict
from blockext import *
from config import config

class Storage:
    def __init__(self):
        self.db = MongoDict(
                host=config["host"], port=config["port"],
                database=config["database"], collection=config["collection"],
                auth=(config["username"], config["password"]))
    
    @predicate("%s from the database")
    def get(self, key):
        if key in self.db:
            return self.db[key]
        else:
            return ""

    @command("%s as %s into the database")
    def put(self, value, key):
        self.db[key] = value

descriptor = Descriptor(
    name = "SnapDB",
    port = config["localport"],
    blocks = get_decorated_blocks_from_class(Storage)
)

extension = Extension(Storage, descriptor)

if __name__ == "__main__":
    extension.run_forever(debug=True)