From 94ea4f6a5f2cfc15900c9fb8262c9eeee5579f88 Mon Sep 17 00:00:00 2001 From: Matt Way Date: Wed, 25 Sep 2024 07:49:13 +1000 Subject: [PATCH] Only search for photos based on a single name if the name is longer than 3 characters --- csv-normaliser/main.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/csv-normaliser/main.php b/csv-normaliser/main.php index 26037fc..9bc2ee5 100644 --- a/csv-normaliser/main.php +++ b/csv-normaliser/main.php @@ -119,11 +119,19 @@ if (($handle = fopen($inputFile, "r")) !== FALSE) { $name_patterns = [ ".*" . implode(".*", $name_split) . ".*", - ".*" . implode(".*", array_reverse($name_split)) . ".*", - "^" . $name_split[array_key_last($name_split)] . ".*", - "^" . $name_split[0] . ".*" + ".*" . implode(".*", array_reverse($name_split)) . ".*" ]; + $first_name = $name_split[0]; + $last_name = $name_split[array_key_last($name_split)]; + + if (strlen($first_name) > 3) { + $name_patterns[] = "^" . $first_name . ".*"; + } + if ($last_name != $first_name && strlen($last_name)) { + "^" . $last_name . ".*"; + } + $regex_groups = array_map(function($x) { return "(?:" . $x . ")"; }, $name_patterns); $regex_pattern = "/" . implode("|", $regex_groups) . "/i";