tMerge pull request #1943 from ser/payment-requests-subdirs - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit c7ff3ba705e4ca3acf29217ddb5e2ee4ceedea9d (DIR) parent 3127fbd0c2e9527d70ddef9333fe0021f75bd7c0 (HTM) 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: M lib/wallet.py | 18 ++++++++++++------ M lib/websockets.py | 2 +- M lib/www/index.html | 5 +++-- 3 files changed, 16 insertions(+), 9 deletions(-) --- (DIR) diff --git a/lib/wallet.py b/lib/wallet.py t@@ -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') t@@ -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 t@@ -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) (DIR) diff --git a/lib/websockets.py b/lib/websockets.py t@@ -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) (DIR) diff --git a/lib/www/index.html b/lib/www/index.html t@@ -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) { t@@ -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);