diff --git a/decoder/config.json b/decoder/config.json deleted file mode 100644 index 23d03e7..0000000 --- a/decoder/config.json +++ /dev/null @@ -1 +0,0 @@ -{"rpc_user": "lbry", "rpc_password": "lbry", "rpc_port": 9245, "rpc_url": "127.0.0.1"} \ No newline at end of file diff --git a/decoder/decoder.py b/decoder/decoder.py index f19d8ba..49716ec 100644 --- a/decoder/decoder.py +++ b/decoder/decoder.py @@ -6,17 +6,25 @@ from lbryschema.decode import smart_decode from flask import Flask, url_for app = Flask(__name__) - -def get_lbrycrdd_connection_details(): - with open(os.path.dirname(os.path.realpath(__file__))+'/config.json', 'r') as f: - config = json.load(f) - rpc_user = config['rpc_user'] - rpc_pass = config['rpc_password'] - rpc_port = config['rpc_port'] - rpc_url = config['rpc_url'] - return 'http://%s:%s@%s:%i' % (rpc_user, rpc_pass, rpc_url, - rpc_port) - +def get_lbrycrdd_connection_details(wallet_conf): + settings = {"username": "lbry", + "password": "lbry", + "rpc_port": 9245} + if wallet_conf and os.path.exists(wallet_conf): + with open(wallet_conf, "r") as conf: + conf_lines = conf.readlines() + for l in conf_lines: + if l.startswith("rpcuser="): + settings["username"] = l[8:].rstrip('\n') + if l.startswith("rpcpassword="): + settings["password"] = l[12:].rstrip('\n') + if l.startswith("rpcport="): + settings["rpc_port"] = int(l[8:].rstrip('\n')) + rpc_user = settings["username"] + rpc_pass = settings["password"] + rpc_port = settings["rpc_port"] + rpc_url = "127.0.0.1" + return "http://%s:%s@%s:%i" % (rpc_user, rpc_pass, rpc_url, rpc_port) @app.errorhandler(500) def internal_error(error): @@ -26,7 +34,7 @@ def internal_error(error): @app.route('/claim_decode//') def api_decode(txid, nout): - connection_string = get_lbrycrdd_connection_details() + connection_string = get_lbrycrdd_connection_details(os.path.expanduser("~")+"/.lbrycrd/lbrycrd.conf") rpc = AuthServiceProxy(connection_string) result = rpc.getclaimsfortx(txid) claim = None @@ -43,7 +51,7 @@ def api_decode(txid, nout): @app.route('/claim_decodeinv/') def api_decodebyclaim(claimid): - connection_string = get_lbrycrdd_connection_details() + connection_string = get_lbrycrdd_connection_details(os.path.expanduser("~")+"/.lbrycrd/lbrycrd.conf") rpc = AuthServiceProxy(connection_string) claim = rpc.getvalueforname(claimid) if claim: