diff --git a/weboob/backends/canaltp/backend.py b/weboob/backends/canaltp/backend.py index 52694360..4f05c8d6 100644 --- a/weboob/backends/canaltp/backend.py +++ b/weboob/backends/canaltp/backend.py @@ -24,6 +24,10 @@ from weboob.capabilities.travel import ICapTravel, Station, Departure from .browser import CanalTP class CanalTPBackend(Backend, ICapTravel): + MAINTAINER = 'Romain Bignon' + EMAIL = 'romain@peerfuse.org' + VERSION = '1.0' + def __init__(self, weboob): Backend.__init__(self, weboob) @@ -32,9 +36,9 @@ class CanalTPBackend(Backend, ICapTravel): for _id, name in canaltp.iter_station_search(pattern): yield Station(_id, name) - def iter_station_departures(self, station_id): + def iter_station_departures(self, station_id, arrival_id=None): canaltp = CanalTP() - for i, d in enumerate(canaltp.iter_station_departures(station_id)): + for i, d in enumerate(canaltp.iter_station_departures(station_id, arrival_id)): departure = Departure(i, d['type'], d['time']) departure.departure_station = d['departure'] departure.arrival_station = d['arrival'] diff --git a/weboob/backends/canaltp/browser.py b/weboob/backends/canaltp/browser.py index 5c4f402a..c01d38ac 100644 --- a/weboob/backends/canaltp/browser.py +++ b/weboob/backends/canaltp/browser.py @@ -40,7 +40,7 @@ class CanalTP(Browser): else: yield _id, toUnicode(name) - def iter_station_departures(self, station_id): + def iter_station_departures(self, station_id, arrival_id=None): result = self.openurl(u"http://widget.canaltp.fr/Prochains_departs_15122009/dev/index.php?gare=%s" % unicode(station_id)).read() result = result departure = '' diff --git a/weboob/capabilities/travel.py b/weboob/capabilities/travel.py index 616b9525..193d86c9 100644 --- a/weboob/capabilities/travel.py +++ b/weboob/capabilities/travel.py @@ -30,11 +30,12 @@ class ICapTravel: """ raise NotImplementedError() - def iter_station_departures(self, station_id): + def iter_station_departures(self, station_id, arrival_id): """ Iterate on departures. @param station_id [id] the station id + @param arrival_id [id] optionnal arrival station id @return [iter] result of Departure objects """ raise NotImplementedError() diff --git a/weboob/frontends/travel/application.py b/weboob/frontends/travel/application.py index 089d09a5..da5124d4 100644 --- a/weboob/frontends/travel/application.py +++ b/weboob/frontends/travel/application.py @@ -74,8 +74,8 @@ class Application(BaseApplication): def command_help(self): print 'Available commands are:' - print ' stations Search stations' - print ' departures List all departures on a special station' + print ' stations Search stations' + print ' departures [arrival] List all departures on a special station' def command_stations(self, pattern): print ".--------------------------------.---------------------------------------------." @@ -90,13 +90,13 @@ class Application(BaseApplication): print "| %3d stations listed |" % count print "'------------------------------------------------------------------------------'" - def command_departures(self, station): + def command_departures(self, station, arrival_station=None): print ".-----.-----------.-------.-----------------------.-------.--------------------." print "| ID | Type | Time | Arrival | Late | Info |" print "+-----+-----------+-------+-----------------------+-------+--------------------+" count = 0 for name, backend, in self.weboob.iter_backends(): - for departure in backend.iter_station_departures(station): + for departure in backend.iter_station_departures(station, arrival_station): print u"| %3d | %-9s | %5s | %-21s | %5s | %-18s |" % (departure.id, departure.type, departure.time.strftime("%H:%M"),