def __init__(self, workdir=None, backends_filename=None, scheduler=None, storage=None): self.logger = getLogger('weboob') self.backend_instances = {} self.callbacks = {'login': lambda backend_name, value: None, 'captcha': lambda backend_name, image: None, } # Scheduler if scheduler is None: scheduler = Scheduler() self.scheduler = scheduler # Create WORKDIR if workdir is not None: datadir = workdir elif 'WEBOOB_WORKDIR' in os.environ: datadir = workdir = os.environ.get('WEBOOB_WORKDIR') else: old_workdir = os.path.join(os.path.expanduser('~'), '.weboob') xdg_config_home = os.path.join(os.environ.get('XDG_CONFIG_HOME', os.path.join(os.path.expanduser('~'), '.config')), 'weboob') xdg_data_home = os.path.join(os.environ.get('XDG_DATA_HOME', os.path.join(os.path.expanduser('~'), '.local', 'share')), 'weboob') if os.path.isdir(old_workdir): self.logger.warning('You are using "%s" as working directory. Files are moved into %s and %s.' % (old_workdir, xdg_config_home, xdg_data_home)) self._create_dir(xdg_config_home) self._create_dir(xdg_data_home) for f in os.listdir(old_workdir): if f in Repositories.SHARE_DIRS: dest = xdg_data_home else: dest = xdg_config_home shutil.move(os.path.join(old_workdir, f), dest) shutil.rmtree(old_workdir) workdir = xdg_config_home datadir = xdg_data_home self.workdir = os.path.realpath(workdir) self._create_dir(workdir) # Repositories management self.repositories = Repositories(workdir, datadir, self.VERSION) # Backends loader self.modules_loader = ModulesLoader(self.repositories) # Backend instances config if not backends_filename: backends_filename = os.environ.get('WEBOOB_BACKENDS', os.path.join(self.workdir, self.BACKENDS_FILENAME)) elif not backends_filename.startswith('/'): backends_filename = os.path.join(self.workdir, backends_filename) self.backends_config = BackendsConfig(backends_filename) # Storage self.storage = storage
def __init__(self, modules_path=None, storage=None, scheduler=None): self.logger = getLogger('weboob') self.backend_instances = {} self.requests = RequestsManager() if modules_path is None: import pkg_resources modules_path = pkg_resources.resource_filename( 'weboob_modules', '') if modules_path: self.modules_loader = ModulesLoader(modules_path, self.VERSION) if scheduler is None: scheduler = Scheduler() self.scheduler = scheduler self.storage = storage
def __init__(self, modules_path=None, storage=None, scheduler=None): self.logger = getLogger('weboob') self.backend_instances = {} self.callbacks = {'login': lambda backend_name, value: None, 'captcha': lambda backend_name, image: None, } if modules_path is None: import pkg_resources modules_path = pkg_resources.resource_filename('weboob_modules', '') if modules_path: self.modules_loader = ModulesLoader(modules_path, self.VERSION) if scheduler is None: scheduler = Scheduler() self.scheduler = scheduler self.storage = storage
def __init__(self, modules_path=None, storage=None, scheduler=None): self.logger = getLogger('weboob') self.backend_instances = {} self.requests = RequestsManager() if modules_path is None: import pkg_resources # Package weboob_modules is provided by # https://git.weboob.org/weboob/modules # and should be pip-installed separately. # Note that Weboob users should rather install Weboob modules # through https://updates.weboob.org/. modules_path = pkg_resources.resource_filename('weboob_modules', '') if modules_path: self.modules_loader = ModulesLoader(modules_path, self.VERSION) if scheduler is None: scheduler = Scheduler() self.scheduler = scheduler self.storage = storage