- def __init__(self):
- HTMLParser.HTMLParser.__init__(self)
- self.table_horaires3 = False
- self.code_de_mission = False
- self.a_code_de_mission = False
- self.heure_de_passage = False
- self.liste_train = []
- self.liste_horaire = []
-
- def handle_starttag(self, tag, attrs):
- if (tag == 'table' and (dict(attrs)['class'] == 'horaires3')):
- self.table_horaires3 = True
-
- elif self.table_horaires3 and tag == 'td':
- try:
- self.code_de_mission = (
- dict(attrs)['headers'] == 'Code_de_mission')
- self.heure_de_passage = (
- dict(attrs)['headers'] == 'Heure_de_passage')
- except KeyError:
- if dict(attrs).has_key('headers'):
- raise
- else:
- pass
- else:
- self.a_code_de_mission = (tag == 'a' and self.code_de_mission)
-
- def handle_data(self, data):
- if self.a_code_de_mission:
- self.liste_train.append(data.strip())
- if self.heure_de_passage:
- self.liste_horaire.append(data.strip())
-
- def handle_endtag(self,tag):
- self.a_code_de_mission ^= (self.a_code_de_mission and tag == 'a')
- self.heure_de_passage ^= (self.heure_de_passage and tag == 'td')
+ def __init__(self):
+ HTMLParser.HTMLParser.__init__(self)
+ self.table_horaires3 = False
+ self.code_de_mission = False
+ self.a_code_de_mission = False
+ self.heure_de_passage = False
+ self.liste_train = []
+ self.liste_horaire = []
+ self.list_ligne_horaire = []
+
+ def handle_starttag(self, tag, attrs):
+ if (tag == 'table' and (dict(attrs)['class'] == 'horaires3')):
+ self.table_horaires3 = True
+
+ elif self.table_horaires3 and tag == 'td':
+ try:
+ self.code_de_mission = (
+ dict(attrs)['headers'] == 'Code_de_mission')
+ self.heure_de_passage = (
+ dict(attrs)['headers'] == 'Heure_de_passage')
+ except KeyError:
+ if dict(attrs).has_key('headers'):
+ raise
+ else:
+ pass
+ else:
+ self.a_code_de_mission = (tag == 'a' and self.code_de_mission)
+
+ def handle_data(self, data):
+ if self.a_code_de_mission:
+ self.liste_train.append(data.strip())
+ if self.heure_de_passage:
+ self.liste_horaire.append(data.strip())
+
+ def handle_endtag(self,tag):
+ self.a_code_de_mission ^= (self.a_code_de_mission and tag == 'a')
+ self.heure_de_passage ^= (self.heure_de_passage and tag == 'td')
+
+ def get_list_ligne_horaire(self):
+ print 'get_list_ligne_horaire'
+ z = 0
+ print self.liste_train
+ for i in self.liste_train:
+ self.list_ligne_horaire.append(LigneHoraire(code_mission=i, heure_de_passage=self.liste_horaire[z]))
+ z += 1
+ return self.list_ligne_horaire
+
+
+
+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'
+ rsrc = 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')
+ self.p.feed(rsrc.read())
+ print "parsing ok"
+
+ def refresh_treestore(self, treestore):
+ print 'refresh'
+ print treestore
+
+ treestore.clear()
+ liste_ligne_horaire = self.p.get_list_ligne_horaire()
+ print liste_ligne_horaire
+ for i in liste_ligne_horaire:
+ print i
+ i.add_to_treestore(treestore)
+
+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
+
+
+