From 848f6676265c04d3d027e176ba1493a3f35e517b Mon Sep 17 00:00:00 2001 From: Timothy J Warren Date: Mon, 7 Oct 2019 20:10:27 -0400 Subject: [PATCH] Misc bugfixes, especially for Anime without a MAL id. --- src/API/Anilist/Model.php | 5 +++++ src/Model/Anime.php | 4 ++-- src/Types/AbstractType.php | 15 ++++++++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/API/Anilist/Model.php b/src/API/Anilist/Model.php index 6626cf18..1dfbbe37 100644 --- a/src/API/Anilist/Model.php +++ b/src/API/Anilist/Model.php @@ -274,6 +274,11 @@ final class Model 'type' => mb_strtoupper($type), ]); + if (empty($info) || empty($info['data'])) + { + return NULL; + } + return (string)$info['data']['Media']['id']; } } \ No newline at end of file diff --git a/src/Model/Anime.php b/src/Model/Anime.php index 4de786c0..213a8bc3 100644 --- a/src/Model/Anime.php +++ b/src/Model/Anime.php @@ -187,7 +187,7 @@ class Anime extends API { $requester = new ParallelAPIRequest(); $requester->addRequest($this->kitsuModel->incrementListItem($data), 'kitsu'); - if ($this->anilistEnabled && $data['mal_id'] !== null) + if (( ! empty($data['mal_id'])) && $this->anilistEnabled) { $requester->addRequest($this->anilistModel->incrementListItem($data, 'ANIME'), 'anilist'); } @@ -214,7 +214,7 @@ class Anime extends API { $requester = new ParallelAPIRequest(); $requester->addRequest($this->kitsuModel->updateListItem($data), 'kitsu'); - if ($this->anilistEnabled && $data['mal_id'] !== null) + if (( ! empty($data['mal_id'])) && $this->anilistEnabled) { $requester->addRequest($this->anilistModel->updateListItem($data, 'ANIME'), 'anilist'); } diff --git a/src/Types/AbstractType.php b/src/Types/AbstractType.php index 5f9740b5..6c04ffd6 100644 --- a/src/Types/AbstractType.php +++ b/src/Types/AbstractType.php @@ -17,8 +17,10 @@ namespace Aviat\AnimeClient\Types; use ArrayAccess; +use ArrayObject; +use Countable; -abstract class AbstractType implements ArrayAccess { +abstract class AbstractType implements ArrayAccess, Countable { /** * Populate values for un-serializing data * @@ -164,6 +166,17 @@ abstract class AbstractType implements ArrayAccess { } } + /** + * Implementing Countable + * + * @return int + */ + public function count(): int + { + $keys = array_keys($this->toArray()); + return count($keys); + } + /** * Recursively cast properties to an array *