From aa46dca4e399bf2e544d62dcb4a9a0328e4e6c41 Mon Sep 17 00:00:00 2001 From: Yassine Doghri Date: Thu, 22 Jun 2023 15:11:21 +0000 Subject: [PATCH] fix(podcast-import): set default values for person group and role if not found in taxonomy + update podcast-feed and podcast-persons-taxonomy packages --- composer.json | 2 +- composer.lock | 16 ++++----- .../PodcastImport/Commands/PodcastImport.php | 36 +++++++++++++++---- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index 19ba9771..00134183 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "league/html-to-markdown": "^v5.1.0", "opawg/user-agents-php": "^v1.0", "adaures/ipcat-php": "^v1.0.0", - "adaures/podcast-persons-taxonomy": "^v1.0.0", + "adaures/podcast-persons-taxonomy": "^v1.0.1", "phpseclib/phpseclib": "~2.0.44", "michalsn/codeigniter4-uuid": "dev-develop", "codeigniter4/settings": "v2.1.2", diff --git a/composer.lock b/composer.lock index 6475e5f8..ba6c6e93 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9fa20de985bf6177f95f7ac32155d843", + "content-hash": "c63a07ae62c9740982f4270527b6de53", "packages": [ { "name": "adaures/ipcat-php", @@ -43,11 +43,11 @@ }, { "name": "adaures/podcast-persons-taxonomy", - "version": "v1.0.0", + "version": "v1.0.1", "source": { "type": "git", "url": "https://code.castopod.org/adaures/podcast-persons-taxonomy", - "reference": "117b207e334f54cd1b00ee52b0c53d58cb1a5524" + "reference": "d2a6836e32ed013676fd969425e133e0ebb104fc" }, "type": "library", "autoload": { @@ -71,7 +71,7 @@ ], "description": "Generate PHP translation files for CodeIgniter4 from the podcast-namespace's Persons Taxonomy json files.", "homepage": "https://code.castopod.org/adaures/podcast-persons-taxonomy", - "time": "2022-02-20T14:09:25+00:00" + "time": "2023-06-22T14:24:55+00:00" }, { "name": "aws/aws-crt-php", @@ -3135,12 +3135,12 @@ "source": { "type": "git", "url": "https://github.com/yassinedoghri/podcast-feed.git", - "reference": "c6b25fb19d6d14f93e403e423640df7714067aca" + "reference": "366ddcedfb4b89c7093d03b2398184435f930843" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yassinedoghri/podcast-feed/zipball/c6b25fb19d6d14f93e403e423640df7714067aca", - "reference": "c6b25fb19d6d14f93e403e423640df7714067aca", + "url": "https://api.github.com/repos/yassinedoghri/podcast-feed/zipball/366ddcedfb4b89c7093d03b2398184435f930843", + "reference": "366ddcedfb4b89c7093d03b2398184435f930843", "shasum": "" }, "require": { @@ -3176,7 +3176,7 @@ "issues": "https://github.com/yassinedoghri/podcast-feed/issues", "source": "https://github.com/yassinedoghri/podcast-feed/tree/main" }, - "time": "2023-06-11T16:54:30+00:00" + "time": "2023-06-22T13:54:05+00:00" } ], "packages-dev": [ diff --git a/modules/PodcastImport/Commands/PodcastImport.php b/modules/PodcastImport/Commands/PodcastImport.php index c5057b60..663c262b 100644 --- a/modules/PodcastImport/Commands/PodcastImport.php +++ b/modules/PodcastImport/Commands/PodcastImport.php @@ -310,10 +310,22 @@ class PodcastImport extends BaseCommand $personGroup = $person->getAttribute('group'); $personRole = $person->getAttribute('role'); - $personGroup = ReversedTaxonomy::$taxonomy[(string) $personGroup]; + $isTaxonomyFound = false; + if (array_key_exists(strtolower((string) $personGroup), ReversedTaxonomy::$taxonomy)) { + $personGroup = ReversedTaxonomy::$taxonomy[strtolower((string) $personGroup)]; + $personGroupSlug = $personGroup['slug']; - $personGroupSlug = $personGroup['slug']; - $personRoleSlug = $personGroup['roles'][(string) $personRole]['slug']; + if (array_key_exists(strtolower((string) $personRole), $personGroup['roles'])) { + $personRoleSlug = $personGroup['roles'][strtolower((string) $personRole)]['slug']; + $isTaxonomyFound = true; + } + } + + if (! $isTaxonomyFound) { + // taxonomy was not found, set default group and role + $personGroupSlug = 'cast'; + $personRoleSlug = 'host'; + } $podcastPersonModel = new PersonModel(); if (! $podcastPersonModel->addPodcastPerson( @@ -512,10 +524,22 @@ class PodcastImport extends BaseCommand $personGroup = $person->getAttribute('group'); $personRole = $person->getAttribute('role'); - $personGroup = ReversedTaxonomy::$taxonomy[(string) $personGroup]; + $isTaxonomyFound = false; + if (array_key_exists(strtolower((string) $personGroup), ReversedTaxonomy::$taxonomy)) { + $personGroup = ReversedTaxonomy::$taxonomy[strtolower((string) $personGroup)]; + $personGroupSlug = $personGroup['slug']; - $personGroupSlug = $personGroup['slug']; - $personRoleSlug = $personGroup['roles'][(string) $personRole]['slug']; + if (array_key_exists(strtolower((string) $personRole), $personGroup['roles'])) { + $personRoleSlug = $personGroup['roles'][strtolower((string) $personRole)]['slug']; + $isTaxonomyFound = true; + } + } + + if (! $isTaxonomyFound) { + // taxonomy was not found, set default group and role + $personGroupSlug = 'cast'; + $personRoleSlug = 'host'; + } $episodePersonModel = new PersonModel(); if (! $episodePersonModel->addEpisodePerson(