parse_url: parse exponents
This commit is contained in:
parent
e9862e0b71
commit
7963f22a80
16
lib/util.py
16
lib/util.py
|
@ -156,6 +156,7 @@ _ud = re.compile('%([0-9a-hA-H]{2})', re.MULTILINE)
|
||||||
urldecode = lambda x: _ud.sub(lambda m: chr(int(m.group(1), 16)), x)
|
urldecode = lambda x: _ud.sub(lambda m: chr(int(m.group(1), 16)), x)
|
||||||
|
|
||||||
def parse_url(url):
|
def parse_url(url):
|
||||||
|
from decimal import Decimal
|
||||||
url = str(url)
|
url = str(url)
|
||||||
o = url[8:].split('?')
|
o = url[8:].split('?')
|
||||||
address = o[0]
|
address = o[0]
|
||||||
|
@ -168,9 +169,18 @@ def parse_url(url):
|
||||||
for p in params:
|
for p in params:
|
||||||
k,v = p.split('=')
|
k,v = p.split('=')
|
||||||
uv = urldecode(v)
|
uv = urldecode(v)
|
||||||
if k == 'amount': amount = uv
|
if k == 'amount':
|
||||||
elif k == 'message': message = uv
|
amount = uv
|
||||||
elif k == 'label': label = uv
|
m = re.match('([0-9\.]+)X([0-9])', uv)
|
||||||
|
if m:
|
||||||
|
k = int(m.group(2)) - 8
|
||||||
|
amount = Decimal(m.group(1)) * pow( Decimal(10) , k)
|
||||||
|
else:
|
||||||
|
amount = Decimal(uv)
|
||||||
|
elif k == 'message':
|
||||||
|
message = uv
|
||||||
|
elif k == 'label':
|
||||||
|
label = uv
|
||||||
elif k == 'signature':
|
elif k == 'signature':
|
||||||
identity, signature = uv.split(':')
|
identity, signature = uv.split(':')
|
||||||
url = url.replace('&%s=%s'%(k,v),'')
|
url = url.replace('&%s=%s'%(k,v),'')
|
||||||
|
|
Loading…
Reference in New Issue