Do not return same id twice

This commit is contained in:
Florent 2014-03-28 14:41:09 +01:00
commit 3cab148414
2 changed files with 5 additions and 5 deletions

View file

@ -16,8 +16,8 @@
# #
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
import urllib
import hashlib import hashlib
import urllib
from weboob.tools.browser2 import LoginBrowser, URL, need_login from weboob.tools.browser2 import LoginBrowser, URL, need_login
from weboob.tools.browser import BrowserIncorrectPassword from weboob.tools.browser import BrowserIncorrectPassword
@ -127,6 +127,7 @@ class IngBrowser(LoginBrowser):
while True: while True:
i = index i = index
for transaction in self.page.get_transactions(index=index): for transaction in self.page.get_transactions(index=index):
transaction.id = hashlib.md5(transaction._hash).hexdigest()
while transaction.id in hashlist: while transaction.id in hashlist:
transaction.id = hashlib.md5(transaction.id + "1").hexdigest() transaction.id = hashlib.md5(transaction.id + "1").hexdigest()
hashlist.append(transaction.id) hashlist.append(transaction.id)

View file

@ -21,7 +21,6 @@
from datetime import date, timedelta from datetime import date, timedelta
import datetime import datetime
import re import re
import hashlib
from weboob.capabilities.bank import Account from weboob.capabilities.bank import Account
from weboob.capabilities.base import NotAvailable from weboob.capabilities.base import NotAvailable
@ -67,7 +66,7 @@ class AddType(Filter):
return Account.TYPE_UNKNOWN return Account.TYPE_UNKNOWN
class Hashmd5(MultiFilter): class PreHashmd5(MultiFilter):
def filter(self, values): def filter(self, values):
concat = '' concat = ''
for value in values: for value in values:
@ -75,7 +74,7 @@ class Hashmd5(MultiFilter):
concat += value.strftime('%d/%m/%Y') concat += value.strftime('%d/%m/%Y')
else: else:
concat += u'%s' % value concat += u'%s' % value
return hashlib.md5(concat.encode('utf-8')).hexdigest() return concat.encode('utf-8')
class INGDate(Date): class INGDate(Date):
@ -142,7 +141,7 @@ class AccountsList(LoggedPage, HTMLPage):
obj_amount = CleanDecimal('.//td[starts-with(@class, "amount")]') obj_amount = CleanDecimal('.//td[starts-with(@class, "amount")]')
obj_date = INGDate(CleanText('.//td[@class="date"]'), dayfirst=True) obj_date = INGDate(CleanText('.//td[@class="date"]'), dayfirst=True)
obj_rdate = Field('date') obj_rdate = Field('date')
obj_id = Hashmd5(Field('date'), Field('raw'), Field('amount')) obj__hash = PreHashmd5(Field('date'), Field('raw'), Field('amount'))
obj_category = INGCategory(Attr('.//td[@class="picto"]/span', 'class')) obj_category = INGCategory(Attr('.//td[@class="picto"]/span', 'class'))
def condition(self): def condition(self):