def __init__(self, workdir=None, datadir=None, backends_filename=None, scheduler=None, storage=None): super(Weboob, self).__init__(modules_path=False, scheduler=scheduler, storage=storage) # Create WORKDIR if workdir is None: if 'WEBOOB_WORKDIR' in os.environ: workdir = os.environ['WEBOOB_WORKDIR'] else: workdir = os.path.join(os.environ.get('XDG_CONFIG_HOME', os.path.join(os.path.expanduser('~'), '.config')), 'weboob') self.workdir = os.path.realpath(workdir) self._create_dir(workdir) # Create DATADIR if datadir is None: if 'WEBOOB_DATADIR' in os.environ: datadir = os.environ['WEBOOB_DATADIR'] elif 'WEBOOB_WORKDIR' in os.environ: datadir = os.environ['WEBOOB_WORKDIR'] else: datadir = os.path.join(os.environ.get('XDG_DATA_HOME', os.path.join(os.path.expanduser('~'), '.local', 'share')), 'weboob') _datadir = os.path.realpath(datadir) self._create_dir(_datadir) # Modules management self.repositories = Repositories(workdir, _datadir, self.VERSION) self.modules_loader = RepositoryModulesLoader(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)
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