URI: 
       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>
       -