base version
[pystan] / debian / pystan / usr / lib / python2.5 / site-packages / pystan / lib / stan.py
diff --git a/debian/pystan/usr/lib/python2.5/site-packages/pystan/lib/stan.py b/debian/pystan/usr/lib/python2.5/site-packages/pystan/lib/stan.py
new file mode 100644 (file)
index 0000000..f4e858c
--- /dev/null
@@ -0,0 +1,239 @@
+# -*- coding: UTF-8 -*-
+
+import urllib2
+from urllib2 import URLError
+
+
+from timetable_parser import StanTimetableParser
+
+class STAN:
+
+       RSS_URL =  'http://www.reseau-stan.com/rss'
+
+       def lines(self):
+
+               return [
+                          { 'id': 158,
+                            'name': u"Nancy République / Champigneulles",
+                            'numbers': ["321"]
+                          },
+                          { 'id': 144,
+                            'name': u"Nancy République / Bouxières-aux-Dames",
+                            'numbers': ["322"]
+                          },
+                          { 'id': 146,
+                            'name': u"Nancy République / Frouard Le Nid",
+                            'numbers': ["323"]
+                          },
+                          { 'id': 148,
+                            'name': u"Nancy République / Pompey Les Vannes",
+                            'numbers': ["324"]
+                          },
+                          { 'id': 150,
+                            'name': u"Nancy République / Pompey Fonds de Lavaux",
+                            'numbers': ["325"]
+                          },
+                          { 'id': 145,
+                            'name': u"Vandoeuvre Vélodrome / Chaligny",
+                            'numbers': ["511"]
+                          },
+                          { 'id': 147,
+                            'name': u"Vandoeuvre Vélodrome / Pont Saint-Vincent",
+                            'numbers': ["512"]
+                          },
+                          { 'id': 149,
+                            'name': u"Vandoeuvre Vélodrome / Messein",
+                            'numbers': ["514"]
+                          },
+                          { 'id': 151,
+                           'name': u"Nancy Place Carnot / Chaligny",
+                            'numbers': ["521"]
+                          },
+                          { 'id': 153,
+                            'name': u"Nancy Place Carnot / Pont Saint-Vincent",
+                            'numbers': ["522"]
+                          },
+                          { 'id': 155,
+                            'name': u"Nancy Place Carnot / Bainville-sur-Madon",
+                            'numbers': ["523"]
+                          },
+                          { 'id': 152,
+                            'name': u"Nancy République / Saint-Nicolas Le Nid",
+                            'numbers': ["621"]
+                          },
+                          { 'id': 157,
+                            'name': u"Nancy République / Saint-Nicolas République",
+                            'numbers': ["622"]
+                          },
+                          { 'id': 156,
+                            'name': u"Nancy République / Dombasle Stand",
+                            'numbers': ["623"]
+                          },
+                          { 'id': 154,
+                            'name': u"Nancy République / Dombasle Maroc",
+                            'numbers': ["624"]
+                          },
+                          { 'id': 126,
+                            'name': u"Vandoeuvre Parc des Expositions / Nancy République",
+                            'numbers': ["129"]
+                          },
+                          { 'id': 133,
+                            'name': u"Ligne 80",
+                            'numbers': ["80"]
+                          },
+                          { 'id': 138,
+                            'name': u"Vandoeuvre CHU Brabois / Essey Mouzimpré",
+                            'numbers': ["Tram 1"]
+                          },
+                          { 'id': 141,
+                            'name': u"Vandoeuvre CHU Brabois / Centre d\'accueil - Villers les Essarts",
+                            'numbers': ["Ptit Stan Vilers"]
+                          },
+                          { 'id': 143,
+                            'name': u"Vandoeuvre CHU Brabois / Vandoeuvre Nations - Médecine préventive ",
+                            'numbers': ["Ptit Stan Vandoeuvre"]
+                          },
+                          { 'id': 140,
+                            'name': u"Laxou Sapinière / Laxou Provinces",
+                            'numbers': ["Ptit Stan Laxou"]
+                          },
+                          { 'id': 142,
+                            'name': u"Nancy Carnot",
+                            'numbers': ["Ptit Stan Colline"]
+                          },
+                          { 'id': 134,
+                            'name': u"Malzéville Sadi Carnot - Nancy Cimetière du Sud",
+                            'numbers': ["Minibus"]
+                          },
+                          { 'id': 159,
+                            'name': u"StanU",
+                            'numbers': ["110"]
+                          },
+                          { 'id': 112,
+                            'name': u"Maxéville Champ le Boeuf - Nancy Haut du Lièvre / Jarville Sion",
+                            'numbers': ["111", "112"]
+                          },
+                          { 'id': 96,
+                            'name': u"Houdemont / Vandoeuvre Charmois",
+                            'numbers': ["114"]
+                          },
+                          { 'id': 98,
+                            'name': u"Ludres / Villers Lycée Stanislas",
+                            'numbers': ["115"]
+                          },
+                          { 'id': 101,
+                            'name': u"Fléville Fleurychamp - Heillecourt / Villers Lycée Stanislas",
+                            'numbers': ["116"]
+                          },
+                          { 'id': 103,
+                            'name': u"Nancy Beauregard / Nancy République",
+                            'numbers': ["121"]
+                          },
+                          { 'id': 135,
+                            'name': u"Villers Clairlieu / Nancy République",
+                            'numbers': ["122", "126"]
+                          },
+                          { 'id': 106,
+                            'name': u"Vandoeuvre Nations / Nancy République",
+                            'numbers': ["123"]
+                          },
+                          { 'id': 109,
+                            'name': u"Laxou Mouzon / Nancy République",
+                            'numbers': ["124"]
+                          },
+                          { 'id': 118,
+                            'name': u"Laxou Provinces / Seichamps",
+                            'numbers': ["130"]
+                          },
+                          { 'id': 95,
+                            'name': u"Maxéville Mairie / Jarville Sion - Heillecourt - Fléville De la Noue",
+                            'numbers': ["131", "132", "133"]
+                          },
+                          { 'id': 97,
+                            'name': u"Villers Lycée Stanislas / Maxéville Lafayette - Malzéville Savlons",
+                            'numbers': ["134", "135"]
+                          },
+                          { 'id': 100,
+                            'name': u"Nancy Cours Léopold / Laneuveville - La Madeleine",
+                            'numbers': ["136", "137"]
+                          },
+                          { 'id': 102,
+                            'name': u"Laxou Champ le Boeuf / Vandoeurvre Roberval",
+                            'numbers': ["138"]
+                          },
+                          { 'id': 104,
+                            'name': u"Nancy Cours Léopold / Ludres",
+                            'numbers': ["139"]
+                          },
+                          { 'id': 114,
+                            'name': u"Malzéville / Saulxures Forêt - Art sur Meurthe",
+                            'numbers': ["141", "142"]
+                          },
+                          { 'id': 108,
+                            'name': u"Malzéville Pixérécourt / Saulxures",
+                            'numbers': ["161"]
+                          },
+                          { 'id': 116,
+                            'name': u"Essey C.E.S / Gérard Barrois Stade Marcel Picot",
+                            'numbers': ["162"]
+                          },
+                          { 'id': 107,
+                            'name': u"Dommartemont / Jarville Sion",
+                            'numbers': ["163"]
+                          },
+                          { 'id': 110,
+                            'name': u"Essey Mouzimpré / Seichamps - Pulnoy (Lignes accessibles PMR)",
+                            'numbers': ["171", "172"]
+                           }
+               ]
+
+
+       def stations(self):
+               '''
+               Extract from http://www.reseau-stan.com/horaires_arret/index7f96.html?rub_code=28
+                         and ...... lieux publics
+               '''
+               return {
+                       }
+
+
+       def search(self, from_location, from_city, to_location, to_city, datetime, restrict=68):
+               cached_result = self.cached_search(from_location, from_city, to_location, to_city, datetime, restrict)
+               if cached_search is not None:
+                       return cached_result
+
+               '''
+               POST to http://www.reseau-stan.com/ri/index.asp
+               from_location:  keywordsDep
+               from_city:      comDep
+               to_location:    keywordsArr
+               to_city:        comArr
+               date:           laDate (11/03/2009)
+               hour:           lHeure (13 = 13h)
+               minute:         laMinute
+               restrict:       typeDate (68 = partir apres, 65 = arriver avant)
+               '''
+               pass
+
+
+       def cached_search(self, from_location, from_city, to_location, to_city, datetime, restrict=68):
+               cache_id = '-'.join([ from_location, from_city, to_location, to_city, datetime, restrict ])
+               pass
+
+       def load_timetable(self, lineid, date, hour):
+               parser = StanTimetableParser()
+               timetable_raw_html_file = None
+               try:
+                       timetable_raw_html_file = self.load_timetable_remote(lineid, date, hour)
+               except URLError, e:
+                       print e
+
+               parser.feed(timetable_raw_html_file)
+               parser.close()
+               return parser.result
+
+       def load_timetable_remote(self, lineid, date, hour):
+               url = 'http://www.reseau-stan.com/horaires_ligne/index.asp?rub_code=6&thm_id=7&gpl_id=0&lign_id=%s' % lineid
+               print url
+               response = urllib2.urlopen(url)
+               return response.read()