diff --git a/modules/paypal/browser.py b/modules/paypal/browser.py index 70876820..8ae8bcd6 100644 --- a/modules/paypal/browser.py +++ b/modules/paypal/browser.py @@ -29,7 +29,7 @@ class Paypal(BaseBrowser): DOMAIN = 'www.paypal.com' PROTOCOL = 'https' CERTHASH = '36dc457fa47a9c0cec67ce6ac00e4a7a3846a96ed40cabbb8e1504ed8b332108' - ENCODING = 'UTF-8' # useful for CSV + ENCODING = 'UTF-8' PAGES = { '/cgi-bin/\?cmd=_login-run$': LoginPage, '/cgi-bin/\?cmd=_login-submit.+$': LoginPage, # wrong login diff --git a/modules/paypal/pages.py b/modules/paypal/pages.py index 2c39e505..7d48434e 100644 --- a/modules/paypal/pages.py +++ b/modules/paypal/pages.py @@ -23,6 +23,7 @@ import datetime from weboob.tools.browser import BasePage, BrokenPageError from weboob.tools.parsers.csvparser import CsvParser +from weboob.tools.misc import to_unicode from weboob.capabilities.bank import Account, Transaction from weboob.tools.capabilities.bank.transactions import FrenchTransaction @@ -201,5 +202,12 @@ class HistoryParser(CsvParser): HEADER = True FMTPARAMS = {'skipinitialspace': True} + def decode_row(self, row, encoding): + """ + PayPal returns different encodings (latin-1 and utf-8 are know ones) + """ + return [to_unicode(cell) for cell in row] + + class UselessPage(BasePage): pass