Cleans up the reprocess task and generally reduces duplicate of classes

This commit is contained in:
Trenton H
2026-03-19 09:57:08 -07:00
parent b66cfb1867
commit 16e73f611d
2 changed files with 27 additions and 31 deletions
+13 -22
View File
@@ -459,13 +459,20 @@ class ConsumerPlugin(
progress_callback=progress_callback,
)
parser_is_new_style = isinstance(
document_parser,
(
MailDocumentParser,
RemoteDocumentParser,
TextDocumentParser,
TikaDocumentParser,
),
)
# New-style parsers use __enter__/__exit__ for resource management.
# _parser_cleanup (below) handles __exit__; call __enter__ here.
# TODO(stumpylog): Remove me in the future
if isinstance(
document_parser,
(TextDocumentParser, RemoteDocumentParser, TikaDocumentParser),
):
if parser_is_new_style:
document_parser.__enter__()
self.log.debug(f"Parser: {type(document_parser).__name__}")
@@ -488,15 +495,7 @@ class ConsumerPlugin(
self.log.debug(f"Parsing {self.filename}...")
# TODO(stumpylog): Remove me in the future when all parsers use new protocol
if isinstance(
document_parser,
(
MailDocumentParser,
RemoteDocumentParser,
TextDocumentParser,
TikaDocumentParser,
),
):
if parser_is_new_style:
document_parser.configure(
ParserContext(mailrule_id=self.input_doc.mailrule_id),
)
@@ -513,15 +512,7 @@ class ConsumerPlugin(
ConsumerStatusShortMessage.GENERATING_THUMBNAIL,
)
# TODO(stumpylog): Remove me in the future when all parsers use new protocol
if isinstance(
document_parser,
(
MailDocumentParser,
RemoteDocumentParser,
TextDocumentParser,
TikaDocumentParser,
),
):
if parser_is_new_style:
thumbnail = document_parser.get_thumbnail(self.working_copy, mime_type)
else:
thumbnail = document_parser.get_thumbnail(
+14 -9
View File
@@ -67,6 +67,7 @@ from documents.workflows.utils import get_workflows_for_trigger
from paperless.config import AIConfig
from paperless.parsers import ParserContext
from paperless.parsers.mail import MailDocumentParser
from paperless.parsers.remote import RemoteDocumentParser
from paperless.parsers.text import TextDocumentParser
from paperless.parsers.tika import TikaDocumentParser
from paperless_ai.indexing import llm_index_add_or_update_document
@@ -319,16 +320,23 @@ def update_document_content_maybe_archive_file(document_id) -> None:
parser: DocumentParser = parser_class(logging_group=uuid.uuid4())
parser_is_new_style = isinstance(
parser,
(
MailDocumentParser,
RemoteDocumentParser,
TextDocumentParser,
TikaDocumentParser,
),
)
# TODO(stumpylog): Remove branch in the future when all parsers use new protocol
if isinstance(parser, (TextDocumentParser, TikaDocumentParser)):
if parser_is_new_style:
parser.__enter__()
try:
# TODO(stumpylog): Remove branch in the future when all parsers use new protocol
if isinstance(
parser,
(MailDocumentParser, TextDocumentParser, TikaDocumentParser),
):
if parser_is_new_style:
parser.configure(ParserContext())
parser.parse(document.source_path, mime_type)
else:
@@ -339,10 +347,7 @@ def update_document_content_maybe_archive_file(document_id) -> None:
)
# TODO(stumpylog): Remove branch in the future when all parsers use new protocol
if isinstance(
parser,
(MailDocumentParser, TextDocumentParser, TikaDocumentParser),
):
if parser_is_new_style:
thumbnail = parser.get_thumbnail(document.source_path, mime_type)
else:
thumbnail = parser.get_thumbnail(