From 9dd778b949c0dae94eb13ed98060736a5d12c0c5 Mon Sep 17 00:00:00 2001 From: Vincent Ardisson Date: Fri, 24 Mar 2017 14:38:44 +0100 Subject: [PATCH] [cmso] don't return accounts which seem duplicate Some life insurance accounts may be present in multiple pages --- modules/cmso/par/browser.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/modules/cmso/par/browser.py b/modules/cmso/par/browser.py index 73c014965b..a8165348d0 100644 --- a/modules/cmso/par/browser.py +++ b/modules/cmso/par/browser.py @@ -87,17 +87,23 @@ def do_login(self): @need_login def iter_accounts(self): + seen = {} + # First get all checking accounts... data = dict(self.infos.stay_or_go().get_typelist()) self.accounts.go(data=json.dumps(data), type='comptes').check_response() for key in self.page.get_keys(): for a in self.page.iter_accounts(key=key): yield a + seen[a._index] = a # Next, get saving accounts numbers = self.page.get_numbers() for key in self.accounts.go(data=json.dumps({}), type='epargne').get_keys(): for a in self.page.iter_products(key=key, numbers=numbers): + if a._index in seen: + self.logger.warning('skipping %s because it seems to be a duplicate of %s', a, seen[a._index]) + continue yield a # Then, get loans -- GitLab