VERSION 0.1.1 Modelisation objet
[masstransit] / gtk_transilien.py
index e221c31..fb8b156 100755 (executable)
@@ -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()