From b270d104b349d51e0beb5559acc2df1d12b7c46a Mon Sep 17 00:00:00 2001 From: Quentin Defenouillere Date: Thu, 5 Nov 2020 17:02:22 +0100 Subject: [PATCH] [wiseed] Handle valuations in US format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For some connections the valuations are displayed in the US Format (€100.00) instead of the French format so we handle both cases with Coalesce. --- modules/wiseed/pages.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/modules/wiseed/pages.py b/modules/wiseed/pages.py index 7482b6b42d..aae96ba011 100644 --- a/modules/wiseed/pages.py +++ b/modules/wiseed/pages.py @@ -21,9 +21,12 @@ from weboob.browser.pages import LoggedPage, HTMLPage from weboob.browser.filters.html import TableCell -from weboob.browser.filters.standard import CleanText, CleanDecimal, Regexp +from weboob.browser.filters.standard import ( + CleanText, CleanDecimal, Regexp, Coalesce, +) from weboob.browser.elements import method, ItemElement, TableElement from weboob.exceptions import BrowserIncorrectPassword +from weboob.capabilities.base import NotAvailable from weboob.capabilities.wealth import Investment from weboob.tools.capabilities.bank.investments import create_french_liquidity @@ -54,7 +57,10 @@ def get_user_id(self): )(self.doc) def get_liquidities(self): - value = CleanDecimal.French(CleanText('//a[starts-with(text(),"Compte de paiement")]'))(self.doc) + value = Coalesce( + CleanDecimal.French('//a[starts-with(text(),"Compte de paiement")]', default=NotAvailable), + CleanDecimal.US('//a[starts-with(text(),"Compte de paiement")]', default=NotAvailable), + )(self.doc) return create_french_liquidity(value) @method @@ -115,7 +121,9 @@ class item(ItemElement): klass = Investment obj_label = CleanText(TableCell('label')) - obj_valuation = CleanDecimal.French(Regexp( - CleanText(TableCell('details')), - r'^(.*?) €', # can be 100,00 € + Frais de 0,90 € - )) + + # Can be "100,00 € + Frais de 0,90 €" or "€100.00" + obj_valuation = Coalesce( + CleanDecimal.French(Regexp(CleanText(TableCell('details')), r'^(.*?) €', default=None), default=None), + CleanDecimal.US(Regexp(CleanText(TableCell('details')), r'^€([^ ]+)', default=None), default=None), + ) -- GitLab