diff --git a/paperwork_backend/config.py b/paperwork_backend/config.py index cf4988d..b5aba43 100644 --- a/paperwork_backend/config.py +++ b/paperwork_backend/config.py @@ -121,6 +121,7 @@ def get_default_ocr_lang(): return lang.terminology return DEFAULT_OCR_LANG + return False class PaperworkConfig(object): """ @@ -139,6 +140,9 @@ def __init__(self): 'ocr_lang': PaperworkSetting( "OCR", "Lang", get_default_ocr_lang ), + 'index_in_workdir': PaperworkSetting( + "Global", "index_in_workdir", lambda: False, paperwork_cfg_boolean + ), } self._configparser = None diff --git a/paperwork_backend/docsearch.py b/paperwork_backend/docsearch.py index 50938de..4565adc 100644 --- a/paperwork_backend/docsearch.py +++ b/paperwork_backend/docsearch.py @@ -253,7 +253,7 @@ class DocSearch(object): LABEL_STEP_DESTROYING = "label deletion" def __init__(self, rootdir, indexdir=None, language=None, - use_default_index_client=True): + use_default_index_client=True, index_in_workdir=False): """ Index files in rootdir (see constructor) """ @@ -264,16 +264,20 @@ def __init__(self, rootdir, indexdir=None, language=None, self.fs = fs.GioFileSystem() self.rootdir = self.fs.safe(rootdir) - localdir = os.path.expanduser("~/.local") - if indexdir is None: + + if index_in_workdir: + base_data_dir = self.fs.unsafe(rootdir) + localdir = base_data_dir + indexdir = os.path.join(base_data_dir, "index") + + elif indexdir is None: base_data_dir = os.getenv( "XDG_DATA_HOME", os.path.join(localdir, "share") ) - indexdir = os.path.join(base_data_dir, "paperwork") + indexdir = os.path.join(base_data_dir, "paperwork/index") - indexdir = os.path.join(indexdir, "index") label_guesser_dir = os.path.join(indexdir, "label_guessing") self.index.open(localdir, base_data_dir, indexdir, label_guesser_dir, rootdir, language=language) @@ -351,6 +355,7 @@ def get_doc_from_docid(self, docid, doc_type_name=None, inst=True): def find_documents(self, sentence, limit=None, must_sort=True, search_type='fuzzy'): + return self.index.find_documents(sentence, limit=limit, must_sort=must_sort, search_type=search_type) diff --git a/paperwork_backend/shell.py b/paperwork_backend/shell.py index 072e4ab..6bf0719 100644 --- a/paperwork_backend/shell.py +++ b/paperwork_backend/shell.py @@ -50,7 +50,7 @@ def get_docsearch(): verbose("Work directory: {}".format(pconfig.settings['workdir'].value)) - dsearch = docsearch.DocSearch(pconfig.settings['workdir'].value) + dsearch = docsearch.DocSearch(pconfig.settings['workdir'].value, index_in_workdir=pconfig.settings['index_in_workdir'].value) dsearch.reload_index() return dsearch