diff --git a/2-metadata-processor.py b/2-metadata-processor.py index 1b1d00d339e5ab5003469cd28f07f89fe5154f2e..49a9ad0aa250bba92e8753546c8027e785d41daa 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