diff --git a/tcl.py b/tcl.py index 817c34c..fa8fe8c 100644 --- a/tcl.py +++ b/tcl.py @@ -14,9 +14,19 @@ class Terminus: def __init__(self, name): self.name = name self.horaires = [] + self.estimated = False - def add_horaire(self, horaire): - self.horaires.append(horaire) + def add_horaire(self, horaire, est): + if self.estimated == False: + if est == "E": + self.horaires = [] + self.horaires.append(horaire) + self.estimated = True + else: + self.horaires.append(horaire) + else: + if est == "E": + self.horaires.append(horaire) def get_horaires(self): return self.sort_horaires() @@ -34,6 +44,9 @@ class Terminus: inth.sort() return inth + def get_estimated(self): + return self.estimated + class Ligne: def __init__(self, name): self.name = name @@ -57,7 +70,6 @@ class Ligne: return self.name - class Config(BaseProxyConfig): def do_update(self, helper: ConfigUpdateHelper) -> None: helper.copy("mail") @@ -80,6 +92,9 @@ class Tcl(Plugin): - Funis : F1, F2 ATTENTION : Le bot ne vérifie pas que la ligne existe !tcl horaires arrêt -> Retourne les horaires à l'arrêt + La réponse indique si les horaires sont théoriques (T) ou estimés (E) + Les horaires estimés sont préférés, si pas dispo, les horaires théoriques + sont affichés """ ) @@ -139,6 +154,9 @@ class Tcl(Plugin): await evt.respond( """ !tcl horaires arrêt -> Retourne les horaires à l'arrêt + La réponse indique si les horaires sont théoriques (T) ou estimés (E) + Les horaires estimés sont préférés, si pas dispo, les horaires théoriques + sont affichés """ ) return @@ -181,43 +199,44 @@ class Tcl(Plugin): for value in values: if value["id"] in Ids: - if value["type"] == "E": #Filtré sur les estimés et non théoriques - # Les metros ont leur propre code - if value["coursetheorique"].split('-')[0] == "301A" : - transport = "A" - elif value["coursetheorique"].split('-')[0] == "303" : - transport = "C" - elif value["coursetheorique"].split('-')[0] == "325" : - transport = "F1" - elif value["coursetheorique"].split('-')[0] == "326" : - transport = "F2" - elif value["coursetheorique"].split('-')[0] == "304" : - transport = "D" - elif value["coursetheorique"].split('-')[0] == "302A" : - transport = "B" + # Les metros ont leur propre code + if value["coursetheorique"].split('-')[0] == "301A" : + transport = "A" + elif value["coursetheorique"].split('-')[0] == "303" : + transport = "C" + elif value["coursetheorique"].split('-')[0] == "325" : + transport = "F1" + elif value["coursetheorique"].split('-')[0] == "326" : + transport = "F2" + elif value["coursetheorique"].split('-')[0] == "304" : + transport = "D" + elif value["coursetheorique"].split('-')[0] == "302A" : + transport = "B" + else: + l = value["coursetheorique"].split('-')[0] + if l[-1:].isdigit(): + transport = l else: - l = value["coursetheorique"].split('-')[0] - if l[-1:].isdigit(): - transport = l + transport = value["coursetheorique"].split('-')[0][:-1] + if value["delaipassage"].find('min') < 0 : + continue + found = False + for line in lines: + if line.get_name() == transport: + term = line.get_terminus(value["direction"]) + if term is None: + newterm = Terminus(value["direction"]) + newterm.add_horaire(value["delaipassage"], value["type"]) + line.add_terminus(newterm) else: - transport = value["coursetheorique"].split('-')[0][:-1] - found = False - for line in lines: - if line.get_name() == transport: - term = line.get_terminus(value["direction"]) - if term is None: - newterm = Terminus(value["direction"]) - newterm.add_horaire(value["delaipassage"]) - line.add_terminus(newterm) - else: - term.add_horaire(value["delaipassage"]) - found = True - if not found : - newLine = Ligne(transport) - newterm = Terminus(value["direction"]) - newterm.add_horaire(value["delaipassage"]) - newLine.add_terminus(newterm) - lines.append(newLine) + term.add_horaire(value["delaipassage"], value["type"]) + found = True + if not found : + newLine = Ligne(transport) + newterm = Terminus(value["direction"]) + newterm.add_horaire(value["delaipassage"], value["type"]) + newLine.add_terminus(newterm) + lines.append(newLine) for line in lines: self.log.info("Ligne " + line.get_name()) respText += "#### Ligne " + line.get_name() + "\n" @@ -226,7 +245,11 @@ class Tcl(Plugin): self.log.info(t.get_name()) if t.get_name() == nomArret: continue - respText += "***Direction " + t.get_name() + "***\n" + respText += "***Direction " + t.get_name() + if t.get_estimated() == True: + respText += " (E)***\n" + else: + respText += " (T)***\n" hs = t.get_horaires() hs.sort() for idx, h in enumerate(hs): @@ -238,7 +261,7 @@ class Tcl(Plugin): if idx == 2: ##On limite à 3 items break respText += "\n" - await evt.respond(respText)#, allow_html=True) + await evt.respond(respText) else: await evt.respond(self.help_msg())