From 26a1c464a1f8b4996487ffa6721e6a4ee3d9413f Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Mon, 24 Aug 2020 13:10:43 -0400 Subject: [PATCH] Some syncing cleanup --- src/AnimeClient/Command/SyncLists.php | 21 +++++++++++++++++++-- src/AnimeClient/Controller.php | 1 + src/AnimeClient/Model/Anime.php | 11 ++--------- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/AnimeClient/Command/SyncLists.php b/src/AnimeClient/Command/SyncLists.php index 30b2c2f9..63daeef4 100644 --- a/src/AnimeClient/Command/SyncLists.php +++ b/src/AnimeClient/Command/SyncLists.php @@ -655,7 +655,7 @@ final class SyncLists extends BaseCommand { $return['data'] = $update; $return['updateType'] = array_unique($return['updateType']); - // Fill in missing data values for update on Anlist + // Fill in missing data values for update // so I don't have to create a really complex graphql query // to handle each combination of fields if ($return['updateType'][0] === API::ANILIST) @@ -672,6 +672,22 @@ final class SyncLists extends BaseCommand { $return['data']['data'] = array_merge($prevData, $return['data']['data']); } + else if ($return['updateType'][0] === API::KITSU) + { + $prevData = [ + 'notes' => $anilistItem['data']['notes'], + 'private' => $anilistItem['data']['private'], + 'progress' => $anilistItem['data']['progress'] ?? 0, + 'rating' => (((int)$anilistItem['data']['rating']) > 0) + ? $anilistItem['data']['rating'] / 5 + : 0, + 'reconsumeCount' => $anilistItem['data']['reconsumeCount'], + 'reconsuming' => $anilistItem['data']['reconsuming'], + 'status' => $anilistItem['data']['status'], + ]; + + $return['data']['data'] = array_merge($prevData, $return['data']['data']); + } return $return; } @@ -718,6 +734,7 @@ final class SyncLists extends BaseCommand { $responseData = Json::decode($response); $id = $itemsToUpdate[$key]['id']; + $mal_id = $itemsToUpdate[$key]['mal_id']; if ( ! array_key_exists('errors', $responseData)) { $verb = ($action === SyncAction::UPDATE) ? 'updated' : 'created'; @@ -743,7 +760,7 @@ final class SyncLists extends BaseCommand { 'responseData' => $responseData, ]); $verb = ($action === SyncAction::UPDATE) ? SyncAction::UPDATE : SyncAction::CREATE; - $this->echoError("Failed to {$verb} Kitsu {$type} list item with id: {$id}"); + $this->echoError("Failed to {$verb} Kitsu {$type} list item with id: {$id}, and mal_id: {$mal_id}"); } } diff --git a/src/AnimeClient/Controller.php b/src/AnimeClient/Controller.php index e09a9864..8b79b891 100644 --- a/src/AnimeClient/Controller.php +++ b/src/AnimeClient/Controller.php @@ -285,6 +285,7 @@ class Controller { 'title' => $title, 'message' => $message, ], NULL, 404); + exit(); } /** diff --git a/src/AnimeClient/Model/Anime.php b/src/AnimeClient/Model/Anime.php index a0561141..825c9ffe 100644 --- a/src/AnimeClient/Model/Anime.php +++ b/src/AnimeClient/Model/Anime.php @@ -18,6 +18,7 @@ namespace Aviat\AnimeClient\Model; use Aviat\AnimeClient\API\Anilist\Model as AnilistModel; use Aviat\AnimeClient\API\Kitsu\Model as KitsuModel; +use Aviat\AnimeClient\API\Kitsu\Transformer\LibraryEntryTransformer; use Aviat\AnimeClient\API\ParallelAPIRequest; use Aviat\AnimeClient\API\Mapping\AnimeWatchingStatus; use Aviat\AnimeClient\Types\{ @@ -159,15 +160,7 @@ class Anime extends API { */ public function getLibraryItem(string $itemId): AnimeListItem { - $item = $this->kitsuModel->getListItem($itemId); - $array = $item->toArray(); - - if (is_array($array['notes'])) - { - $array['notes'] = ''; - } - - return AnimeListItem::from($array); + return $this->kitsuModel->getListItem($itemId); } /**