diff --git a/colrev/ui_cli/cli.py b/colrev/ui_cli/cli.py index 57c430bd5..2e3a7cacd 100644 --- a/colrev/ui_cli/cli.py +++ b/colrev/ui_cli/cli.py @@ -1517,6 +1517,11 @@ def pdfs( default=False, help="Setup template for custom pdf-get script.", ) +@click.option( + "--file", + type=click.Path(exists=True), + help="Path to file(s)", +) @click.option( "-v", "--verbose", @@ -1541,6 +1546,7 @@ def pdf_get( rename: bool, relink_pdfs: bool, setup_custom_script: bool, + file: Path, verbose: bool, force: bool, ) -> None: @@ -1549,6 +1555,12 @@ def pdf_get( Docs: https://colrev-environment.github.io/colrev/manual/pdf_retrieval/pdf_get.html """ + if file: + import colrev.ui_cli.cli_file_mode + + colrev.ui_cli.cli_file_mode.pdf_get(file) + return + review_manager = get_review_manager( ctx, { diff --git a/colrev/ui_cli/cli_file_mode.py b/colrev/ui_cli/cli_file_mode.py new file mode 100644 index 000000000..f089a68d1 --- /dev/null +++ b/colrev/ui_cli/cli_file_mode.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +"""File mode operations.""" +from __future__ import annotations + +from pathlib import Path + +import colrev.env.local_index +import colrev.exceptions as colrev_exceptions +from colrev.constants import Fields + + +def pdf_get(file: Path) -> None: + print(f"Download PDFs for: {file}") + + records = colrev.loader.load_utils.load(Path(file)) + local_index = colrev.env.local_index.LocalIndex(verbose_mode=True) + + for record in records.values(): + if Fields.FILE in record: + continue + print(f"Retrieve PDF for record {record[Fields.ID]}.") + + try: + retrieved_record = local_index.retrieve(record, include_file=True) + except colrev_exceptions.RecordNotInIndexException: + continue + + if Fields.FILE in retrieved_record.data: + input(retrieved_record.data[Fields.FILE]) diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst new file mode 100644 index 000000000..e91d384ad --- /dev/null +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.pdf_get.rst @@ -0,0 +1,6 @@ +colrev.ui\_cli.cli\_file\_mode.pdf\_get +======================================= + +.. currentmodule:: colrev.ui_cli.cli_file_mode + +.. autofunction:: pdf_get diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst new file mode 100644 index 000000000..dbbf7d2b6 --- /dev/null +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.cli_file_mode.rst @@ -0,0 +1,18 @@ +colrev.ui\_cli.cli\_file\_mode +============================== + +.. automodule:: colrev.ui_cli.cli_file_mode + + + + + + + + .. rubric:: Functions + + .. autosummary:: + :toctree: + :nosignatures: + + pdf_get diff --git a/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst b/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst index e022ee9f8..ae2ca962f 100644 --- a/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst +++ b/docs/source/dev_docs/_autosummary/colrev.ui_cli.rst @@ -28,6 +28,7 @@ colrev.ui\_cli colrev.ui_cli.add_package_to_settings colrev.ui_cli.cli + colrev.ui_cli.cli_file_mode colrev.ui_cli.cli_status_printer colrev.ui_cli.cli_validation colrev.ui_cli.dedupe_errors diff --git a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst new file mode 100644 index 000000000..e91d384ad --- /dev/null +++ b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.pdf_get.rst @@ -0,0 +1,6 @@ +colrev.ui\_cli.cli\_file\_mode.pdf\_get +======================================= + +.. currentmodule:: colrev.ui_cli.cli_file_mode + +.. autofunction:: pdf_get diff --git a/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst new file mode 100644 index 000000000..dbbf7d2b6 --- /dev/null +++ b/docs/source/dev_docs/colrev.ui_cli.cli_file_mode.rst @@ -0,0 +1,18 @@ +colrev.ui\_cli.cli\_file\_mode +============================== + +.. automodule:: colrev.ui_cli.cli_file_mode + + + + + + + + .. rubric:: Functions + + .. autosummary:: + :toctree: + :nosignatures: + + pdf_get diff --git a/docs/source/dev_docs/colrev.ui_cli.rst b/docs/source/dev_docs/colrev.ui_cli.rst index 056703f3d..a61194ef6 100644 --- a/docs/source/dev_docs/colrev.ui_cli.rst +++ b/docs/source/dev_docs/colrev.ui_cli.rst @@ -28,6 +28,7 @@ colrev.ui_cli.add_package_to_settings colrev.ui_cli.cli + colrev.ui_cli.cli_file_mode colrev.ui_cli.cli_status_printer colrev.ui_cli.cli_validation colrev.ui_cli.dedupe_errors