-TODO :
-0.2.0 :
+ 0.2.0 :
FIX : Intercepter les erreurs de Transilien.fr
FIX : Intercepter les erreurs Reseaux
TODO : Integrer python-conix
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
+
+
+
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)
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()
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)
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)
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()