This commit is contained in:
Jürgen Mummert
2025-12-27 22:36:49 +01:00
parent 2832da4736
commit c645e3caa8
+26
View File
@@ -20,7 +20,11 @@ class IndexPageListener
* PDF: Reset genau 1× pro Crawl * PDF: Reset genau 1× pro Crawl
* ===================== * =====================
*/ */
try {
$this->pdfIndexService->resetTableOnce(); $this->pdfIndexService->resetTableOnce();
} catch (\Throwable $e) {
error_log('[ContaoMeilisearch] PDF reset failed: ' . $e->getMessage());
}
/* /*
* ===================== * =====================
@@ -28,7 +32,12 @@ class IndexPageListener
* ===================== * =====================
*/ */
if (str_contains($content, 'MEILISEARCH_JSON')) { if (str_contains($content, 'MEILISEARCH_JSON')) {
try {
$parsed = $this->extractMeilisearchJson($content); $parsed = $this->extractMeilisearchJson($content);
} catch (\Throwable $e) {
error_log('[ContaoMeilisearch] Failed to extract MEILISEARCH_JSON: ' . $e->getMessage());
$parsed = null;
}
if (is_array($parsed)) { if (is_array($parsed)) {
@@ -97,6 +106,7 @@ class IndexPageListener
* CHECKSUM-FIX * CHECKSUM-FIX
* ===================== * =====================
*/ */
try {
$checksumSeed = (string) ($data['checksum'] ?? ''); $checksumSeed = (string) ($data['checksum'] ?? '');
$checksumSeed .= '|' . ($set['keywords'] ?? ''); $checksumSeed .= '|' . ($set['keywords'] ?? '');
$checksumSeed .= '|' . ($set['priority'] ?? ''); $checksumSeed .= '|' . ($set['priority'] ?? '');
@@ -104,6 +114,9 @@ class IndexPageListener
$checksumSeed .= '|' . ($set['startDate'] ?? ''); $checksumSeed .= '|' . ($set['startDate'] ?? '');
$set['checksum'] = md5($checksumSeed); $set['checksum'] = md5($checksumSeed);
} catch (\Throwable $e) {
error_log('[ContaoMeilisearch] Failed to generate checksum: ' . $e->getMessage());
}
} }
} }
@@ -116,10 +129,14 @@ class IndexPageListener
(bool) Config::get('meilisearch_index_pdfs') (bool) Config::get('meilisearch_index_pdfs')
&& (int) ($data['protected'] ?? 0) === 0 && (int) ($data['protected'] ?? 0) === 0
) { ) {
try {
$pdfLinks = $this->findPdfLinks($content); $pdfLinks = $this->findPdfLinks($content);
if ($pdfLinks !== []) { if ($pdfLinks !== []) {
$this->pdfIndexService->handlePdfLinks($pdfLinks); $this->pdfIndexService->handlePdfLinks($pdfLinks);
} }
} catch (\Throwable $e) {
error_log('[ContaoMeilisearch] PDF indexing failed: ' . $e->getMessage());
}
} }
/* /*
@@ -131,10 +148,14 @@ class IndexPageListener
(bool) Config::get('meilisearch_index_office') (bool) Config::get('meilisearch_index_office')
&& (int) ($data['protected'] ?? 0) === 0 && (int) ($data['protected'] ?? 0) === 0
) { ) {
try {
$officeLinks = $this->findOfficeLinks($content); $officeLinks = $this->findOfficeLinks($content);
if ($officeLinks !== []) { if ($officeLinks !== []) {
$this->officeIndexService->handleOfficeLinks($officeLinks); $this->officeIndexService->handleOfficeLinks($officeLinks);
} }
} catch (\Throwable $e) {
error_log('[ContaoMeilisearch] Office indexing failed: ' . $e->getMessage());
}
} }
} }
@@ -150,6 +171,11 @@ class IndexPageListener
$json = preg_replace('/^\xEF\xBB\xBF/', '', trim($m[1])); $json = preg_replace('/^\xEF\xBB\xBF/', '', trim($m[1]));
$data = json_decode($json, true); $data = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
error_log('[ContaoMeilisearch] Invalid MEILISEARCH_JSON: ' . json_last_error_msg());
return null;
}
return is_array($data) ? $data : null; return is_array($data) ? $data : null;
} }