From 953094d7511910ad2b7ffbddeaed617a40bb5ae7 Mon Sep 17 00:00:00 2001 From: tuxmain Date: Sun, 10 May 2020 15:45:42 +0200 Subject: [PATCH] Conversion tool --- convert.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 convert.py diff --git a/convert.py b/convert.py new file mode 100644 index 0000000..a9b6462 --- /dev/null +++ b/convert.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +import cbor, json, os, sys + +FORMATS = ["json", "cbor"] + +DECODE = { + "json": lambda x: {"blocks": [[*i[:3], bytes.fromhex(i[3])] for i in json.loads(x.decode())["blocks"]]}, + "cbor": cbor.loads +} + +ENCODE = { + "json": lambda x: json.dumps({"blocks": [[*i[:3], i[3].hex()] for i in x["blocks"]]}).encode(), + "cbor": cbor.dumps +} + +if __name__ == "__main__": + if "--help" in sys.argv or "-h" in sys.argv: + print("""Usage: + python3 convert.py +Takes data in stdin and writes data in stdout. + +Formats: cbor, json +""") + exit() + + input_format = sys.argv[1] + output_format = sys.argv[2] + + stdin = os.fdopen(sys.stdin.fileno(), 'rb') + stdout = os.fdopen(sys.stdout.fileno(), 'wb') + stdout.write(ENCODE[output_format](DECODE[input_format](stdin.read())))