commit 3bb00f0006a4088a0d72d72687b95f31c9ea4d66
parent bf755f8ac09df4337e67ebbddc5c410bad2895fd
Author: ThomasV <thomasv@gitorious>
Date: Sun, 7 Jun 2015 21:52:23 +0200
store json record requests
Diffstat:
2 files changed, 74 insertions(+), 67 deletions(-)
diff --git a/lib/commands.py b/lib/commands.py
@@ -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
@@ -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):
diff --git a/lib/payrequest.html b/lib/payrequest.html
@@ -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;">
@@ -79,4 +82,3 @@ $(function () {
</body>
</html>
-