electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit c7ff3ba705e4ca3acf29217ddb5e2ee4ceedea9d
parent 3127fbd0c2e9527d70ddef9333fe0021f75bd7c0
Author: ThomasV <thomasv@electrum.org>
Date:   Sun,  2 Oct 2016 12:43:10 +0200

Merge pull request #1943 from ser/payment-requests-subdirs

Spread payment requests to subdirs
Diffstat:
Mlib/wallet.py | 18++++++++++++------
Mlib/websockets.py | 2+-
Mlib/www/index.html | 5+++--
3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/lib/wallet.py b/lib/wallet.py @@ -1046,13 +1046,13 @@ class Abstract_Wallet(PrintError): rdir = config.get('requests_dir') if rdir: key = out.get('id', addr) - path = os.path.join(rdir, key) + path = os.path.join(rdir, 'req', key[0], key[1], key) if os.path.exists(path): baseurl = 'file://' + rdir rewrite = config.get('url_rewrite') if rewrite: baseurl = baseurl.replace(*rewrite) - out['request_url'] = os.path.join(baseurl, key) + out['request_url'] = os.path.join(baseurl, 'req', key[0], key[1], key, key) out['URI'] += '&r=' + out['request_url'] out['index_url'] = os.path.join(baseurl, 'index.html') + '?id=' + key websocket_server_announce = config.get('websocket_server_announce') @@ -1122,12 +1122,18 @@ class Abstract_Wallet(PrintError): if rdir and amount is not None: key = req.get('id', addr) pr = paymentrequest.make_request(config, req) - path = os.path.join(rdir, key) - with open(path, 'w') as f: + path = os.path.join(rdir, 'req', key[0], key[1], key) + if not os.path.exists(path): + try: + os.makedirs(path) + except OSError as exc: + if exc.errno != errno.EEXIST: + raise + with open(os.path.join(path, key), 'w') as f: f.write(pr.SerializeToString()) # reload req = self.get_payment_request(addr, config) - with open(os.path.join(rdir, key + '.json'), 'w') as f: + with open(os.path.join(path, key + '.json'), 'w') as f: f.write(json.dumps(req)) return req @@ -1139,7 +1145,7 @@ class Abstract_Wallet(PrintError): if rdir: key = r.get('id', addr) for s in ['.json', '']: - n = os.path.join(rdir, key + s) + n = os.path.join(rdir, 'req', key[0], key[1], key, key + s) if os.path.exists(n): os.unlink(n) self.storage.put('payment_requests', self.receive_requests) diff --git a/lib/websockets.py b/lib/websockets.py @@ -63,7 +63,7 @@ class WsClientThread(util.DaemonThread): def make_request(self, request_id): # read json file rdir = self.config.get('requests_dir') - n = os.path.join(rdir, request_id + '.json') + n = os.path.join(rdir, 'req', request_id[0], request_id[1], request_id, request_id + '.json') with open(n) as f: s = f.read() d = json.loads(s) diff --git a/lib/www/index.html b/lib/www/index.html @@ -25,7 +25,8 @@ function getUrlParameter(sParam) var id = getUrlParameter('id'); if (id) { - var jqxhr = $.getJSON(id + ".json", function() { + var uri_path = location.pathname; + var jqxhr = $.getJSON(uri_path.replace("index.html", "req/"+ id[0] + "/"+ id[1] + "/"+ id + "/"+ id + ".json"), function() { console.log("getJSON:success"); }) .done( function(data) { @@ -60,7 +61,7 @@ if (id) { } }); - var wss_address = "wss://" + websocket_server + ":" + websocket_port +"/"); + var wss_address = "wss://" + websocket_server + ":" + websocket_port +"/"; console.log("Opening WSS: " + wss_address) var ws = new WebSocket(wss_address);