From 6138209a2f3cdb4975faa530f8469f8391aff277 Mon Sep 17 00:00:00 2001 From: Florent Date: Tue, 1 Apr 2014 10:46:08 +0200 Subject: [PATCH] Add replace option to CleanText --- weboob/tools/browser2/filters.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/weboob/tools/browser2/filters.py b/weboob/tools/browser2/filters.py index 74167217..8d7c3d92 100644 --- a/weboob/tools/browser2/filters.py +++ b/weboob/tools/browser2/filters.py @@ -170,16 +170,18 @@ class CleanText(Filter): string. Second, it replaces all symbols given in second argument. """ - def __init__(self, selector, symbols='', **kwargs): + def __init__(self, selector, symbols='', replace=[], **kwargs): super(CleanText, self).__init__(selector, **kwargs) self.symbols = symbols + self.toreplace = replace def filter(self, txt): if isinstance(txt, (tuple,list)): txt = ' '.join(map(self.clean, txt)) txt = self.clean(txt) - return self.remove(txt, self.symbols) + txt = self.remove(txt, self.symbols) + return self.replace(txt, self.toreplace) @classmethod def clean(cls, txt): @@ -195,6 +197,12 @@ class CleanText(Filter): txt = txt.replace(symbol, '') return txt + @classmethod + def replace(cls, txt, replace): + for before, after in replace: + txt = txt.replace(before, after) + return txt + class Lower(CleanText): def filter(self, txt):