From f86dfc92959bd53685b347efd4a7ceb90d5959d3 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sun, 17 Mar 2019 13:51:03 +0100 Subject: [PATCH] backport ing fix on labels --- modules/ing/api/accounts_page.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/modules/ing/api/accounts_page.py b/modules/ing/api/accounts_page.py index fd91e8225b..f3dccbda91 100644 --- a/modules/ing/api/accounts_page.py +++ b/modules/ing/api/accounts_page.py @@ -19,13 +19,31 @@ from __future__ import unicode_literals +import re + from weboob.browser.pages import LoggedPage, JsonPage from weboob.browser.elements import method, DictElement, ItemElement from weboob.browser.filters.json import Dict from weboob.browser.filters.standard import ( - CleanText, CleanDecimal, Date, Eval, + CleanText, CleanDecimal, Date, Eval, Lower, Format, Field, ) -from weboob.capabilities.bank import Account, Transaction +from weboob.capabilities.bank import Account +from weboob.tools.capabilities.bank.transactions import FrenchTransaction + + +class Transaction(FrenchTransaction): + PATTERNS = [(re.compile(u'^retrait dab (?P
\d{2})/(?P\d{2})/(?P\d{4}) (?P.*)'), FrenchTransaction.TYPE_WITHDRAWAL), + # Withdrawal in foreign currencies will look like "retrait 123 currency" + (re.compile(u'^retrait (?P.*)'), FrenchTransaction.TYPE_WITHDRAWAL), + (re.compile(u'^carte (?P
\d{2})/(?P\d{2})/(?P\d{4}) (?P.*)'), FrenchTransaction.TYPE_CARD), + (re.compile(u'^virement (sepa )?(emis vers|recu|emis)? (?P.*)'), FrenchTransaction.TYPE_TRANSFER), + (re.compile(u'^remise cheque(?P.*)'), FrenchTransaction.TYPE_DEPOSIT), + (re.compile(u'^cheque (?P.*)'), FrenchTransaction.TYPE_CHECK), + (re.compile(u'^prelevement (?P.*)'), FrenchTransaction.TYPE_ORDER), + (re.compile(u'^prlv sepa (?P.*?) : .*'), FrenchTransaction.TYPE_ORDER), + (re.compile(u'^prélèvement sepa en faveur de (?P.*)'), FrenchTransaction.TYPE_ORDER), + (re.compile(u'^commission sur (?P.*)'), FrenchTransaction.TYPE_BANK), + ] class AccountsPage(LoggedPage, JsonPage): @@ -56,10 +74,12 @@ class item(ItemElement): klass = Transaction obj_id = Eval(str, Dict('id')) - obj_label = CleanText(Dict('detail')) obj_amount = CleanDecimal(Dict('amount')) obj_date = Date(Dict('effectiveDate')) + def obj_raw(self): + return Transaction.Raw(Lower(Dict('detail')))(self) or Format('%s %s', Field('date'), Field('amount'))(self) + class ComingPage(LoggedPage, JsonPage): @method @@ -69,7 +89,9 @@ class iter_coming(DictElement): class item(ItemElement): klass = Transaction - obj_label = Dict('label') obj_amount = CleanDecimal(Dict('amount')) obj_date = Date(Dict('effectiveDate')) obj_vdate = Date(Dict('operationDate')) + + def obj_raw(self): + return Transaction.Raw(Lower(Dict('label')))(self) or Format('%s %s', Field('date'), Field('amount'))(self) -- GitLab