diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-25 03:17:56 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-08-25 03:17:56 +0200 |
commit | 77c4e8a2e20ace72a88bcada608be89dd588f49a (patch) | |
tree | 9100a8583202b9be5a86c66ffbb370928279bbf4 /chimere/route.py | |
parent | 149185cda723c2d60fb581c5014ddedfa3a4fdf9 (diff) | |
download | Chimère-77c4e8a2e20ace72a88bcada608be89dd588f49a.tar.bz2 Chimère-77c4e8a2e20ace72a88bcada608be89dd588f49a.zip |
Improvement in route display and parsing
Diffstat (limited to 'chimere/route.py')
-rw-r--r-- | chimere/route.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/chimere/route.py b/chimere/route.py index bc08a39..9c8b59c 100644 --- a/chimere/route.py +++ b/chimere/route.py @@ -67,7 +67,7 @@ class RoutinoRouter(Router): p.communicate() ds = DataSource(tmp_dir + 'shortest-track.gpx') if not ds: - return [], None + return [], None, None layer = ds[0] trk_layer = None for layer in ds: @@ -83,10 +83,27 @@ class RoutinoRouter(Router): for line in open(tmp_dir + 'shortest.html').readlines(): if [True for r in self.re_desc if r.match(line)]: desc.append(BeautifulSoup(line).prettify()) - desc = ['<table>'] + desc[1:-2] + [desc[-1], '</table>'] - desc = BeautifulSoup('\n'.join(desc)).prettify() + total = self.webify(desc[-1]) + desc = desc[1:-2] + # very fragile piece of code but only break the numerotation + number_tpl = '<tr class="n"><span class="number">%d.</span>' + desc = [re.sub('<tr class="n">', number_tpl % (idx/2+1), d) + if idx % 2 else d + for idx, d in enumerate(desc)] + desc = self.webify(BeautifulSoup('\n'.join(desc)).prettify()) + desc = re.sub(" \[", "", desc) + desc = re.sub(" \]", "", desc) shutil.rmtree(tmp_dir) - return res, desc + return res, desc, total + + @staticmethod + def webify(lbl): + lbl = re.sub("<td", "<span", lbl) + lbl = re.sub("</td>", "</span>", lbl) + lbl = re.sub("</tr>", "</div>", lbl) + lbl = re.sub("<tr", "<div", lbl) + return lbl + router = None if settings.CHIMERE_ROUTING_ENGINE['ENGINE'] == 'routino': router = RoutinoRouter() |