parse_url: parse exponents

This commit is contained in:
ThomasV 2014-01-08 14:08:53 +01:00
parent e9862e0b71
commit 7963f22a80
1 changed files with 13 additions and 3 deletions

View File

@ -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)
def parse_url(url):
from decimal import Decimal
url = str(url)
o = url[8:].split('?')
address = o[0]
@ -168,9 +169,18 @@ def parse_url(url):
for p in params:
k,v = p.split('=')
uv = urldecode(v)
if k == 'amount': amount = uv
elif k == 'message': message = uv
elif k == 'label': label = uv
if k == 'amount':
amount = 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':
identity, signature = uv.split(':')
url = url.replace('&%s=%s'%(k,v),'')