Skip to content
module.py 2 KiB
Newer Older
Vincent Paredes's avatar
Vincent Paredes committed
# -*- coding: utf-8 -*-

# Copyright(C) 2014 Budget Insight
#
Roger Philibert's avatar
Roger Philibert committed
# This file is part of a woob module.
Roger Philibert's avatar
Roger Philibert committed
# This woob module is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
Vincent Paredes's avatar
Vincent Paredes committed
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
Roger Philibert's avatar
Roger Philibert committed
# This woob module is distributed in the hope that it will be useful,
Vincent Paredes's avatar
Vincent Paredes committed
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public License
Roger Philibert's avatar
Roger Philibert committed
# along with this woob module. If not, see <http://www.gnu.org/licenses/>.
Martin Lavoie's avatar
Martin Lavoie committed
# flake8: compatible
from woob.capabilities.bank import CapBank
from woob.tools.backend import Module, BackendConfig
Martin Lavoie's avatar
Martin Lavoie committed
from woob.tools.value import ValueBackendPassword, ValueTransient
Vincent Paredes's avatar
Vincent Paredes committed

from .browser import OneyBrowser


Florent's avatar
Florent committed
__all__ = ['OneyModule']
class OneyModule(Module, CapBank):
Vincent Paredes's avatar
Vincent Paredes committed
    NAME = 'oney'
    MAINTAINER = 'Vincent Paredes'
Vincent Paredes's avatar
Vincent Paredes committed
    EMAIL = 'vparedes@budget-insight.com'
Romain Bignon's avatar
Romain Bignon committed
    VERSION = '3.6'
    LICENSE = 'LGPLv3+'
Vincent Paredes's avatar
Vincent Paredes committed
    DESCRIPTION = 'Oney'
    CONFIG = BackendConfig(
        ValueBackendPassword('login', label='Identifiant', masked=False, regexp=r'([0-9]{9}|.+@.+\..+)'),
        ValueBackendPassword('password', label='Mot de passe'),
Martin Lavoie's avatar
Martin Lavoie committed
        ValueTransient('request_information'),
kmartins's avatar
kmartins committed
        ValueTransient('code', regexp=r'^\d{6}$'),
        ValueTransient('resume'),
Vincent Paredes's avatar
Vincent Paredes committed
    BROWSER = OneyBrowser

    def create_default_browser(self):
        return self.create_browser(self.config)
Vincent Paredes's avatar
Vincent Paredes committed

    def iter_accounts(self):
Martin Lavoie's avatar
Martin Lavoie committed
        return self.browser.iter_accounts()
Vincent Paredes's avatar
Vincent Paredes committed

    def iter_history(self, account):
        # To prevent issues in calcul of actual balance and coming one, all
        # operations are marked as debited.
        for tr in self.browser.iter_coming(account):
            yield tr

Vincent Paredes's avatar
Vincent Paredes committed
        for tr in self.browser.iter_history(account):
            yield tr