Merge branch 'TheCranston-master'; close #64
This commit is contained in:
commit
bbe1f4dc61
|
|
@ -133,8 +133,10 @@ def parse_comment(body, parsed):
|
||||||
|
|
||||||
def parse_data_extentions(body):
|
def parse_data_extentions(body):
|
||||||
parsed = {}
|
parsed = {}
|
||||||
match = re.findall(r"^([0-9 .]{3})/([0-9 .]{3})", body)
|
|
||||||
|
|
||||||
|
# course speed bearing nrq
|
||||||
|
# format: 111/222/333/444text
|
||||||
|
match = re.findall(r"^([0-9 .]{3})/([0-9 .]{3})", body)
|
||||||
if match:
|
if match:
|
||||||
cse, spd = match[0]
|
cse, spd = match[0]
|
||||||
body = body[7:]
|
body = body[7:]
|
||||||
|
|
@ -151,17 +153,25 @@ def parse_data_extentions(body):
|
||||||
if nrq.isdigit():
|
if nrq.isdigit():
|
||||||
parsed.update({'nrq': int(nrq)})
|
parsed.update({'nrq': int(nrq)})
|
||||||
else:
|
else:
|
||||||
match = re.findall(r"^(PHG(\d[\x30-\x7e]\d\d[0-9A-Z]?))", body)
|
# PHG format: PHGabcd....
|
||||||
|
# RHGR format: RHGabcdr/....
|
||||||
|
match = re.findall(r"^(PHG(\d[\x30-\x7e]\d\d)([0-9A-Z]\/)?)", body)
|
||||||
if match:
|
if match:
|
||||||
ext, phg = match[0]
|
print(match)
|
||||||
|
ext, phg, phgr = match[0]
|
||||||
body = body[len(ext):]
|
body = body[len(ext):]
|
||||||
parsed.update({'phg': phg})
|
parsed.update({'phg': phg})
|
||||||
|
|
||||||
|
if phgr:
|
||||||
|
# PHG rate per hour
|
||||||
|
parsed['phg'] += phgr[0]
|
||||||
|
parsed.update({'phg_rate': int(phgr[0], 16)}) # as decimal
|
||||||
else:
|
else:
|
||||||
match = re.findall(r"^RNG(\d{4})", body)
|
match = re.findall(r"^RNG(\d{4})", body)
|
||||||
if match:
|
if match:
|
||||||
rng = match[0]
|
rng = match[0]
|
||||||
body = body[7:]
|
body = body[7:]
|
||||||
parsed.update({'rng': int(rng) * 1.609344}) # miles to km
|
parsed.update({'rng': int(rng) * 1.609344}) # miles to km
|
||||||
|
|
||||||
return body, parsed
|
return body, parsed
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -312,15 +312,36 @@ class DataExtentionsTC(unittest.TestCase):
|
||||||
'nrq': 345,
|
'nrq': 345,
|
||||||
})
|
})
|
||||||
|
|
||||||
def test_PHG(self):
|
def test_PHGR_1(self):
|
||||||
body = "PHG1234Atext"
|
body = "PHG12345/text"
|
||||||
remaining, parsed = parse_data_extentions(body)
|
remaining, parsed = parse_data_extentions(body)
|
||||||
|
|
||||||
self.assertEqual(remaining, 'text')
|
self.assertEqual(remaining, 'text')
|
||||||
self.assertEqual(parsed, {
|
self.assertEqual(parsed, {
|
||||||
'phg': '1234A',
|
'phg': '12345',
|
||||||
|
'phg_rate': 5,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def test_PHGR_2(self):
|
||||||
|
body = "PHG1234F/text"
|
||||||
|
remaining, parsed = parse_data_extentions(body)
|
||||||
|
|
||||||
|
self.assertEqual(remaining, 'text')
|
||||||
|
self.assertEqual(parsed, {
|
||||||
|
'phg': '1234F',
|
||||||
|
'phg_rate': 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
def test_PHG_1(self):
|
||||||
|
body = "PHG1234Atext"
|
||||||
|
remaining, parsed = parse_data_extentions(body)
|
||||||
|
|
||||||
|
self.assertEqual(remaining, 'Atext')
|
||||||
|
self.assertEqual(parsed, {
|
||||||
|
'phg': '1234',
|
||||||
|
})
|
||||||
|
|
||||||
|
def test_PHG_2(self):
|
||||||
body = "PHG1234text"
|
body = "PHG1234text"
|
||||||
remaining, parsed = parse_data_extentions(body)
|
remaining, parsed = parse_data_extentions(body)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue