From e26e9f10b6896ef0162681d5071db14fbbef8adc Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Tue, 12 Apr 2016 13:41:03 -0400 Subject: [PATCH] Update manga model to cache the one api response. --- app/bootstrap.php | 4 +- src/Aviat/AnimeClient/Controller/Manga.php | 11 +- src/Aviat/AnimeClient/Model/Manga.php | 37 +- tests/AnimeClient/Model/MangaModelTest.php | 17 - tests/test_data/manga_list/manga-mapped.json | 968 +------------------ 5 files changed, 16 insertions(+), 1021 deletions(-) diff --git a/app/bootstrap.php b/app/bootstrap.php index dd86221a..c3304640 100644 --- a/app/bootstrap.php +++ b/app/bootstrap.php @@ -40,6 +40,9 @@ return function(array $config_array = []) { $config = new Config($config_array); $container->set('config', $config); + // Create Cache Object + $container->set('cache', new CacheManager($container)); + // Create Aura Router Object $container->set('aura-router', new RouterContainer); @@ -80,7 +83,6 @@ return function(array $config_array = []) { // Miscellaneous Classes $container->set('auth', new HummingbirdAuth($container)); - $container->set('cache', new CacheManager($container)); $container->set('url-generator', new UrlGenerator($container)); // ------------------------------------------------------------------------- diff --git a/src/Aviat/AnimeClient/Controller/Manga.php b/src/Aviat/AnimeClient/Controller/Manga.php index 5bc329ab..ff22e132 100644 --- a/src/Aviat/AnimeClient/Controller/Manga.php +++ b/src/Aviat/AnimeClient/Controller/Manga.php @@ -26,12 +26,6 @@ class Manga extends Controller { use \Aviat\Ion\StringWrapper; - /** - * The cache manager - * @var \Aviat\Ion\Cache\CacheInterface - */ - protected $cache; - /** * The manga model * @var object $model @@ -53,7 +47,6 @@ class Manga extends Controller { { parent::__construct($container); - $this->cache = $container->get('cache'); $this->model = $container->get('manga-model'); $this->base_data = array_merge($this->base_data, [ 'menu_name' => 'manga_list', @@ -89,8 +82,8 @@ class Manga extends Controller { ]; $data = ($status !== 'all') - ? [$map[$status] => $this->cache->get($this->model, 'get_list', ['status' => $map[$status]]) ] - : $this->cache->get($this->model, 'get_all_lists'); + ? [$map[$status] => $this->model->get_list($map[$status]) ] + : $this->model->get_list('All'); $this->outputHTML('manga/' . $view_map[$view], [ 'title' => $title, diff --git a/src/Aviat/AnimeClient/Model/Manga.php b/src/Aviat/AnimeClient/Model/Manga.php index fb105d26..d1d8b82e 100644 --- a/src/Aviat/AnimeClient/Model/Manga.php +++ b/src/Aviat/AnimeClient/Model/Manga.php @@ -168,23 +168,6 @@ class Manga extends API { return Json::decode($response->getBody(), TRUE); } - /** - * Get the full set of anime lists - * - * @return array - */ - public function get_all_lists() - { - $data = $this->_get_list_from_api(); - - foreach ($data as &$val) - { - $this->sort_by_name($val, 'manga'); - } - - return $data; - } - /** * Get a category out of the full list * @@ -193,10 +176,8 @@ class Manga extends API { */ public function get_list($status) { - $data = $this->_get_list_from_api($status); - $this->sort_by_name($data, 'manga'); - - return $data; + $data = $this->cache->get($this, '_get_list_from_api'); + return ($status !== 'All') ? $data[$status] : $data; } /** @@ -205,7 +186,7 @@ class Manga extends API { * @param string $status * @return array */ - protected function _get_list_from_api($status = "All") + public function _get_list_from_api($status = "All") { $config = [ 'query' => [ @@ -216,11 +197,7 @@ class Manga extends API { $response = $this->get('manga_library_entries', $config); $data = $this->transform($response); - $output = $this->map_by_status($data); - - return (array_key_exists($status, $output)) - ? $output[$status] - : $output; + return $this->map_by_status($data); } /** @@ -242,6 +219,7 @@ class Manga extends API { $zippered_data = $this->zipper_lists($api_data); $transformer = new Transformer\MangaListTransformer(); $transformed_data = $transformer->transform_collection($zippered_data); + return $transformed_data; } @@ -272,6 +250,11 @@ class Manga extends API { $output[$key][] = $entry; } + foreach($output as &$val) + { + $this->sort_by_name($val, 'manga'); + } + return $output; } diff --git a/tests/AnimeClient/Model/MangaModelTest.php b/tests/AnimeClient/Model/MangaModelTest.php index 6d205398..d8cd4b21 100644 --- a/tests/AnimeClient/Model/MangaModelTest.php +++ b/tests/AnimeClient/Model/MangaModelTest.php @@ -71,21 +71,4 @@ class MangaModelTest extends AnimeClient_TestCase { $expected = Json::decodeFile($this->mockDir . '/get-all-lists.json'); $this->assertEquals($expected['Reading'], $this->model->get_list('Reading')); } - - public function testGetAllLists() - { - if (($var = getenv('CI'))) - { - $this->markTestSkipped(); - } - - $data = file_get_contents($this->mockDir . '/manga.json'); - $client = $this->getMockClient(200, [ - 'Content-type' => 'application/json' - ], $data); - $this->model->__set('client', $client); - - $expected = Json::decodeFile($this->mockDir . '/get-all-lists.json'); - $this->assertEquals($expected, $this->model->get_all_lists()); - } } \ No newline at end of file diff --git a/tests/test_data/manga_list/manga-mapped.json b/tests/test_data/manga_list/manga-mapped.json index 6a85cd02..5d290be5 100644 --- a/tests/test_data/manga_list/manga-mapped.json +++ b/tests/test_data/manga_list/manga-mapped.json @@ -1,967 +1 @@ -{ - "Reading": [{ - "chapters": { - "read": 6, - "total": 120 - }, - "volumes": { - "read": 1, - "total": 14 - }, - "manga": { - "title": "Love Hina", - "alternate_title": null, - "slug": "love-hina", - "url": "https:\/\/hummingbird.me\/manga\/love-hina", - "type": "Manga", - "image": "\/public\/images\/manga\/love-hina.jpg", - "genres": ["Comedy", "Ecchi", "Harem", "Romance"] - }, - "id": 401735, - "reading_status": "Currently Reading", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": "-" - }, { - "chapters": { - "read": 28, - "total": 62 - }, - "volumes": { - "read": 1, - "total": 10 - }, - "manga": { - "title": "Usagi Drop", - "alternate_title": "Bunny Drop", - "slug": "usagi-drop", - "url": "https:\/\/hummingbird.me\/manga\/usagi-drop", - "type": "Manga", - "image": "\/public\/images\/manga\/usagi-drop.jpg", - "genres": ["Comedy", "Drama", "Slice of Life"] - }, - "id": 400901, - "reading_status": "Currently Reading", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 34, - "total": "-" - }, - "volumes": { - "read": 0, - "total": "-" - }, - "manga": { - "title": "Joshikausei", - "alternate_title": null, - "slug": "joshikausei", - "url": "https:\/\/hummingbird.me\/manga\/joshikausei", - "type": "Manga", - "image": "\/public\/images\/manga\/joshikausei.jpg", - "genres": ["Comedy", "School", "Slice of Life"] - }, - "id": 400883, - "reading_status": "Currently Reading", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 62, - "total": "-" - }, - "volumes": { - "read": 6, - "total": "-" - }, - "manga": { - "title": "Bokura wa Minna Kawaisou", - "alternate_title": null, - "slug": "bokura-wa-minna-kawaisou", - "url": "https:\/\/hummingbird.me\/manga\/bokura-wa-minna-kawaisou", - "type": "Manga", - "image": "\/public\/images\/manga\/bokura-wa-minna-kawaisou.jpg", - "genres": ["Comedy", "Romance", "School", "Slice of Life"] - }, - "id": 400874, - "reading_status": "Currently Reading", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }], - "Plan to Read": [{ - "chapters": { - "read": 0, - "total": "-" - }, - "volumes": { - "read": 0, - "total": 2 - }, - "manga": { - "title": "Murder Incarnation", - "alternate_title": null, - "slug": "murder-incarnation", - "url": "https:\/\/hummingbird.me\/manga\/murder-incarnation", - "type": "Manga", - "image": "\/public\/images\/manga\/murder-incarnation.jpg", - "genres": ["Psychological"] - }, - "id": 400982, - "reading_status": "Plan to Read", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": "-" - }, { - "chapters": { - "read": 0, - "total": 17 - }, - "volumes": { - "read": 0, - "total": 3 - }, - "manga": { - "title": "DOLL The Hotel Detective", - "alternate_title": null, - "slug": "doll-the-hotel-detective", - "url": "https:\/\/hummingbird.me\/manga\/doll-the-hotel-detective", - "type": "Manga", - "image": "\/public\/images\/manga\/doll-the-hotel-detective.jpg", - "genres": ["Action"] - }, - "id": 400980, - "reading_status": "Plan to Read", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": "-" - }, { - "chapters": { - "read": 0, - "total": "-" - }, - "volumes": { - "read": 0, - "total": "-" - }, - "manga": { - "title": "Fuuka", - "alternate_title": null, - "slug": "fuuka", - "url": "https:\/\/hummingbird.me\/manga\/fuuka", - "type": "Manga", - "image": "\/public\/images\/manga\/fuuka.jpg", - "genres": ["Ecchi", "Romance", "School"] - }, - "id": 400978, - "reading_status": "Plan to Read", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": "-" - }, { - "chapters": { - "read": 0, - "total": "-" - }, - "volumes": { - "read": 0, - "total": "-" - }, - "manga": { - "title": "Yamada-kun to 7-nin no Majo", - "alternate_title": "Yamada-kun and the Seven Witches", - "slug": "yamada-kun-to-7-nin-no-majo", - "url": "https:\/\/hummingbird.me\/manga\/yamada-kun-to-7-nin-no-majo", - "type": "Manga", - "image": "\/public\/images\/manga\/yamada-kun-to-7-nin-no-majo.jpg", - "genres": ["Comedy", "Ecchi", "Gender Bender", "Romance", "School", "Supernatural"] - }, - "id": 400977, - "reading_status": "Plan to Read", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": "-" - }], - "On Hold": [{ - "chapters": { - "read": 86, - "total": "-" - }, - "volumes": { - "read": 12, - "total": "-" - }, - "manga": { - "title": "Yotsubato!", - "alternate_title": null, - "slug": "yotsubato", - "url": "https:\/\/hummingbird.me\/manga\/yotsubato", - "type": "Manga", - "image": "\/public\/images\/manga\/yotsubato.jpg", - "genres": ["Comedy", "Slice of Life"] - }, - "id": 400904, - "reading_status": "On Hold", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 190, - "total": "-" - }, - "volumes": { - "read": 30, - "total": "-" - }, - "manga": { - "title": "Skip Beat!", - "alternate_title": null, - "slug": "skip-beat", - "url": "https:\/\/hummingbird.me\/manga\/skip-beat", - "type": "Manga", - "image": "\/public\/images\/manga\/skip-beat.jpg", - "genres": ["Comedy", "Drama", "Romance"] - }, - "id": 400898, - "reading_status": "On Hold", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 10 - }, { - "chapters": { - "read": 44, - "total": "-" - }, - "volumes": { - "read": 6, - "total": "-" - }, - "manga": { - "title": "Onii-chan no Koto nanka Zenzen Suki Janain Dakara ne!!", - "alternate_title": "I don't like you at all, Big Brother!!", - "slug": "onii-chan-no-koto-nanka-zenzen-suki-janain-dakara-ne", - "url": "https:\/\/hummingbird.me\/manga\/onii-chan-no-koto-nanka-zenzen-suki-janain-dakara-ne", - "type": "Manga", - "image": "\/public\/images\/manga\/onii-chan-no-koto-nanka-zenzen-suki-janain-dakara-ne.jpg", - "genres": ["Comedy", "Ecchi", "Harem", "Romance", "School"] - }, - "id": 400893, - "reading_status": "On Hold", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }], - "Dropped": [{ - "chapters": { - "read": 269, - "total": 366 - }, - "volumes": { - "read": 12, - "total": 34 - }, - "manga": { - "title": "Urusei Yatsura", - "alternate_title": "Those Obnoxious Aliens", - "slug": "urusei-yatsura", - "url": "https:\/\/hummingbird.me\/manga\/urusei-yatsura", - "type": "Manga", - "image": "\/public\/images\/manga\/urusei-yatsura.jpg", - "genres": ["Comedy", "Romance", "Sci-Fi"] - }, - "id": 400900, - "reading_status": "Dropped", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 0, - "total": 22 - }, - "volumes": { - "read": 0, - "total": 4 - }, - "manga": { - "title": "Obaa-chan wa Idol", - "alternate_title": null, - "slug": "obaa-chan-wa-idol", - "url": "https:\/\/hummingbird.me\/manga\/obaa-chan-wa-idol", - "type": "Manga", - "image": "\/public\/images\/manga\/obaa-chan-wa-idol.jpg", - "genres": ["Comedy", "Drama", "Romance", "Supernatural"] - }, - "id": 400891, - "reading_status": "Dropped", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": "-" - }, { - "chapters": { - "read": 30, - "total": 61 - }, - "volumes": { - "read": 5, - "total": 18 - }, - "manga": { - "title": "Bishoujo Senshi Sailor Moon", - "alternate_title": "Sailor Moon", - "slug": "bishoujo-senshi-sailor-moon", - "url": "https:\/\/hummingbird.me\/manga\/bishoujo-senshi-sailor-moon", - "type": "Manga", - "image": "\/public\/images\/manga\/bishoujo-senshi-sailor-moon.jpg", - "genres": ["Drama", "Fantasy", "Magic", "Mahou Shoujo", "Romance"] - }, - "id": 400872, - "reading_status": "Dropped", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }], - "Completed": [{ - "chapters": { - "read": 111, - "total": 111 - }, - "volumes": { - "read": 13, - "total": 13 - }, - "manga": { - "title": "Wagatsuma-san wa Ore no Yome", - "alternate_title": "My Wife Is Wagatsuma-san", - "slug": "wagatsuma-san-wa-ore-no-yome", - "url": "https:\/\/hummingbird.me\/manga\/wagatsuma-san-wa-ore-no-yome", - "type": "Manga", - "image": "\/public\/images\/manga\/wagatsuma-san-wa-ore-no-yome.jpg", - "genres": ["Comedy", "Romance", "School", "Slice of Life"] - }, - "id": 400903, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 4, - "total": 4 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "Usotsuki Marriage", - "alternate_title": "Deceitful Marriage", - "slug": "usotsuki-marriage", - "url": "https:\/\/hummingbird.me\/manga\/usotsuki-marriage", - "type": "Manga", - "image": "\/public\/images\/manga\/usotsuki-marriage.jpg", - "genres": ["Comedy", "Romance"] - }, - "id": 400902, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 6, - "total": 6 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "SOLD OUT!", - "alternate_title": null, - "slug": "sold-out", - "url": "https:\/\/hummingbird.me\/manga\/sold-out", - "type": "Manga", - "image": "\/public\/images\/manga\/sold-out.jpg", - "genres": ["Drama", "Romance"] - }, - "id": 400899, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }, { - "chapters": { - "read": 10, - "total": 10 - }, - "volumes": { - "read": 2, - "total": 2 - }, - "manga": { - "title": "Samurai Champloo", - "alternate_title": null, - "slug": "samurai-champloo", - "url": "https:\/\/hummingbird.me\/manga\/samurai-champloo", - "type": "Manga", - "image": "\/public\/images\/manga\/samurai-champloo.jpg", - "genres": ["Action", "Adventure", "Comedy"] - }, - "id": 400897, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 407, - "total": 407 - }, - "volumes": { - "read": 38, - "total": 38 - }, - "manga": { - "title": "Ranma \u00bd", - "alternate_title": null, - "slug": "ranma", - "url": "https:\/\/hummingbird.me\/manga\/ranma", - "type": "Manga", - "image": "\/public\/images\/manga\/ranma.jpg", - "genres": ["Action", "Comedy", "Ecchi", "Gender Bender", "Harem", "Martial Arts", "Romance", "School"] - }, - "id": 400896, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 5, - "total": 5 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "Otome no Iroha!", - "alternate_title": null, - "slug": "otome-no-iroha", - "url": "https:\/\/hummingbird.me\/manga\/otome-no-iroha", - "type": "Manga", - "image": "\/public\/images\/manga\/otome-no-iroha.jpg", - "genres": ["Comedy", "Ecchi", "School"] - }, - "id": 400895, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }, { - "chapters": { - "read": 26, - "total": 26 - }, - "volumes": { - "read": 4, - "total": 4 - }, - "manga": { - "title": "Ore no Imouto ga Konnani Kawaii Wake ga Nai", - "alternate_title": "Oreimo", - "slug": "ore-no-imouto-ga-konnani-kawaii-wake-ga-nai", - "url": "https:\/\/hummingbird.me\/manga\/ore-no-imouto-ga-konnani-kawaii-wake-ga-nai", - "type": "Manga", - "image": "\/public\/images\/manga\/ore-no-imouto-ga-konnani-kawaii-wake-ga-nai.jpg", - "genres": ["Comedy", "Drama", "Ecchi", "School"] - }, - "id": 400894, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 10 - }, { - "chapters": { - "read": 3, - "total": 3 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "Onegai, Sensei", - "alternate_title": "Please, Teacher", - "slug": "onegai-sensei-manga", - "url": "https:\/\/hummingbird.me\/manga\/onegai-sensei-manga", - "type": "Manga", - "image": "\/public\/images\/manga\/onegai-sensei-manga.jpg", - "genres": ["Romance", "School"] - }, - "id": 400892, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 96, - "total": 96 - }, - "volumes": { - "read": 12, - "total": 12 - }, - "manga": { - "title": "Nazo no Kanojo X", - "alternate_title": "Mysterious Girlfriend X", - "slug": "nazo-no-kanojo-x", - "url": "https:\/\/hummingbird.me\/manga\/nazo-no-kanojo-x", - "type": "Manga", - "image": "\/public\/images\/manga\/nazo-no-kanojo-x.jpg", - "genres": ["Ecchi", "Mystery", "Romance", "School"] - }, - "id": 400890, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 7, - "total": 7 - }, - "volumes": { - "read": 2, - "total": 2 - }, - "manga": { - "title": "Milk to Vitamin", - "alternate_title": null, - "slug": "milk-to-vitamin", - "url": "https:\/\/hummingbird.me\/manga\/milk-to-vitamin", - "type": "Manga", - "image": "\/public\/images\/manga\/milk-to-vitamin.jpg", - "genres": ["Comedy", "Drama", "Romance"] - }, - "id": 400889, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }, { - "chapters": { - "read": 12, - "total": 12 - }, - "volumes": { - "read": 2, - "total": 2 - }, - "manga": { - "title": "Mama wa Shougaku 4 Nensei", - "alternate_title": null, - "slug": "mama-wa-shougaku-4-nensei", - "url": "https:\/\/hummingbird.me\/manga\/mama-wa-shougaku-4-nensei", - "type": "Manga", - "image": "\/public\/images\/manga\/mama-wa-shougaku-4-nensei.jpg", - "genres": ["Comedy", "Drama", "Sci-Fi"] - }, - "id": 400888, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 13, - "total": 14 - }, - "volumes": { - "read": 2, - "total": 2 - }, - "manga": { - "title": "Maburaho", - "alternate_title": null, - "slug": "maburaho-7719eaec-27ba-4375-847e-7b140a29257a", - "url": "https:\/\/hummingbird.me\/manga\/maburaho-7719eaec-27ba-4375-847e-7b140a29257a", - "type": "Manga", - "image": "\/public\/images\/manga\/maburaho-7719eaec-27ba-4375-847e-7b140a29257a.jpg", - "genres": ["Comedy", "Harem", "Magic", "Romance"] - }, - "id": 400887, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 49, - "total": 49 - }, - "volumes": { - "read": 8, - "total": 8 - }, - "manga": { - "title": "Kono Onee-san wa Fiction desu!?", - "alternate_title": "Is this Girl for Real!?", - "slug": "kono-onee-san-wa-fiction-desu", - "url": "https:\/\/hummingbird.me\/manga\/kono-onee-san-wa-fiction-desu", - "type": "Manga", - "image": "\/public\/images\/manga\/kono-onee-san-wa-fiction-desu.jpg", - "genres": ["Comedy", "Ecchi", "Romance", "School"] - }, - "id": 400886, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 5, - "total": 5 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "Kimi Dake no Devil", - "alternate_title": "A Devil Just for You", - "slug": "kimi-dake-no-devil", - "url": "https:\/\/hummingbird.me\/manga\/kimi-dake-no-devil", - "type": "Manga", - "image": "\/public\/images\/manga\/kimi-dake-no-devil.jpg", - "genres": ["Comedy", "Fantasy"] - }, - "id": 400885, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 2, - "total": 2 - }, - "volumes": { - "read": 1, - "total": "-" - }, - "manga": { - "title": "Kanaete Aizen", - "alternate_title": null, - "slug": "kanaete-aizen", - "url": "https:\/\/hummingbird.me\/manga\/kanaete-aizen", - "type": "Manga", - "image": "\/public\/images\/manga\/kanaete-aizen.jpg", - "genres": ["Ecchi", "Romance", "School", "Supernatural"] - }, - "id": 400884, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 558, - "total": 558 - }, - "volumes": { - "read": 56, - "total": 56 - }, - "manga": { - "title": "InuYasha", - "alternate_title": null, - "slug": "inuyasha", - "url": "https:\/\/hummingbird.me\/manga\/inuyasha", - "type": "Manga", - "image": "\/public\/images\/manga\/inuyasha.jpg", - "genres": ["Adventure", "Comedy", "Demons", "Drama", "Fantasy", "Historical", "Romance", "Supernatural"] - }, - "id": 400882, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }, { - "chapters": { - "read": 19, - "total": 19 - }, - "volumes": { - "read": 3, - "total": 3 - }, - "manga": { - "title": "Inumimi", - "alternate_title": null, - "slug": "inumimi", - "url": "https:\/\/hummingbird.me\/manga\/inumimi", - "type": "Manga", - "image": "\/public\/images\/manga\/inumimi.jpg", - "genres": ["Comedy", "Ecchi", "Harem", "Romance"] - }, - "id": 400881, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 41, - "total": 41 - }, - "volumes": { - "read": 5, - "total": 5 - }, - "manga": { - "title": "Inu Neko Jump", - "alternate_title": "Dog Cat Jump", - "slug": "inu-neko-jump", - "url": "https:\/\/hummingbird.me\/manga\/inu-neko-jump", - "type": "Manga", - "image": "\/public\/images\/manga\/inu-neko-jump.jpg", - "genres": ["Comedy", "Romance"] - }, - "id": 400880, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 9, - "total": 9 - }, - "volumes": { - "read": 2, - "total": 2 - }, - "manga": { - "title": "I \u2665 HS", - "alternate_title": "I Love High School", - "slug": "i-hs", - "url": "https:\/\/hummingbird.me\/manga\/i-hs", - "type": "Manga", - "image": "\/public\/images\/manga\/i-hs.jpg", - "genres": ["Comedy", "Drama", "Romance", "School"] - }, - "id": 400879, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }, { - "chapters": { - "read": 48, - "total": 48 - }, - "volumes": { - "read": 8, - "total": 8 - }, - "manga": { - "title": "Futaba-kun Change\u2661", - "alternate_title": null, - "slug": "futaba-kun-change", - "url": "https:\/\/hummingbird.me\/manga\/futaba-kun-change", - "type": "Manga", - "image": "\/public\/images\/manga\/futaba-kun-change.jpg", - "genres": ["Comedy", "Ecchi", "Romance", "School"] - }, - "id": 400878, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 58, - "total": 58 - }, - "volumes": { - "read": 9, - "total": 9 - }, - "manga": { - "title": "Full Metal Panic!", - "alternate_title": null, - "slug": "full-metal-panic", - "url": "https:\/\/hummingbird.me\/manga\/full-metal-panic", - "type": "Manga", - "image": "\/public\/images\/manga\/full-metal-panic.jpg", - "genres": ["Action", "Comedy", "Mecha", "Military", "Romance"] - }, - "id": 400877, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 10 - }, { - "chapters": { - "read": 88, - "total": 88 - }, - "volumes": { - "read": 8, - "total": 8 - }, - "manga": { - "title": "Chobits", - "alternate_title": null, - "slug": "chobits", - "url": "https:\/\/hummingbird.me\/manga\/chobits", - "type": "Manga", - "image": "\/public\/images\/manga\/chobits.jpg", - "genres": ["Comedy", "Ecchi", "Psychological", "Romance", "Sci-Fi"] - }, - "id": 400876, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 9 - }, { - "chapters": { - "read": 4, - "total": 4 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "Change 2!!", - "alternate_title": null, - "slug": "change-2", - "url": "https:\/\/hummingbird.me\/manga\/change-2", - "type": "Manga", - "image": "\/public\/images\/manga\/change-2.jpg", - "genres": ["Action", "Ecchi", "School"] - }, - "id": 400875, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 10 - }, { - "chapters": { - "read": 21, - "total": 21 - }, - "volumes": { - "read": 5, - "total": 5 - }, - "manga": { - "title": "Boku ni Natta Watashi", - "alternate_title": "I Became a Boy", - "slug": "boku-ni-natta-watashi", - "url": "https:\/\/hummingbird.me\/manga\/boku-ni-natta-watashi", - "type": "Manga", - "image": "\/public\/images\/manga\/boku-ni-natta-watashi.jpg", - "genres": ["Drama", "Romance", "School"] - }, - "id": 400873, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 8 - }, { - "chapters": { - "read": 4, - "total": 4 - }, - "volumes": { - "read": 1, - "total": 1 - }, - "manga": { - "title": "Anta Nanka Daikirai", - "alternate_title": null, - "slug": "anta-nanka-daikirai", - "url": "https:\/\/hummingbird.me\/manga\/anta-nanka-daikirai", - "type": "Manga", - "image": "\/public\/images\/manga\/anta-nanka-daikirai.jpg", - "genres": ["Drama", "Romance", "School"] - }, - "id": 400871, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }, { - "chapters": { - "read": 10, - "total": 10 - }, - "volumes": { - "read": 2, - "total": 2 - }, - "manga": { - "title": "Akane-chan Overdrive", - "alternate_title": null, - "slug": "akane-chan-overdrive", - "url": "https:\/\/hummingbird.me\/manga\/akane-chan-overdrive", - "type": "Manga", - "image": "\/public\/images\/manga\/akane-chan-overdrive.jpg", - "genres": ["Comedy", "Ecchi", "Gender Bender"] - }, - "id": 400870, - "reading_status": "Completed", - "notes": null, - "rereading": false, - "reread": 0, - "user_rating": 7 - }] -} \ No newline at end of file +{"Reading":[{"chapters":{"read":62,"total":"-"},"volumes":{"read":6,"total":"-"},"manga":{"title":"Bokura wa Minna Kawaisou","alternate_title":null,"slug":"bokura-wa-minna-kawaisou","url":"https:\/\/hummingbird.me\/manga\/bokura-wa-minna-kawaisou","type":"Manga","image":"\/public\/images\/manga\/bokura-wa-minna-kawaisou.jpg","genres":["Comedy","Romance","School","Slice of Life"]},"id":400874,"reading_status":"Currently Reading","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":34,"total":"-"},"volumes":{"read":0,"total":"-"},"manga":{"title":"Joshikausei","alternate_title":null,"slug":"joshikausei","url":"https:\/\/hummingbird.me\/manga\/joshikausei","type":"Manga","image":"\/public\/images\/manga\/joshikausei.jpg","genres":["Comedy","School","Slice of Life"]},"id":400883,"reading_status":"Currently Reading","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":6,"total":120},"volumes":{"read":1,"total":14},"manga":{"title":"Love Hina","alternate_title":null,"slug":"love-hina","url":"https:\/\/hummingbird.me\/manga\/love-hina","type":"Manga","image":"\/public\/images\/manga\/love-hina.jpg","genres":["Comedy","Ecchi","Harem","Romance"]},"id":401735,"reading_status":"Currently Reading","notes":null,"rereading":false,"reread":0,"user_rating":"-"},{"chapters":{"read":28,"total":62},"volumes":{"read":1,"total":10},"manga":{"title":"Usagi Drop","alternate_title":"Bunny Drop","slug":"usagi-drop","url":"https:\/\/hummingbird.me\/manga\/usagi-drop","type":"Manga","image":"\/public\/images\/manga\/usagi-drop.jpg","genres":["Comedy","Drama","Slice of Life"]},"id":400901,"reading_status":"Currently Reading","notes":null,"rereading":false,"reread":0,"user_rating":8}],"Plan to Read":[{"chapters":{"read":0,"total":17},"volumes":{"read":0,"total":3},"manga":{"title":"DOLL The Hotel Detective","alternate_title":null,"slug":"doll-the-hotel-detective","url":"https:\/\/hummingbird.me\/manga\/doll-the-hotel-detective","type":"Manga","image":"\/public\/images\/manga\/doll-the-hotel-detective.jpg","genres":["Action"]},"id":400980,"reading_status":"Plan to Read","notes":null,"rereading":false,"reread":0,"user_rating":"-"},{"chapters":{"read":0,"total":"-"},"volumes":{"read":0,"total":"-"},"manga":{"title":"Fuuka","alternate_title":null,"slug":"fuuka","url":"https:\/\/hummingbird.me\/manga\/fuuka","type":"Manga","image":"\/public\/images\/manga\/fuuka.jpg","genres":["Ecchi","Romance","School"]},"id":400978,"reading_status":"Plan to Read","notes":null,"rereading":false,"reread":0,"user_rating":"-"},{"chapters":{"read":0,"total":"-"},"volumes":{"read":0,"total":2},"manga":{"title":"Murder Incarnation","alternate_title":null,"slug":"murder-incarnation","url":"https:\/\/hummingbird.me\/manga\/murder-incarnation","type":"Manga","image":"\/public\/images\/manga\/murder-incarnation.jpg","genres":["Psychological"]},"id":400982,"reading_status":"Plan to Read","notes":null,"rereading":false,"reread":0,"user_rating":"-"},{"chapters":{"read":0,"total":"-"},"volumes":{"read":0,"total":"-"},"manga":{"title":"Yamada-kun to 7-nin no Majo","alternate_title":"Yamada-kun and the Seven Witches","slug":"yamada-kun-to-7-nin-no-majo","url":"https:\/\/hummingbird.me\/manga\/yamada-kun-to-7-nin-no-majo","type":"Manga","image":"\/public\/images\/manga\/yamada-kun-to-7-nin-no-majo.jpg","genres":["Comedy","Ecchi","Gender Bender","Romance","School","Supernatural"]},"id":400977,"reading_status":"Plan to Read","notes":null,"rereading":false,"reread":0,"user_rating":"-"}],"On Hold":[{"chapters":{"read":44,"total":"-"},"volumes":{"read":6,"total":"-"},"manga":{"title":"Onii-chan no Koto nanka Zenzen Suki Janain Dakara ne!!","alternate_title":"I don't like you at all, Big Brother!!","slug":"onii-chan-no-koto-nanka-zenzen-suki-janain-dakara-ne","url":"https:\/\/hummingbird.me\/manga\/onii-chan-no-koto-nanka-zenzen-suki-janain-dakara-ne","type":"Manga","image":"\/public\/images\/manga\/onii-chan-no-koto-nanka-zenzen-suki-janain-dakara-ne.jpg","genres":["Comedy","Ecchi","Harem","Romance","School"]},"id":400893,"reading_status":"On Hold","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":190,"total":"-"},"volumes":{"read":30,"total":"-"},"manga":{"title":"Skip Beat!","alternate_title":null,"slug":"skip-beat","url":"https:\/\/hummingbird.me\/manga\/skip-beat","type":"Manga","image":"\/public\/images\/manga\/skip-beat.jpg","genres":["Comedy","Drama","Romance"]},"id":400898,"reading_status":"On Hold","notes":null,"rereading":false,"reread":0,"user_rating":10},{"chapters":{"read":86,"total":"-"},"volumes":{"read":12,"total":"-"},"manga":{"title":"Yotsubato!","alternate_title":null,"slug":"yotsubato","url":"https:\/\/hummingbird.me\/manga\/yotsubato","type":"Manga","image":"\/public\/images\/manga\/yotsubato.jpg","genres":["Comedy","Slice of Life"]},"id":400904,"reading_status":"On Hold","notes":null,"rereading":false,"reread":0,"user_rating":9}],"Dropped":[{"chapters":{"read":30,"total":61},"volumes":{"read":5,"total":18},"manga":{"title":"Bishoujo Senshi Sailor Moon","alternate_title":"Sailor Moon","slug":"bishoujo-senshi-sailor-moon","url":"https:\/\/hummingbird.me\/manga\/bishoujo-senshi-sailor-moon","type":"Manga","image":"\/public\/images\/manga\/bishoujo-senshi-sailor-moon.jpg","genres":["Drama","Fantasy","Magic","Mahou Shoujo","Romance"]},"id":400872,"reading_status":"Dropped","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":0,"total":22},"volumes":{"read":0,"total":4},"manga":{"title":"Obaa-chan wa Idol","alternate_title":null,"slug":"obaa-chan-wa-idol","url":"https:\/\/hummingbird.me\/manga\/obaa-chan-wa-idol","type":"Manga","image":"\/public\/images\/manga\/obaa-chan-wa-idol.jpg","genres":["Comedy","Drama","Romance","Supernatural"]},"id":400891,"reading_status":"Dropped","notes":null,"rereading":false,"reread":0,"user_rating":"-"},{"chapters":{"read":269,"total":366},"volumes":{"read":12,"total":34},"manga":{"title":"Urusei Yatsura","alternate_title":"Those Obnoxious Aliens","slug":"urusei-yatsura","url":"https:\/\/hummingbird.me\/manga\/urusei-yatsura","type":"Manga","image":"\/public\/images\/manga\/urusei-yatsura.jpg","genres":["Comedy","Romance","Sci-Fi"]},"id":400900,"reading_status":"Dropped","notes":null,"rereading":false,"reread":0,"user_rating":8}],"Completed":[{"chapters":{"read":10,"total":10},"volumes":{"read":2,"total":2},"manga":{"title":"Akane-chan Overdrive","alternate_title":null,"slug":"akane-chan-overdrive","url":"https:\/\/hummingbird.me\/manga\/akane-chan-overdrive","type":"Manga","image":"\/public\/images\/manga\/akane-chan-overdrive.jpg","genres":["Comedy","Ecchi","Gender Bender"]},"id":400870,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":4,"total":4},"volumes":{"read":1,"total":1},"manga":{"title":"Anta Nanka Daikirai","alternate_title":null,"slug":"anta-nanka-daikirai","url":"https:\/\/hummingbird.me\/manga\/anta-nanka-daikirai","type":"Manga","image":"\/public\/images\/manga\/anta-nanka-daikirai.jpg","genres":["Drama","Romance","School"]},"id":400871,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":21,"total":21},"volumes":{"read":5,"total":5},"manga":{"title":"Boku ni Natta Watashi","alternate_title":"I Became a Boy","slug":"boku-ni-natta-watashi","url":"https:\/\/hummingbird.me\/manga\/boku-ni-natta-watashi","type":"Manga","image":"\/public\/images\/manga\/boku-ni-natta-watashi.jpg","genres":["Drama","Romance","School"]},"id":400873,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":4,"total":4},"volumes":{"read":1,"total":1},"manga":{"title":"Change 2!!","alternate_title":null,"slug":"change-2","url":"https:\/\/hummingbird.me\/manga\/change-2","type":"Manga","image":"\/public\/images\/manga\/change-2.jpg","genres":["Action","Ecchi","School"]},"id":400875,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":10},{"chapters":{"read":88,"total":88},"volumes":{"read":8,"total":8},"manga":{"title":"Chobits","alternate_title":null,"slug":"chobits","url":"https:\/\/hummingbird.me\/manga\/chobits","type":"Manga","image":"\/public\/images\/manga\/chobits.jpg","genres":["Comedy","Ecchi","Psychological","Romance","Sci-Fi"]},"id":400876,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":58,"total":58},"volumes":{"read":9,"total":9},"manga":{"title":"Full Metal Panic!","alternate_title":null,"slug":"full-metal-panic","url":"https:\/\/hummingbird.me\/manga\/full-metal-panic","type":"Manga","image":"\/public\/images\/manga\/full-metal-panic.jpg","genres":["Action","Comedy","Mecha","Military","Romance"]},"id":400877,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":10},{"chapters":{"read":48,"total":48},"volumes":{"read":8,"total":8},"manga":{"title":"Futaba-kun Change\u2661","alternate_title":null,"slug":"futaba-kun-change","url":"https:\/\/hummingbird.me\/manga\/futaba-kun-change","type":"Manga","image":"\/public\/images\/manga\/futaba-kun-change.jpg","genres":["Comedy","Ecchi","Romance","School"]},"id":400878,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":9,"total":9},"volumes":{"read":2,"total":2},"manga":{"title":"I \u2665 HS","alternate_title":"I Love High School","slug":"i-hs","url":"https:\/\/hummingbird.me\/manga\/i-hs","type":"Manga","image":"\/public\/images\/manga\/i-hs.jpg","genres":["Comedy","Drama","Romance","School"]},"id":400879,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":41,"total":41},"volumes":{"read":5,"total":5},"manga":{"title":"Inu Neko Jump","alternate_title":"Dog Cat Jump","slug":"inu-neko-jump","url":"https:\/\/hummingbird.me\/manga\/inu-neko-jump","type":"Manga","image":"\/public\/images\/manga\/inu-neko-jump.jpg","genres":["Comedy","Romance"]},"id":400880,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":558,"total":558},"volumes":{"read":56,"total":56},"manga":{"title":"InuYasha","alternate_title":null,"slug":"inuyasha","url":"https:\/\/hummingbird.me\/manga\/inuyasha","type":"Manga","image":"\/public\/images\/manga\/inuyasha.jpg","genres":["Adventure","Comedy","Demons","Drama","Fantasy","Historical","Romance","Supernatural"]},"id":400882,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":19,"total":19},"volumes":{"read":3,"total":3},"manga":{"title":"Inumimi","alternate_title":null,"slug":"inumimi","url":"https:\/\/hummingbird.me\/manga\/inumimi","type":"Manga","image":"\/public\/images\/manga\/inumimi.jpg","genres":["Comedy","Ecchi","Harem","Romance"]},"id":400881,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":2,"total":2},"volumes":{"read":1,"total":"-"},"manga":{"title":"Kanaete Aizen","alternate_title":null,"slug":"kanaete-aizen","url":"https:\/\/hummingbird.me\/manga\/kanaete-aizen","type":"Manga","image":"\/public\/images\/manga\/kanaete-aizen.jpg","genres":["Ecchi","Romance","School","Supernatural"]},"id":400884,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":5,"total":5},"volumes":{"read":1,"total":1},"manga":{"title":"Kimi Dake no Devil","alternate_title":"A Devil Just for You","slug":"kimi-dake-no-devil","url":"https:\/\/hummingbird.me\/manga\/kimi-dake-no-devil","type":"Manga","image":"\/public\/images\/manga\/kimi-dake-no-devil.jpg","genres":["Comedy","Fantasy"]},"id":400885,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":49,"total":49},"volumes":{"read":8,"total":8},"manga":{"title":"Kono Onee-san wa Fiction desu!?","alternate_title":"Is this Girl for Real!?","slug":"kono-onee-san-wa-fiction-desu","url":"https:\/\/hummingbird.me\/manga\/kono-onee-san-wa-fiction-desu","type":"Manga","image":"\/public\/images\/manga\/kono-onee-san-wa-fiction-desu.jpg","genres":["Comedy","Ecchi","Romance","School"]},"id":400886,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":13,"total":14},"volumes":{"read":2,"total":2},"manga":{"title":"Maburaho","alternate_title":null,"slug":"maburaho-7719eaec-27ba-4375-847e-7b140a29257a","url":"https:\/\/hummingbird.me\/manga\/maburaho-7719eaec-27ba-4375-847e-7b140a29257a","type":"Manga","image":"\/public\/images\/manga\/maburaho-7719eaec-27ba-4375-847e-7b140a29257a.jpg","genres":["Comedy","Harem","Magic","Romance"]},"id":400887,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":12,"total":12},"volumes":{"read":2,"total":2},"manga":{"title":"Mama wa Shougaku 4 Nensei","alternate_title":null,"slug":"mama-wa-shougaku-4-nensei","url":"https:\/\/hummingbird.me\/manga\/mama-wa-shougaku-4-nensei","type":"Manga","image":"\/public\/images\/manga\/mama-wa-shougaku-4-nensei.jpg","genres":["Comedy","Drama","Sci-Fi"]},"id":400888,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":7,"total":7},"volumes":{"read":2,"total":2},"manga":{"title":"Milk to Vitamin","alternate_title":null,"slug":"milk-to-vitamin","url":"https:\/\/hummingbird.me\/manga\/milk-to-vitamin","type":"Manga","image":"\/public\/images\/manga\/milk-to-vitamin.jpg","genres":["Comedy","Drama","Romance"]},"id":400889,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":96,"total":96},"volumes":{"read":12,"total":12},"manga":{"title":"Nazo no Kanojo X","alternate_title":"Mysterious Girlfriend X","slug":"nazo-no-kanojo-x","url":"https:\/\/hummingbird.me\/manga\/nazo-no-kanojo-x","type":"Manga","image":"\/public\/images\/manga\/nazo-no-kanojo-x.jpg","genres":["Ecchi","Mystery","Romance","School"]},"id":400890,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":3,"total":3},"volumes":{"read":1,"total":1},"manga":{"title":"Onegai, Sensei","alternate_title":"Please, Teacher","slug":"onegai-sensei-manga","url":"https:\/\/hummingbird.me\/manga\/onegai-sensei-manga","type":"Manga","image":"\/public\/images\/manga\/onegai-sensei-manga.jpg","genres":["Romance","School"]},"id":400892,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":26,"total":26},"volumes":{"read":4,"total":4},"manga":{"title":"Ore no Imouto ga Konnani Kawaii Wake ga Nai","alternate_title":"Oreimo","slug":"ore-no-imouto-ga-konnani-kawaii-wake-ga-nai","url":"https:\/\/hummingbird.me\/manga\/ore-no-imouto-ga-konnani-kawaii-wake-ga-nai","type":"Manga","image":"\/public\/images\/manga\/ore-no-imouto-ga-konnani-kawaii-wake-ga-nai.jpg","genres":["Comedy","Drama","Ecchi","School"]},"id":400894,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":10},{"chapters":{"read":5,"total":5},"volumes":{"read":1,"total":1},"manga":{"title":"Otome no Iroha!","alternate_title":null,"slug":"otome-no-iroha","url":"https:\/\/hummingbird.me\/manga\/otome-no-iroha","type":"Manga","image":"\/public\/images\/manga\/otome-no-iroha.jpg","genres":["Comedy","Ecchi","School"]},"id":400895,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":407,"total":407},"volumes":{"read":38,"total":38},"manga":{"title":"Ranma \u00bd","alternate_title":null,"slug":"ranma","url":"https:\/\/hummingbird.me\/manga\/ranma","type":"Manga","image":"\/public\/images\/manga\/ranma.jpg","genres":["Action","Comedy","Ecchi","Gender Bender","Harem","Martial Arts","Romance","School"]},"id":400896,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":9},{"chapters":{"read":6,"total":6},"volumes":{"read":1,"total":1},"manga":{"title":"SOLD OUT!","alternate_title":null,"slug":"sold-out","url":"https:\/\/hummingbird.me\/manga\/sold-out","type":"Manga","image":"\/public\/images\/manga\/sold-out.jpg","genres":["Drama","Romance"]},"id":400899,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":7},{"chapters":{"read":10,"total":10},"volumes":{"read":2,"total":2},"manga":{"title":"Samurai Champloo","alternate_title":null,"slug":"samurai-champloo","url":"https:\/\/hummingbird.me\/manga\/samurai-champloo","type":"Manga","image":"\/public\/images\/manga\/samurai-champloo.jpg","genres":["Action","Adventure","Comedy"]},"id":400897,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":4,"total":4},"volumes":{"read":1,"total":1},"manga":{"title":"Usotsuki Marriage","alternate_title":"Deceitful Marriage","slug":"usotsuki-marriage","url":"https:\/\/hummingbird.me\/manga\/usotsuki-marriage","type":"Manga","image":"\/public\/images\/manga\/usotsuki-marriage.jpg","genres":["Comedy","Romance"]},"id":400902,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8},{"chapters":{"read":111,"total":111},"volumes":{"read":13,"total":13},"manga":{"title":"Wagatsuma-san wa Ore no Yome","alternate_title":"My Wife Is Wagatsuma-san","slug":"wagatsuma-san-wa-ore-no-yome","url":"https:\/\/hummingbird.me\/manga\/wagatsuma-san-wa-ore-no-yome","type":"Manga","image":"\/public\/images\/manga\/wagatsuma-san-wa-ore-no-yome.jpg","genres":["Comedy","Romance","School","Slice of Life"]},"id":400903,"reading_status":"Completed","notes":null,"rereading":false,"reread":0,"user_rating":8}]} \ No newline at end of file