X-Git-Url: http://git.maemo.org/git/?p=masstransit;a=blobdiff_plain;f=gtk_transilien.py;h=fb8b156c3e1742ff942ebae525b8f7dc977b7d85;hp=e221c315d575c5b3818574cc6ca9dd59895e50bb;hb=ea36a541e5fcb84a85153b0bee1e41556915fe8c;hpb=b0f044f23cb319183e9c3113fb733c60a21d85aa 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()