diff --git a/src/AnimeClient/API/Kitsu/GraphQL/Queries/AnimeDetails.graphql b/src/AnimeClient/API/Kitsu/GraphQL/Queries/AnimeDetails.graphql index f41066c9..a61c3c0f 100644 --- a/src/AnimeClient/API/Kitsu/GraphQL/Queries/AnimeDetails.graphql +++ b/src/AnimeClient/API/Kitsu/GraphQL/Queries/AnimeDetails.graphql @@ -53,6 +53,7 @@ query ($slug: String!) { endDate episodeCount episodeLength + totalLength posterImage { original { height @@ -107,7 +108,6 @@ query ($slug: String!) { status synopsis titles { - alternatives canonical localized } diff --git a/src/AnimeClient/API/Kitsu/Transformer/AnimeTransformer.php b/src/AnimeClient/API/Kitsu/Transformer/AnimeTransformer.php index 4afe576e..33ac6271 100644 --- a/src/AnimeClient/API/Kitsu/Transformer/AnimeTransformer.php +++ b/src/AnimeClient/API/Kitsu/Transformer/AnimeTransformer.php @@ -66,6 +66,33 @@ final class AnimeTransformer extends AbstractTransformer { uasort($characters['supporting'], fn($a, $b) => $a['name'] <=> $b['name']); } + if (count($base['staff']['nodes']) > 0) + { + foreach ($base['staff']['nodes'] as $staffing) + { + $person = $staffing['person']; + $role = $staffing['role']; + $name = $person['names']['localized'][$person['names']['canonical']]; + + if ( ! array_key_exists($role, $staff)) + { + $staff[$role] = []; + } + + $staff[$role][$person['id']] = [ + 'id' => $person['id'], + 'name' => $name, + 'image' => [ + 'original' => $person['image']['original']['url'], + ], + ]; + + usort($staff[$role], fn ($a, $b) => $a['name'] <=> $b['name']); + } + + ksort($staff); + } + $data = [ 'age_rating' => $base['ageRating'], 'age_rating_guide' => $base['ageRatingGuide'],