diff --git a/modules/amelipro/backend.py b/modules/amelipro/backend.py index 3f0285f5..e334083d 100755 --- a/modules/amelipro/backend.py +++ b/modules/amelipro/backend.py @@ -90,4 +90,4 @@ class AmeliProBackend(BaseBackend, ICapBill): if not isinstance(bill, Bill): bill = self.get_bill(bill) with self.browser: - return self.browser.readurl(bill._url,urllib.urlencode(bill._args)) + return self.browser.readurl(bill._url, urllib.urlencode(bill._args)) diff --git a/modules/amelipro/browser.py b/modules/amelipro/browser.py index d65c5998..608b276b 100755 --- a/modules/amelipro/browser.py +++ b/modules/amelipro/browser.py @@ -18,14 +18,14 @@ # along with weboob. If not, see . import urllib -import mechanize -from weboob.tools.browser import BaseBrowser +from weboob.tools.browser import BaseBrowser, BrowserIncorrectPassword from weboob.capabilities.bill import Detail -from decimal import * +from decimal import Decimal from .pages import LoginPage, HomePage, AccountPage, HistoryPage, BillsPage __all__ = ['AmeliProBrowser'] + class AmeliProBrowser(BaseBrowser): PROTOCOL = 'https' DOMAIN = 'espacepro.ameli.fr' diff --git a/modules/amelipro/pages.py b/modules/amelipro/pages.py index c9f059c1..0ac41138 100755 --- a/modules/amelipro/pages.py +++ b/modules/amelipro/pages.py @@ -21,6 +21,7 @@ from datetime import datetime from decimal import Decimal import re +import urllib from weboob.tools.browser import BasePage from weboob.capabilities.bill import Subscription, Detail, Bill @@ -30,6 +31,7 @@ __all__ = ['LoginPage', 'HomePage', 'AccountPage', 'HistoryPage', 'BillsPage'] # Ugly array to avoid the use of french locale FRENCH_MONTHS = [u'janvier', u'février', u'mars', u'avril', u'mai', u'juin', u'juillet', u'août', u'septembre', u'octobre', u'novembre', u'décembre'] + class LoginPage(BasePage): def login(self, login, password): self.browser.select_form('connexionCompteForm') @@ -37,6 +39,7 @@ class LoginPage(BasePage): self.browser["vp_connexion_portlet_1password"] = password.encode('utf8') self.browser.submit() + class HomePage(BasePage): def on_loaded(self): @@ -57,6 +60,7 @@ class AccountPage(BasePage): sub.subscriber = unicode(name) return sub + class HistoryPage(BasePage): def iter_history(self): @@ -77,9 +81,10 @@ class HistoryPage(BasePage): det.label = lot det.infos = factures_lbl det.datetime = datetime.strptime(date, "%d/%m/%Y").date() - det.price = Decimal(montant.replace(',','.')) + det.price = Decimal(montant.replace(',', '.')) yield det + class BillsPage(BasePage): def iter_bills(self): @@ -91,7 +96,7 @@ class BillsPage(BasePage): date_str = tr.xpath('.//td[@class="cAlignGauche"]')[0].text month_str = date_str.split()[0] - date = datetime.strptime(re.sub(month_str,str(FRENCH_MONTHS.index(month_str) + 1),date_str),"%m %Y").date() + date = datetime.strptime(re.sub(month_str, str(FRENCH_MONTHS.index(month_str) + 1), date_str), "%m %Y").date() amount = tr.xpath('.//td[@class="cAlignDroite"]')[0].text for format in ('CSV', 'PDF'): bil = Bill() @@ -107,5 +112,5 @@ class BillsPage(BasePage): } yield bil - def get_bill(self,bill): - self.location(bill._url, urllib.urlencode(bill._args)) + def get_bill(self, bill): + self.location(bill._url, urllib.urlencode(bill._args))