From 17c2a747072bdc13bb4878f7e81cd8f8bea499e7 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Fri, 17 Jan 2014 00:15:33 +0100 Subject: [PATCH] display an error message when user IP address is localized outside of France (closes #1327) --- modules/voyagessncf/browser.py | 3 ++- modules/voyagessncf/pages.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/voyagessncf/browser.py b/modules/voyagessncf/browser.py index d75d9083..1c917677 100644 --- a/modules/voyagessncf/browser.py +++ b/modules/voyagessncf/browser.py @@ -21,7 +21,7 @@ from weboob.tools.browser import BaseBrowser from .pages import CitiesPage, SearchPage, SearchErrorPage, \ - SearchInProgressPage, ResultsPage + SearchInProgressPage, ResultsPage, ForeignPage __all__ = ['VoyagesSNCFBrowser'] @@ -38,6 +38,7 @@ class VoyagesSNCFBrowser(BaseBrowser): 'http://www.voyages-sncf.com/billet-train\?.+': SearchErrorPage, 'http://www.voyages-sncf.com/billet-train/recherche-en-cours.*': SearchInProgressPage, 'http://www.voyages-sncf.com/billet-train/resultat.*': ResultsPage, + 'http://(?P\w{2})\.voyages-sncf.com/\w{2}/.*': ForeignPage, } def get_stations(self): diff --git a/modules/voyagessncf/pages.py b/modules/voyagessncf/pages.py index 31a7de73..7f2f2d8a 100644 --- a/modules/voyagessncf/pages.py +++ b/modules/voyagessncf/pages.py @@ -28,9 +28,14 @@ from weboob.tools.mech import ClientForm from weboob.capabilities.base import UserError, Currency -__all__ = ['CitiesPage', 'SearchPage'] +__all__ = ['CitiesPage', 'SearchPage', 'SearchErrorPage', 'SearchInProgressPage', + 'ResultsPage', 'ForeignPage'] +class ForeignPage(BasePage): + def on_loaded(self): + raise UserError('Your IP address is localized in a country not supported by this module (%s). Currently only the French website is supported.' % self.group_dict['country']) + class CitiesPage(BasePage): def get_stations(self): result = json.loads(self.document[self.document.find('{'):-2])