From ea36a541e5fcb84a85153b0bee1e41556915fe8c Mon Sep 17 00:00:00 2001 From: Juke Date: Fri, 5 Feb 2010 03:26:27 +0100 Subject: [PATCH 1/1] VERSION 0.1.1 Modelisation objet --- TODO | 17 +++++++++++++-- gtk_transilien.py | 62 +++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 66 insertions(+), 13 deletions(-) diff --git a/TODO b/TODO index 469703a..c402dd5 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,4 @@ -TODO : -0.2.0 : + 0.2.0 : FIX : Intercepter les erreurs de Transilien.fr FIX : Intercepter les erreurs Reseaux TODO : Integrer python-conix @@ -17,6 +16,20 @@ TODO : TODO : Possibilité de bookmarker des trajets TODO : Faire un .deb TODO : Trouver une icone + TODO : Remplacer liste des gares par un assesseur + TODO : Remplacer get_liste_train par un assesseur + TODO : Remplacer get_liste_horaire par un assesseur + TODO : Trier les gares par ordre alphabetique + FIX : Intercepter les entrées vides + TODO : ajouter les argument à l'url avec httplib + TODO : ajouter les quais + TODO : ajouter les terminus + TODO : enlever les print de debug + TODO : Corriger l'indentation + TODO : corriger les noms des variables + + + diff --git a/gtk_transilien.py b/gtk_transilien.py index e221c31..fb8b156 100755 --- a/gtk_transilien.py +++ b/gtk_transilien.py @@ -14,6 +14,7 @@ app_name = 'NameOfYourApp' # the name of your app app_version = '1.0' # the version number of your app initial_mode = FremantleRotation.AUTOMATIC + class tableParser(HTMLParser.HTMLParser): def __init__(self): HTMLParser.HTMLParser.__init__(self) @@ -52,6 +53,44 @@ class tableParser(HTMLParser.HTMLParser): self.a_code_de_mission ^= (self.a_code_de_mission and tag == 'a') self.heure_de_passage ^= (self.heure_de_passage and tag == 'td') +class Trajet(object): + def __init__(self, gare_source, gare_dest): + self.gare_source = gare_source + self.gare_dest = gare_dest + self.parse() + def get_liste_train(self): + return self.p.liste_train + def get_liste_horaire(self): + return self.p.liste_horaire + def parse(self): + self.p = tableParser() + print "URL:" + print 'http://www.transilien.com/web/ITProchainsTrainsAvecDest.do?codeTr3aDepart='+self.gare_source.shortname+'&codeTr3aDest='+self.gare_dest.shortname+'&urlModule=/site/pid/184&gareAcc=true' + self.p.feed(urllib2.urlopen('http://www.transilien.com/web/ITProchainsTrainsAvecDest.do?codeTr3aDepart='+self.gare_source.shortname+'&codeTr3aDest='+self.gare_dest.shortname+'&urlModule=/site/pid/184&gareAcc=true').read()) + +class ConfFile(object): + def __init__(self, fichier): + self.c = ConfigParser.ConfigParser() + self.c.read(fichier) + def get_short_name(self, longname): + return self.c.get('ListeDesGares', longname) + def get_liste_des_gares(self): + return self.c.items('ListeDesGares') + +class LongNameGare(object): + def __init__(self, longname): + self.longname = longname + def get_gare(self, conffile): + short_name = conffile.get_short_name(self.longname) + return Gare(short_name) + +class Gare(object): + def __init__(self, shortname): + self.shortname = shortname + + + + class TransilienUI: def __init__(self): mainWindow = hildon.Window() @@ -78,9 +117,7 @@ class TransilienUI: self.combo_source = hildon.TouchSelectorEntry(text=True) self.combo_dest = hildon.TouchSelectorEntry(text=True) - self.c = ConfigParser.ConfigParser() - self.c.read('example.cfg') - for i in self.c.items('ListeDesGares'): + for i in ConfFile('example.cfg').get_liste_des_gares(): self.combo_source.append_text(i[0]) self.combo_dest.append_text(i[0]) picker_button_source.set_selector(self.combo_source) @@ -90,7 +127,6 @@ class TransilienUI: picker_button_dest.set_title("Gare d'arrivee") picker_button_dest.set_selector(self.combo_dest) - vBox = gtk.VBox() hBox = gtk.HBox() vBox.pack_start(hBox) @@ -108,16 +144,20 @@ class TransilienUI: def on_refreshButton_clicked(self, widget): self.treestore.clear() - p = tableParser() - print self.c.get('ListeDesGares', self.combo_source.get_current_text()) - print self.c.get('ListeDesGares', self.combo_dest.get_current_text()) - p.feed(urllib2.urlopen('http://www.transilien.com/web/ITProchainsTrainsAvecDest.do?codeTr3aDepart='+self.c.get('ListeDesGares', self.combo_source.get_current_text())+'&codeTr3aDest='+self.c.get('ListeDesGares', self.combo_dest.get_current_text())+'&urlModule=/site/pid/184&gareAcc=true').read()) + gare_source = LongNameGare(self.combo_source.get_current_text()).get_gare(ConfFile('example.cfg')) + gare_dest = LongNameGare(self.combo_dest.get_current_text()).get_gare(ConfFile('example.cfg')) + trajet = Trajet(gare_source, gare_dest) + print trajet + print trajet.get_liste_train() z=0 - for i in p.liste_train: - print p.liste_horaire[z] - self.treestore.append(None, [i, p.liste_horaire[z]]) + for i in trajet.get_liste_train(): + liste_horaire = trajet.get_liste_horaire() + print liste_horaire[z] + self.treestore.append(None, [i, liste_horaire[z]]) z += 1 + + if __name__ == "__main__": TransilienUI() gtk.main() -- 1.7.9.5