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() | 
