diff --git a/python/tools/http_server.py b/python/tools/http_server.py index 3d450dcdc456c93d4101f82daae8a662b09c6cf5..0498eff3220f0d2e5d1a70f8132bb74647843759 100755 --- a/python/tools/http_server.py +++ b/python/tools/http_server.py @@ -42,13 +42,22 @@ class DhtServer(resource.Resource): def render_POST(self, req): uri = req.uri[1:] data = req.args[b'data'][0] if b'data' in req.args else None + user_type = req.args[b'user_type'][0].decode() if b'user_type' in req.args else "" + try: + vid = int(req.args[b'id'][0].decode()) if b'id' in req.args else 0 + except ValueError: + vid = 0 if not data and b'base64' in req.args: data = base64.b64decode(req.args[b'base64'][0]) h = dht.InfoHash(uri) if len(uri) == 40 else dht.InfoHash.get(uri.decode()) print('POST', h, data) req.setHeader(b"content-type", b"application/json") if data: - self.node.put(h, dht.Value(data)) + v = dht.Value(data) + if vid != 0: + v.id = vid + v.user_type = user_type + self.node.put(h, v) return json.dumps({'success':True}).encode() else: req.setResponseCode(400)