Skip to content
module.py 2.42 KiB
Newer Older
Johann Broudin's avatar
Johann Broudin committed
# -*- coding: utf-8 -*-

# Copyright(C) 2012-2013 Romain Bignon
Johann Broudin's avatar
Johann Broudin committed
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.

from weboob.capabilities.bank import CapBank, AccountNotFound
from weboob.capabilities.base import find_object
from weboob.tools.backend import Module, BackendConfig
from weboob.tools.value import Value, ValueBackendPassword
Johann Broudin's avatar
Johann Broudin committed

from .par.browser import CmsoParBrowser
from .pro.browser import CmsoProBrowser
Johann Broudin's avatar
Johann Broudin committed

Florent's avatar
Florent committed
__all__ = ['CmbModule']
Johann Broudin's avatar
Johann Broudin committed

class CmbModule(Module, CapBank):
Johann Broudin's avatar
Johann Broudin committed
    NAME = 'cmb'
    MAINTAINER = u'Edouard Lambert'
    EMAIL = 'elambert@budget-insight.com'
Florent's avatar
Florent committed
    VERSION = '1.3'
    DESCRIPTION = u'Credit Mutuel de Bretagne'
Johann Broudin's avatar
Johann Broudin committed
    LICENSE = 'AGPLv3+'
    CONFIG = BackendConfig(ValueBackendPassword('login',    label='Identifiant', masked=False),
                           ValueBackendPassword('password', label='Mot de passe'),
                           Value('website', label='Type de compte', default='pro',
                                 choices={'par': 'Particuliers', 'pro': 'Professionnels'}))
    BROWSER = CmsoParBrowser
Johann Broudin's avatar
Johann Broudin committed

    def create_default_browser(self):
        b = {'par': CmsoParBrowser, 'pro': CmsoProBrowser}
        self.BROWSER = b[self.config['website'].get()]
        return self.create_browser(self.weboob, "cmb.fr",
                                   self.config['login'].get(),
                                   self.config['password'].get())
Johann Broudin's avatar
Johann Broudin committed

    def get_account(self, _id):
        return find_object(self.browser.iter_accounts(), id=_id, error=AccountNotFound)
Johann Broudin's avatar
Johann Broudin committed

    def iter_accounts(self):
        return self.browser.iter_accounts()
Johann Broudin's avatar
Johann Broudin committed

    def iter_history(self, account):
        return self.browser.iter_history(account)
    def iter_coming(self, account):
        return self.browser.iter_coming(account)
Johann Broudin's avatar
Johann Broudin committed

    def iter_investment(self, account):
        return self.browser.iter_investment(account)