summaryrefslogtreecommitdiff
path: root/chimere/route.py
diff options
context:
space:
mode:
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
commit77c4e8a2e20ace72a88bcada608be89dd588f49a (patch)
tree9100a8583202b9be5a86c66ffbb370928279bbf4 /chimere/route.py
parent149185cda723c2d60fb581c5014ddedfa3a4fdf9 (diff)
downloadChimè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.py25
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()