tstore json record requests - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 3bb00f0006a4088a0d72d72687b95f31c9ea4d66 DIR parent bf755f8ac09df4337e67ebbddc5c410bad2895fd HTML Author: ThomasV <thomasv@gitorious> Date: Sun, 7 Jun 2015 21:52:23 +0200 store json record requests Diffstat: M lib/commands.py | 35 ++++++++++++++++++------------- M lib/payrequest.html | 106 ++++++++++++++++--------------- 2 files changed, 74 insertions(+), 67 deletions(-) --- DIR diff --git a/lib/commands.py b/lib/commands.py t@@ -542,17 +542,16 @@ class Commands: } # check if bip70 file exists rdir = self.config.get('requests_dir') - if rdir: - path = os.path.join(rdir, key + '.bip70') - if os.path.exists(path): - out['path'] = path - url = 'file://' + path - r = self.config.get('url_rewrite') - if r: - a, b = r - url = url.replace(a, b) - out['request_url'] = url - out['URI'] += '&r=' + url + path = os.path.join(rdir, key + '.bip70') + if rdir and os.path.exists(path): + out['path'] = path + baseurl = 'file://' + rdir + rewrite = self.config.get('url_rewrite') + if rewrite: + baseurl = baseurl.replace(*rewrite) + out['request_url'] = os.path.join(baseurl, key + '.bip70') + out['URI'] += '&r=' + out['request_url'] + out['index_url'] = os.path.join(baseurl, 'index.html') + '?id=' + key return out t@@ -575,16 +574,22 @@ class Commands: return map(self._format_request, self.wallet.get_sorted_requests()) @command('w') - def addrequest(self, requested_amount, reason='', expiration=None): + def addrequest(self, requested_amount, reason='', expiration=60*60): """Create a payment request.""" amount = int(Decimal(requested_amount)*COIN) key = self.wallet.add_payment_request(amount, reason, expiration) if key is None: return - # create file req = self.wallet.get_payment_request(key) - paymentrequest.publish_request(self.config, key, req) - return self._format_request(req) + rdir = self.config.get('requests_dir') + if rdir: + path = paymentrequest.publish_request(self.config, key, req) + req['path'] = path + req = self._format_request(req) + if rdir: + with open(os.path.join(rdir, key + '.json'), 'w') as f: + f.write(json.dumps(req)) + return req @command('w') def rmrequest(self, address): DIR diff --git a/lib/payrequest.html b/lib/payrequest.html t@@ -2,66 +2,69 @@ <html> <head> <title>Payment request</title> - <script type="text/javascript" charset="utf-8" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> + <script type="text/javascript" charset="utf-8" src="https://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="https://raw.github.com/datagraph/jquery-jsonrpc/master/jquery.jsonrpc.js"></script> <script type="text/javascript" src="https://raw.githubusercontent.com/davidshimjs/qrcodejs/master/qrcode.js"></script> - <link rel="stylesheet" type="text/css" href="/css/result-light.css"> - <script type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> - <link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"> - + <script type="text/javascript" src="https://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> + <link rel="stylesheet" type="text/css" href="https://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"> <script type="text/javascript"> - $(document).ready(function() { - $.jsonRPC.setup({ - endPoint : "http://localhost:7777", - namespace : "" - }); - if (window.location.hash) { - $.jsonRPC.request('getrequest', { - params : [window.location.hash.substr(1)], - success : function(data) { - new QRCode(document.getElementById("qrcode"), data.result.URI); - $("<p />").text(data.result.reason).appendTo($("p#reason")); - $("<p />").text(data.result.amount + "BTC").appendTo($("p#amount")); - $("a").attr("href", data.result.URI); - $("<p />").text("Powered by Electrum").appendTo($("p#powered")); - -$(function () { - var current; - var max = 100; - var initial = data.result.timestamp; - var duration = data.result.expiration; - var current = 100 * (Math.floor(Date.now()/1000) - initial)/duration; - $("#progressbar").progressbar({ - value: current, - max: max - }); - function update() { - current = 100 * (Math.floor(Date.now()/1000) - initial)/duration; - $("#progressbar").progressbar({ - value: current - }); - if (duration && current >= max) { - $("#container").html("expired:", duration); - } - if(!duration) clearInterval(interval); - }; - var interval = setInterval(update, 1000); -}); +function getUrlParameter(sParam) +{ + var sPageURL = window.location.search.substring(1); + var sURLVariables = sPageURL.split('&'); + for (var i = 0; i < sURLVariables.length; i++) + { + var sParameterName = sURLVariables[i].split('='); + if (sParameterName[0] == sParam) + { + return sParameterName[1]; + } + } +} - }, - error : function(data) { - $("<p />").text("error").appendTo($("p#error")); - $("<p />").text(data.error.message).appendTo($("p#error")); - } - }); - - } +var id = getUrlParameter('id'); +if (id) { + var jqxhr = $.getJSON(id + ".json", function() { + console.log( "success" ); + }) + .done( function(data) { + new QRCode(document.getElementById("qrcode"), data.URI); + $("<p />").text(data.reason).appendTo($("p#reason")); + $("<p />").text(data.amount + "BTC").appendTo($("p#amount")); + $("a").attr("href", data.URI); + $("<p />").text("Powered by Electrum").appendTo($("p#powered")); + $(function () { + var current; + var max = 100; + var initial = data.timestamp; + var duration = data.expiration; + var current = 100 * (Math.floor(Date.now()/1000) - initial)/duration; + $("#progressbar").progressbar({ + value: current, + max: max + }); + function update() { + current = 100 * (Math.floor(Date.now()/1000) - initial)/duration; + $("#progressbar").progressbar({ + value: current + }); + if (current >= max) { + $("#container").html("expired:", duration); + } + }; + var interval = setInterval(update, 1000); }); - </script> + }) + .fail(function() { + console.log( "error fail" ); + $("<p />").text("error").appendTo($("p#error")); + }); +}; +</script> </head> <body> <div id="container" style="width:20em; text-align:center; margin:auto; font-family:arial, serif;"> t@@ -79,4 +82,3 @@ $(function () { </body> </html> -