From bb9dfa6c23283d2f31842c5c8273272fad3ae1ae Mon Sep 17 00:00:00 2001
From: Alessandro Cerioni <acerioni@grandlyon.com>
Date: Wed, 10 Apr 2019 15:48:46 +0200
Subject: [PATCH] Splitting organisation and individual name for Dublin Core
 metadata

---
 2-metadata-processor.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/2-metadata-processor.py b/2-metadata-processor.py
index 1b1d00d..49a9ad0 100644
--- a/2-metadata-processor.py
+++ b/2-metadata-processor.py
@@ -89,13 +89,20 @@ def list_to_dictlist( the_input, the_context=None ):
         if the_context == 'responsibleParty':
 
             try:
+                # the following applies to legacy metadata
                 parent_organisation, child_organisation = out_item['organisationName'].split('/')
                 parent_organisation = parent_organisation.strip()
                 child_organisation = child_organisation.strip()
             except:
-                parent_organisation, child_organisation = out_item['organisationName'], None
-                parent_organisation = parent_organisation.strip()
-                child_organisation = None
+                try:
+                    # the following applies to Dublin Core metadata
+                    my_re = re.compile(r"(?P<organisationName>[^\(\)]+)(\((?P<individualName>.*)\))")
+                    parent_organisation = my_re.match(out_item['organisationName']).groupdict()['organisationName'].strip()
+                    child_organisation  = my_re.match(out_item['organisationName']).groupdict()['individualName'].strip()
+                except:
+                    parent_organisation, child_organisation = out_item['organisationName'], None
+                    parent_organisation = parent_organisation.strip()
+                    child_organisation = None
 
             out_item['organisationName'] = parent_organisation
 
-- 
GitLab