diff --git a/modules/leclercmobile/backend.py b/modules/leclercmobile/backend.py index dafe364b..bbf1c41d 100644 --- a/modules/leclercmobile/backend.py +++ b/modules/leclercmobile/backend.py @@ -96,3 +96,7 @@ class LeclercMobileBackend(BaseBackend, ICapBill): with self.browser: return self.browser.readurl(bill._url) + + def get_balance(self, subscription): + with self.browser: + return self.browser.get_balance() diff --git a/modules/leclercmobile/browser.py b/modules/leclercmobile/browser.py index 074d0b4f..4d7412fa 100644 --- a/modules/leclercmobile/browser.py +++ b/modules/leclercmobile/browser.py @@ -129,3 +129,10 @@ class Leclercmobile(BaseBrowser): for a in l: if a.id == id: return a + + def get_balance(self): + if not self.is_on_page(HistoryPage): + self.location(self.conso) + response = self.openurl('/EspaceClient/pgeWERL015_RecupReleveConso.aspx?m=-0') + pdf = PdfPage(StringIO.StringIO(response.read())) + return pdf.get_balance() diff --git a/modules/leclercmobile/pages/history.py b/modules/leclercmobile/pages/history.py index 2a91df69..0337c456 100644 --- a/modules/leclercmobile/pages/history.py +++ b/modules/leclercmobile/pages/history.py @@ -80,6 +80,14 @@ class PdfPage(): details.append(detail) return details + def get_balance(self): + for calls in self.get_calls(): + if "Votre solde" in calls.label: + detail = Detail() + detail.price = calls.price + detail.label = u"Balance" + return detail + # Standard pdf text extractor take text line by line # But the position in the file is not always the "real" position to display... # It produce some unsorted and unparsable data diff --git a/weboob/capabilities/bill.py b/weboob/capabilities/bill.py index 2bd89e1d..601b917f 100644 --- a/weboob/capabilities/bill.py +++ b/weboob/capabilities/bill.py @@ -155,6 +155,6 @@ class ICapBill(ICapCollection): :param subscription: subscription to get balance :type subscription: :class:`Subscription` - :rtype :class:`Decimal` + :rtype :class:`Detail` """ raise NotImplementedError()