More GraphQL conversion, test updates, see #33
Some checks failed
timw4mail/HummingBirdAnimeClient/pipeline/pr-master There was a failure building this commit
Some checks failed
timw4mail/HummingBirdAnimeClient/pipeline/pr-master There was a failure building this commit
This commit is contained in:
parent
1e3bfa7a0a
commit
5340c39466
@ -222,40 +222,6 @@ trait AnimeTrait {
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mal id for the anime represented by the kitsu id
|
||||
* to enable updating MyAnimeList
|
||||
*
|
||||
* @param string $kitsuAnimeId The id of the anime on Kitsu
|
||||
* @return string|null Returns the mal id if it exists, otherwise null
|
||||
*/
|
||||
public function getMalIdForAnime(string $kitsuAnimeId): ?string
|
||||
{
|
||||
$options = [
|
||||
'query' => [
|
||||
'include' => 'mappings'
|
||||
]
|
||||
];
|
||||
$data = $this->requestBuilder->getRequest("anime/{$kitsuAnimeId}", $options);
|
||||
|
||||
if ( ! array_key_exists('included', $data))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
$mappings = array_column($data['included'], 'attributes');
|
||||
|
||||
foreach($mappings as $map)
|
||||
{
|
||||
if ($map['externalSite'] === 'myanimelist/anime')
|
||||
{
|
||||
return $map['externalId'];
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the full anime list in paginated form
|
||||
*
|
||||
|
@ -242,32 +242,4 @@ trait MangaTrait {
|
||||
|
||||
return $this->requestBuilder->setUpRequest('GET', 'library-entries', ['query' => $options]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mal id for the manga represented by the kitsu id
|
||||
* to enable updating MyAnimeList
|
||||
*
|
||||
* @param string $kitsuMangaId The id of the manga on Kitsu
|
||||
* @return string|null Returns the mal id if it exists, otherwise null
|
||||
*/
|
||||
public function getMalIdForManga(string $kitsuMangaId): ?string
|
||||
{
|
||||
$options = [
|
||||
'query' => [
|
||||
'include' => 'mappings'
|
||||
]
|
||||
];
|
||||
$data = $this->requestBuilder->getRequest("manga/{$kitsuMangaId}", $options);
|
||||
$mappings = array_column($data['included'], 'attributes');
|
||||
|
||||
foreach($mappings as $map)
|
||||
{
|
||||
if ($map['externalSite'] === 'myanimelist/manga')
|
||||
{
|
||||
return $map['externalId'];
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
@ -279,27 +279,12 @@ final class Model {
|
||||
*/
|
||||
public function getKitsuIdFromMALId(string $malId, string $type='anime'): ?string
|
||||
{
|
||||
$options = [
|
||||
'query' => [
|
||||
'filter' => [
|
||||
'external_site' => "myanimelist/{$type}",
|
||||
'external_id' => $malId
|
||||
],
|
||||
'fields' => [
|
||||
'media' => 'id,slug'
|
||||
],
|
||||
'include' => 'item'
|
||||
]
|
||||
];
|
||||
$raw = $this->requestBuilder->runQuery('GetIdByMapping', [
|
||||
'id' => $malId,
|
||||
'site' => strtoupper("MYANIMELIST_{$type}"),
|
||||
]);
|
||||
|
||||
$raw = $this->requestBuilder->getRequest('mappings', $options);
|
||||
|
||||
if ( ! array_key_exists('included', $raw))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return $raw['included'][0]['id'];
|
||||
return $raw['data']['lookupMapping']['id'] ?? NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
|
42
tests/AnimeClient/API/Kitsu/ModelTest.php
Normal file
42
tests/AnimeClient/API/Kitsu/ModelTest.php
Normal file
@ -0,0 +1,42 @@
|
||||
<?php declare(strict_types=1);
|
||||
/**
|
||||
* Hummingbird Anime List Client
|
||||
*
|
||||
* An API client for Kitsu to manage anime and manga watch lists
|
||||
*
|
||||
* PHP version 7.4
|
||||
*
|
||||
* @package HummingbirdAnimeClient
|
||||
* @author Timothy J. Warren <tim@timshomepage.net>
|
||||
* @copyright 2015 - 2020 Timothy J. Warren
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version 5.1
|
||||
* @link https://git.timshomepage.net/timw4mail/HummingBirdAnimeClient
|
||||
*/
|
||||
|
||||
namespace Aviat\AnimeClient\Tests\API\Kitsu;
|
||||
|
||||
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
||||
|
||||
class ModelTest extends AnimeClientTestCase {
|
||||
|
||||
protected $model;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setup();
|
||||
$this->model = $this->container->get('kitsu-model');
|
||||
}
|
||||
|
||||
public function testGetAnimeKitsuIdFromMALId(): void
|
||||
{
|
||||
$kitsuId = $this->model->getKitsuIdFromMALId("1", 'anime');
|
||||
self::assertEquals("1", $kitsuId);
|
||||
}
|
||||
|
||||
public function testGetNullFromMALAnimeId(): void
|
||||
{
|
||||
$kitsuId = $this->model->getKitsuIdFromMALId("0", 'anime');
|
||||
self::assertNull($kitsuId);
|
||||
}
|
||||
}
|
@ -16,9 +16,8 @@
|
||||
|
||||
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
||||
|
||||
use Aviat\AnimeClient\API\Kitsu\Transformer\OldAnimeListTransformer;
|
||||
use Aviat\AnimeClient\API\Kitsu\Transformer\AnimeListTransformer;
|
||||
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
||||
use Aviat\Ion\Friend;
|
||||
use Aviat\Ion\Json;
|
||||
|
||||
class AnimeListTransformerTest extends AnimeClientTestCase {
|
||||
@ -31,9 +30,10 @@ class AnimeListTransformerTest extends AnimeClientTestCase {
|
||||
parent::setUp();
|
||||
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
||||
|
||||
$this->beforeTransform = Json::decodeFile("{$this->dir}/animeListItemBeforeTransform.json");
|
||||
$raw = Json::decodeFile("{$this->dir}/animeListItemBeforeTransform.json");
|
||||
$this->beforeTransform = $raw['data']['findLibraryEntryById'];
|
||||
|
||||
$this->transformer = new OldAnimeListTransformer();
|
||||
$this->transformer = new AnimeListTransformer();
|
||||
}
|
||||
|
||||
public function testTransform()
|
||||
|
@ -24,7 +24,6 @@ class AnimeTransformerTest extends AnimeClientTestCase {
|
||||
|
||||
protected $dir;
|
||||
protected $beforeTransform;
|
||||
protected $afterTransform;
|
||||
protected $transformer;
|
||||
|
||||
public function setUp(): void {
|
||||
@ -38,8 +37,6 @@ class AnimeTransformerTest extends AnimeClientTestCase {
|
||||
|
||||
public function testTransform()
|
||||
{
|
||||
$this->markTestSkipped('Skip until fixed with GraphQL snapshot');
|
||||
|
||||
$actual = $this->transformer->transform($this->beforeTransform);
|
||||
$this->assertMatchesSnapshot($actual);
|
||||
}
|
||||
|
@ -16,8 +16,7 @@
|
||||
|
||||
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
||||
|
||||
use Aviat\AnimeClient\API\JsonAPI;
|
||||
use Aviat\AnimeClient\API\Kitsu\Transformer\OldMangaListTransformer;
|
||||
use Aviat\AnimeClient\API\Kitsu\Transformer\MangaListTransformer;
|
||||
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
||||
use Aviat\AnimeClient\Types\{
|
||||
FormItem,
|
||||
@ -30,29 +29,17 @@ class MangaListTransformerTest extends AnimeClientTestCase {
|
||||
protected $dir;
|
||||
protected $rawBefore;
|
||||
protected $beforeTransform;
|
||||
protected $afterTransform;
|
||||
protected $transformer;
|
||||
|
||||
public function setUp(): void {
|
||||
parent::setUp();
|
||||
|
||||
$kitsuModel = $this->container->get('kitsu-model');
|
||||
|
||||
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
||||
|
||||
// Prep for transform
|
||||
$rawBefore = Json::decodeFile("{$this->dir}/mangaListBeforeTransform.json");
|
||||
$included = JsonAPI::organizeIncludes($rawBefore['included']);
|
||||
$included = JsonAPI::inlineIncludedRelationships($included, 'manga');
|
||||
foreach($rawBefore['data'] as $i => &$item)
|
||||
{
|
||||
$item['included'] = $included;
|
||||
}
|
||||
|
||||
$this->beforeTransform = $rawBefore['data'];
|
||||
// $this->afterTransform = Json::decodeFile("{$this->dir}/mangaListAfterTransform.json");
|
||||
|
||||
$this->transformer = new OldMangaListTransformer();
|
||||
$raw = Json::decodeFile("{$this->dir}/mangaListBeforeTransform.json");
|
||||
$this->beforeTransform = $raw['data']['findProfileBySlug']['library']['all']['nodes'];
|
||||
$this->transformer = new MangaListTransformer();
|
||||
}
|
||||
|
||||
public function testTransform()
|
||||
|
@ -16,7 +16,6 @@
|
||||
|
||||
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
||||
|
||||
use Aviat\AnimeClient\API\JsonAPI;
|
||||
use Aviat\AnimeClient\API\Kitsu\Transformer\MangaTransformer;
|
||||
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
||||
use Aviat\Ion\Json;
|
||||
@ -25,26 +24,19 @@ class MangaTransformerTest extends AnimeClientTestCase {
|
||||
|
||||
protected $dir;
|
||||
protected $beforeTransform;
|
||||
protected $afterTransform;
|
||||
protected $transformer;
|
||||
|
||||
public function setUp(): void {
|
||||
parent::setUp();
|
||||
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
||||
|
||||
$data = Json::decodeFile("{$this->dir}/mangaBeforeTransform.json");
|
||||
$baseData = $data['data'][0]['attributes'];
|
||||
$baseData['included'] = $data['included'];
|
||||
$baseData['id'] = $data['data'][0]['id'];
|
||||
$this->beforeTransform = $baseData;
|
||||
$this->beforeTransform = Json::decodeFile("{$this->dir}/mangaBeforeTransform.json");
|
||||
|
||||
$this->transformer = new MangaTransformer();
|
||||
}
|
||||
|
||||
public function testTransform()
|
||||
{
|
||||
$this->markTestSkipped('Skip until fixed with GraphQL snapshot');
|
||||
|
||||
$actual = $this->transformer->transform($this->beforeTransform);
|
||||
$this->assertMatchesSnapshot($actual);
|
||||
}
|
||||
|
@ -1,45 +0,0 @@
|
||||
<?php return Aviat\AnimeClient\Types\AnimeListItem::__set_state(array(
|
||||
'id' => '15839442',
|
||||
'mal_id' => '33206',
|
||||
'episodes' =>
|
||||
array (
|
||||
'watched' => '-',
|
||||
'total' => '-',
|
||||
'length' => NULL,
|
||||
),
|
||||
'airing' =>
|
||||
array (
|
||||
'status' => 'Currently Airing',
|
||||
'started' => '2017-01-12',
|
||||
'ended' => NULL,
|
||||
),
|
||||
'anime' =>
|
||||
Aviat\AnimeClient\Types\Anime::__set_state(array(
|
||||
'age_rating' => NULL,
|
||||
'cover_image' => 'https://media.kitsu.io/anime/poster_images/12243/small.jpg?1481144116',
|
||||
'genres' =>
|
||||
array (
|
||||
0 => 'Comedy',
|
||||
1 => 'Fantasy',
|
||||
2 => 'Slice of Life',
|
||||
),
|
||||
'id' => '12243',
|
||||
'show_type' => 'TV',
|
||||
'slug' => 'kobayashi-san-chi-no-maid-dragon',
|
||||
'streaming_links' =>
|
||||
array (
|
||||
),
|
||||
'title' => 'Kobayashi-san Chi no Maid Dragon',
|
||||
'titles' =>
|
||||
array (
|
||||
0 => 'Miss Kobayashi\'s Dragon Maid',
|
||||
1 => '小林さんちのメイドラゴン',
|
||||
),
|
||||
)),
|
||||
'notes' => NULL,
|
||||
'private' => false,
|
||||
'rewatching' => false,
|
||||
'rewatched' => 0,
|
||||
'user_rating' => '-',
|
||||
'watching_status' => 'current',
|
||||
));
|
@ -1,28 +1,28 @@
|
||||
empty: false
|
||||
id: '15839442'
|
||||
mal_id: '33206'
|
||||
id: '435513'
|
||||
mal_id: '209'
|
||||
episodes:
|
||||
watched: '-'
|
||||
total: '-'
|
||||
length: null
|
||||
watched: 7
|
||||
total: 26
|
||||
length: 1500
|
||||
airing:
|
||||
status: 'Currently Airing'
|
||||
started: '2017-01-12'
|
||||
ended: null
|
||||
status: 'Finished Airing'
|
||||
started: '2003-09-01'
|
||||
ended: '2004-03-16'
|
||||
anime:
|
||||
empty: false
|
||||
age_rating: null
|
||||
cover_image: 'https://media.kitsu.io/anime/poster_images/12243/small.jpg?1481144116'
|
||||
genres: [Comedy, Fantasy, 'Slice of Life']
|
||||
id: '12243'
|
||||
age_rating: PG
|
||||
cover_image: 'https://media.kitsu.io/anime/poster_images/185/small.jpg?1597697520'
|
||||
genres: { }
|
||||
id: '185'
|
||||
show_type: TV
|
||||
slug: kobayashi-san-chi-no-maid-dragon
|
||||
streaming_links: { }
|
||||
title: 'Kobayashi-san Chi no Maid Dragon'
|
||||
titles: ['Miss Kobayashi''s Dragon Maid', 小林さんちのメイドラゴン]
|
||||
notes: null
|
||||
slug: r-o-d
|
||||
streaming_links: [{ meta: { name: Crunchyroll, link: true, image: streaming-logos/crunchyroll.svg }, link: 'http://www.crunchyroll.com/rod', subs: [en], dubs: [ja] }, { meta: { name: Hulu, link: true, image: streaming-logos/hulu.svg }, link: 'http://www.hulu.com/rod-the-tv', subs: [en], dubs: [ja] }]
|
||||
title: 'R.O.D the TV'
|
||||
titles: ['アール・オー・ディー ザ・ティーヴィー']
|
||||
notes: ''
|
||||
private: false
|
||||
rewatching: false
|
||||
rewatched: 0
|
||||
user_rating: '-'
|
||||
watching_status: current
|
||||
watching_status: CURRENT
|
||||
|
@ -1,15 +0,0 @@
|
||||
<?php return Aviat\AnimeClient\Types\FormItem::__set_state(array(
|
||||
'id' => 14047981,
|
||||
'anilist_item_id' => NULL,
|
||||
'mal_id' => NULL,
|
||||
'data' =>
|
||||
Aviat\AnimeClient\Types\FormItemData::__set_state(array(
|
||||
'notes' => 'Very formulaic.',
|
||||
'private' => false,
|
||||
'progress' => 38,
|
||||
'ratingTwenty' => 16,
|
||||
'reconsumeCount' => 0,
|
||||
'reconsuming' => false,
|
||||
'status' => 'current',
|
||||
)),
|
||||
));
|
@ -1,15 +0,0 @@
|
||||
<?php return Aviat\AnimeClient\Types\FormItem::__set_state(array(
|
||||
'id' => 14047981,
|
||||
'anilist_item_id' => NULL,
|
||||
'mal_id' => '12345',
|
||||
'data' =>
|
||||
Aviat\AnimeClient\Types\FormItemData::__set_state(array(
|
||||
'notes' => 'Very formulaic.',
|
||||
'private' => true,
|
||||
'progress' => 38,
|
||||
'ratingTwenty' => 16,
|
||||
'reconsumeCount' => 0,
|
||||
'reconsuming' => true,
|
||||
'status' => 'current',
|
||||
)),
|
||||
));
|
@ -1,14 +0,0 @@
|
||||
<?php return Aviat\AnimeClient\Types\FormItem::__set_state(array(
|
||||
'id' => 14047983,
|
||||
'anilist_item_id' => NULL,
|
||||
'mal_id' => '12347',
|
||||
'data' =>
|
||||
Aviat\AnimeClient\Types\FormItemData::__set_state(array(
|
||||
'notes' => '',
|
||||
'private' => true,
|
||||
'progress' => 12,
|
||||
'reconsumeCount' => 0,
|
||||
'reconsuming' => true,
|
||||
'status' => 'current',
|
||||
)),
|
||||
));
|
@ -1,315 +0,0 @@
|
||||
<?php return Aviat\AnimeClient\Types\AnimePage::__set_state(array(
|
||||
'characters' =>
|
||||
array (
|
||||
),
|
||||
'staff' =>
|
||||
array (
|
||||
),
|
||||
'age_rating' => 'R',
|
||||
'age_rating_guide' => 'Violence, Profanity',
|
||||
'cover_image' => 'https://media.kitsu.io/anime/poster_images/7442/small.jpg?1418580054',
|
||||
'episode_count' => 25,
|
||||
'episode_length' => 24,
|
||||
'genres' =>
|
||||
array (
|
||||
),
|
||||
'id' => 32344,
|
||||
'included' =>
|
||||
array (
|
||||
'categories' =>
|
||||
array (
|
||||
23 =>
|
||||
array (
|
||||
'name' => 'Super Power',
|
||||
'slug' => 'super-power',
|
||||
'description' => NULL,
|
||||
),
|
||||
11 =>
|
||||
array (
|
||||
'name' => 'Fantasy',
|
||||
'slug' => 'fantasy',
|
||||
'description' => '',
|
||||
),
|
||||
4 =>
|
||||
array (
|
||||
'name' => 'Drama',
|
||||
'slug' => 'drama',
|
||||
'description' => '',
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'name' => 'Action',
|
||||
'slug' => 'action',
|
||||
'description' => '',
|
||||
),
|
||||
),
|
||||
'mappings' =>
|
||||
array (
|
||||
5686 =>
|
||||
array (
|
||||
'externalSite' => 'myanimelist/anime',
|
||||
'externalId' => '16498',
|
||||
'relationships' =>
|
||||
array (
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/mappings/5686/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/mappings/5686/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
14153 =>
|
||||
array (
|
||||
'externalSite' => 'thetvdb/series',
|
||||
'externalId' => '267440',
|
||||
'relationships' =>
|
||||
array (
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/mappings/14153/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/mappings/14153/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
15073 =>
|
||||
array (
|
||||
'externalSite' => 'thetvdb/season',
|
||||
'externalId' => '514060',
|
||||
'relationships' =>
|
||||
array (
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/mappings/15073/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/mappings/15073/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'streamingLinks' =>
|
||||
array (
|
||||
103 =>
|
||||
array (
|
||||
'url' => 'http://www.crunchyroll.com/attack-on-titan',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
'relationships' =>
|
||||
array (
|
||||
'streamer' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/103/relationships/streamer',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/103/streamer',
|
||||
),
|
||||
),
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/103/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/103/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
102 =>
|
||||
array (
|
||||
'url' => 'http://www.hulu.com/attack-on-titan',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
'relationships' =>
|
||||
array (
|
||||
'streamer' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/102/relationships/streamer',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/102/streamer',
|
||||
),
|
||||
),
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/102/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/102/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
101 =>
|
||||
array (
|
||||
'url' => 'http://www.funimation.com/shows/attack-on-titan/videos/episodes',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
'relationships' =>
|
||||
array (
|
||||
'streamer' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/101/relationships/streamer',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/101/streamer',
|
||||
),
|
||||
),
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/101/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/101/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
100 =>
|
||||
array (
|
||||
'url' => 't',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
'relationships' =>
|
||||
array (
|
||||
'streamer' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/100/relationships/streamer',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/100/streamer',
|
||||
),
|
||||
),
|
||||
'media' =>
|
||||
array (
|
||||
'links' =>
|
||||
array (
|
||||
'self' => 'https://kitsu.io/api/edge/streaming-links/100/relationships/media',
|
||||
'related' => 'https://kitsu.io/api/edge/streaming-links/100/media',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'show_type' => 'TV',
|
||||
'slug' => 'attack-on-titan',
|
||||
'status' => 'Finished Airing',
|
||||
'streaming_links' =>
|
||||
array (
|
||||
0 =>
|
||||
array (
|
||||
'meta' =>
|
||||
array (
|
||||
'name' => 'Crunchyroll',
|
||||
'link' => true,
|
||||
'image' => 'streaming-logos/crunchyroll.svg',
|
||||
),
|
||||
'link' => 'http://www.crunchyroll.com/attack-on-titan',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
),
|
||||
1 =>
|
||||
array (
|
||||
'meta' =>
|
||||
array (
|
||||
'name' => 'Funimation',
|
||||
'link' => true,
|
||||
'image' => 'streaming-logos/funimation.svg',
|
||||
),
|
||||
'link' => 'http://www.funimation.com/shows/attack-on-titan/videos/episodes',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
),
|
||||
2 =>
|
||||
array (
|
||||
'meta' =>
|
||||
array (
|
||||
'name' => 'Hulu',
|
||||
'link' => true,
|
||||
'image' => 'streaming-logos/hulu.svg',
|
||||
),
|
||||
'link' => 'http://www.hulu.com/attack-on-titan',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
),
|
||||
3 =>
|
||||
array (
|
||||
'meta' =>
|
||||
array (
|
||||
'name' => 'Netflix',
|
||||
'link' => false,
|
||||
'image' => 'streaming-logos/netflix.svg',
|
||||
),
|
||||
'link' => 't',
|
||||
'subs' =>
|
||||
array (
|
||||
0 => 'en',
|
||||
),
|
||||
'dubs' =>
|
||||
array (
|
||||
0 => 'ja',
|
||||
),
|
||||
),
|
||||
),
|
||||
'synopsis' => 'Several hundred years ago, humans were nearly exterminated by titans. Titans are typically several stories tall, seem to have no intelligence, devour human beings and, worst of all, seem to do it for the pleasure rather than as a food source. A small percentage of humanity survived by enclosing themselves in a city protected by extremely high walls, even taller than the biggest of titans. Flash forward to the present and the city has not seen a titan in over 100 years. Teenage boy Eren and his foster sister Mikasa witness something horrific as the city walls are destroyed by a colossal titan that appears out of thin air. As the smaller titans flood the city, the two kids watch in horror as their mother is eaten alive. Eren vows that he will murder every single titan and take revenge for all of mankind.
|
||||
|
||||
(Source: ANN)',
|
||||
'title' => 'Attack on Titan',
|
||||
'titles' =>
|
||||
array (
|
||||
0 => 'Attack on Titan',
|
||||
1 => 'Shingeki no Kyojin',
|
||||
2 => '進撃の巨人',
|
||||
),
|
||||
'trailer_id' => 'n4Nj6Y_SNYI',
|
||||
'url' => 'https://kitsu.io/anime/attack-on-titan',
|
||||
));
|
File diff suppressed because one or more lines are too long
@ -1,60 +1,24 @@
|
||||
-
|
||||
empty: false
|
||||
id: '15084773'
|
||||
mal_id: '26769'
|
||||
chapters: { read: 67, total: '-' }
|
||||
id: '15288185'
|
||||
mal_id: '28091'
|
||||
chapters: { read: 94, total: '-' }
|
||||
volumes: { read: '-', total: '-' }
|
||||
manga: { empty: false, genres: [Comedy, Romance, School, 'Slice of Life', Thriller], id: '20286', image: 'https://media.kitsu.io/manga/poster_images/20286/small.jpg?1434293999', slug: bokura-wa-minna-kawaisou, title: 'Bokura wa Minna Kawaisou', titles: { }, type: Manga, url: 'https://kitsu.io/manga/bokura-wa-minna-kawaisou' }
|
||||
reading_status: current
|
||||
notes: ''
|
||||
rereading: false
|
||||
reread: 0
|
||||
user_rating: 9
|
||||
-
|
||||
empty: false
|
||||
id: '15085607'
|
||||
mal_id: '16'
|
||||
chapters: { read: 17, total: 120 }
|
||||
volumes: { read: '-', total: 14 }
|
||||
manga: { empty: false, genres: [Comedy, Ecchi, Harem, Romance, Sports], id: '47', image: 'https://media.kitsu.io/manga/poster_images/47/small.jpg?1434249493', slug: love-hina, title: 'Love Hina', titles: { }, type: Manga, url: 'https://kitsu.io/manga/love-hina' }
|
||||
reading_status: current
|
||||
notes: ''
|
||||
rereading: false
|
||||
reread: 0
|
||||
user_rating: 7
|
||||
-
|
||||
empty: false
|
||||
id: '15084529'
|
||||
mal_id: '35003'
|
||||
chapters: { read: 16, total: '-' }
|
||||
volumes: { read: '-', total: '-' }
|
||||
manga: { empty: false, genres: [Comedy, Ecchi, 'Gender Bender', Romance, School, Sports, Supernatural], id: '11777', image: 'https://media.kitsu.io/manga/poster_images/11777/small.jpg?1438784325', slug: yamada-kun-to-7-nin-no-majo, title: 'Yamada-kun to 7-nin no Majo', titles: ['Yamada-kun and the Seven Witches'], type: Manga, url: 'https://kitsu.io/manga/yamada-kun-to-7-nin-no-majo' }
|
||||
reading_status: current
|
||||
notes: ''
|
||||
rereading: false
|
||||
reread: 0
|
||||
user_rating: 9
|
||||
-
|
||||
empty: false
|
||||
id: '15312827'
|
||||
mal_id: '78523'
|
||||
chapters: { read: 68, total: '-' }
|
||||
volumes: { read: '-', total: '-' }
|
||||
manga: { empty: false, genres: [Romance, School, 'Slice of Life'], id: '27175', image: 'https://media.kitsu.io/manga/poster_images/27175/small.jpg?1464379411', slug: relife, title: ReLIFE, titles: { }, type: Manga, url: 'https://kitsu.io/manga/relife' }
|
||||
reading_status: current
|
||||
notes: ''
|
||||
rereading: false
|
||||
reread: 0
|
||||
user_rating: '-'
|
||||
-
|
||||
empty: false
|
||||
id: '15084769'
|
||||
mal_id: '60815'
|
||||
chapters: { read: 43, total: '-' }
|
||||
volumes: { read: '-', total: '-' }
|
||||
manga: { empty: false, genres: [Comedy, School, 'Slice of Life'], id: '25491', image: 'https://media.kitsu.io/manga/poster_images/25491/small.jpg?1434305043', slug: joshikausei, title: Joshikausei, titles: { }, type: Manga, url: 'https://kitsu.io/manga/joshikausei' }
|
||||
manga: { empty: false, genres: { }, id: '21733', image: 'https://media.kitsu.io/manga/poster_images/21733/small.jpg?1496845097', slug: tonari-no-seki-kun, title: 'Tonari no Seki-kun', titles: ['My Neighbour Seki', となりの関くん], type: Manga, url: 'https://kitsu.io/manga/tonari-no-seki-kun' }
|
||||
reading_status: current
|
||||
notes: ''
|
||||
rereading: false
|
||||
reread: 0
|
||||
user_rating: 8
|
||||
-
|
||||
empty: false
|
||||
id: '15084769'
|
||||
mal_id: '60815'
|
||||
chapters: { read: 87, total: '-' }
|
||||
volumes: { read: '-', total: '-' }
|
||||
manga: { empty: false, genres: { }, id: '25491', image: 'https://media.kitsu.io/manga/poster_images/25491/small.jpg?1499026452', slug: joshikausei, title: Joshikausei, titles: [女子かう生], type: Manga, url: 'https://kitsu.io/manga/joshikausei' }
|
||||
reading_status: current
|
||||
notes: 'Wordless, and it works.'
|
||||
rereading: false
|
||||
reread: 0
|
||||
user_rating: 8
|
||||
|
@ -1,86 +0,0 @@
|
||||
<?php return Aviat\AnimeClient\Types\MangaPage::__set_state(array(
|
||||
'characters' =>
|
||||
array (
|
||||
),
|
||||
'chapter_count' => '-',
|
||||
'cover_image' => 'https://media.kitsu.io/manga/poster_images/20286/small.jpg?1434293999',
|
||||
'genres' =>
|
||||
array (
|
||||
),
|
||||
'id' => '20286',
|
||||
'included' =>
|
||||
array (
|
||||
'genres' =>
|
||||
array (
|
||||
3 =>
|
||||
array (
|
||||
'attributes' =>
|
||||
array (
|
||||
'name' => 'Comedy',
|
||||
'slug' => 'comedy',
|
||||
'description' => NULL,
|
||||
),
|
||||
),
|
||||
24 =>
|
||||
array (
|
||||
'attributes' =>
|
||||
array (
|
||||
'name' => 'School',
|
||||
'slug' => 'school',
|
||||
'description' => NULL,
|
||||
),
|
||||
),
|
||||
16 =>
|
||||
array (
|
||||
'attributes' =>
|
||||
array (
|
||||
'name' => 'Slice of Life',
|
||||
'slug' => 'slice-of-life',
|
||||
'description' => '',
|
||||
),
|
||||
),
|
||||
14 =>
|
||||
array (
|
||||
'attributes' =>
|
||||
array (
|
||||
'name' => 'Romance',
|
||||
'slug' => 'romance',
|
||||
'description' => '',
|
||||
),
|
||||
),
|
||||
18 =>
|
||||
array (
|
||||
'attributes' =>
|
||||
array (
|
||||
'name' => 'Thriller',
|
||||
'slug' => 'thriller',
|
||||
'description' => NULL,
|
||||
),
|
||||
),
|
||||
),
|
||||
'mappings' =>
|
||||
array (
|
||||
48014 =>
|
||||
array (
|
||||
'attributes' =>
|
||||
array (
|
||||
'externalSite' => 'myanimelist/manga',
|
||||
'externalId' => '26769',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'manga_type' => 'manga',
|
||||
'staff' =>
|
||||
array (
|
||||
),
|
||||
'synopsis' => 'Usa, a high-school student aspiring to begin a bachelor lifestyle, moves into a new apartment only to discover that he not only shares a room with a perverted roommate that has an obsession for underaged girls, but also that another girl, Ritsu, a love-at-first-sight, is living in the same building as well!
|
||||
(Source: Kirei Cake)',
|
||||
'title' => 'Bokura wa Minna Kawaisou',
|
||||
'titles' =>
|
||||
array (
|
||||
0 => NULL,
|
||||
),
|
||||
'url' => 'https://kitsu.io/manga/bokura-wa-minna-kawaisou',
|
||||
'volume_count' => '-',
|
||||
));
|
@ -1,19 +1,32 @@
|
||||
empty: false
|
||||
characters: { }
|
||||
chapter_count: '-'
|
||||
age_rating: PG
|
||||
age_rating_guide: ''
|
||||
characters:
|
||||
main: { 40541: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/40541/original.jpg?1483096805', width: null } }, name: 'Kazunari Usa', slug: kazunari-usa }, 40540: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/40540/original.jpg?1483096805', width: null } }, name: 'Ritsu Kawai', slug: ritsu-kawai } }
|
||||
background: { 62591: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/62591/original.jpg?1485073100', width: null } }, name: Chinatsu, slug: chinatsu }, 72839: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/72839/original.jpg?1485079724', width: null } }, name: Hayashi, slug: hayashi-ec3a2705-5d5c-493c-b172-bbee2d04b5b9 }, 78362: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/78362/original.jpg?1485081676', width: null } }, name: Houjou, slug: houjou }, 90353: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/90353/original.jpg?1485086356', width: null } }, name: Kurokawa, slug: kurokawa-a493ddf6-0f02-4abf-8b18-ab6ae2198b6e }, 77996: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/77996/original.jpg?1485081552', width: null } }, name: Maemura, slug: maemura }, 55132: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/55132/original.jpg?1483096805', width: null } }, name: 'Mayumi Nishikino', slug: mayumi-nishikino }, 71479: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/71479/original.jpg?1485079211', width: null } }, name: 'Miharu Tsuneda', slug: miharu-tsuneda }, 55134: { image: { original: { height: null, name: original, url: '/images/original/missing.png?1483096805', width: null } }, name: 'Mother Usa', slug: mother-usa }, 55135: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/55135/original.jpg?1483096805', width: null } }, name: 'Sayaka Watanabe', slug: sayaka-watanabe }, 95032: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/95032/original.jpg?1485088329', width: null } }, name: Shirosaki, slug: shirosaki-2ed2e15c-9cee-4756-92f1-027c4820e224 }, 55131: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/55131/original.jpg?1483096805', width: null } }, name: 'Sumiko Kawai', slug: sumiko-kawai }, 74335: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/74335/original.jpg?1485080245', width: null } }, name: 'Tae Shinohara', slug: tae-shinohara }, 55133: { image: { original: { height: null, name: original, url: 'https://media.kitsu.io/characters/images/55133/original.jpg?1483096805', width: null } }, name: Tagami, slug: tagami }, 83463: { image: { original: { height: null, name: original, url: /images/original/missing.png, width: null } }, name: 'Yoko Mabuchi', slug: yoko-mabuchi } }
|
||||
chapter_count: 90
|
||||
cover_image: 'https://media.kitsu.io/manga/poster_images/20286/small.jpg?1434293999'
|
||||
genres: { }
|
||||
genres:
|
||||
- Comedy
|
||||
- Romance
|
||||
- 'School Life'
|
||||
- 'Slice of Life'
|
||||
links:
|
||||
Anilist: 'https://anilist.co/anime/56769/'
|
||||
Kitsu: 'https://kitsu.io/manga/bokura-wa-minna-kawaisou'
|
||||
MyAnimeList: 'https://myanimelist.net/manga/26769'
|
||||
id: '20286'
|
||||
included:
|
||||
genres: { 3: { attributes: { name: Comedy, slug: comedy, description: null } }, 24: { attributes: { name: School, slug: school, description: null } }, 16: { attributes: { name: 'Slice of Life', slug: slice-of-life, description: '' } }, 14: { attributes: { name: Romance, slug: romance, description: '' } }, 18: { attributes: { name: Thriller, slug: thriller, description: null } } }
|
||||
mappings: { 48014: { attributes: { externalSite: myanimelist/manga, externalId: '26769' } } }
|
||||
manga_type: manga
|
||||
staff: { }
|
||||
synopsis: |
|
||||
Usa, a high-school student aspiring to begin a bachelor lifestyle, moves into a new apartment only to discover that he not only shares a room with a perverted roommate that has an obsession for underaged girls, but also that another girl, Ritsu, a love-at-first-sight, is living in the same building as well!
|
||||
(Source: Kirei Cake)
|
||||
title: 'Bokura wa Minna Kawaisou'
|
||||
manga_type: MANGA
|
||||
status: Completed
|
||||
staff:
|
||||
'Story & Art': [{ id: '8712', slug: ruri-miyahara, name: 'Ruri Miyahara', image: { original: 'https://media.kitsu.io/people/images/8712/original.jpg?1533271952' } }]
|
||||
synopsis: "Usa, a high-school student aspiring to begin a bachelor lifestyle, moves into a new apartment only to discover that he not only shares a room with a perverted roommate that has an obsession for underaged girls, but also that another girl, Ritsu, a love-at-first-sight, is living in the same building as well!\r\n(Source: Kirei Cake)"
|
||||
title: 'Bokura wa Minna Kawai-sou'
|
||||
titles:
|
||||
- null
|
||||
1: 'The Kawai Complex Guide to Manors and Hostel'
|
||||
4: 僕らはみんな河合荘
|
||||
titles_more:
|
||||
- 'The Kawai Complex Guide to Manors and Hostel'
|
||||
- 僕らはみんな河合荘
|
||||
url: 'https://kitsu.io/manga/bokura-wa-minna-kawaisou'
|
||||
volume_count: '-'
|
||||
volume_count: 10
|
||||
|
@ -1,52 +0,0 @@
|
||||
{
|
||||
"title": "Attack on Titan",
|
||||
"titles": ["Attack on Titan", "Shingeki no Kyojin", "\u9032\u6483\u306e\u5de8\u4eba"],
|
||||
"status": "Finished Airing",
|
||||
"cover_image": "https:\/\/media.kitsu.io\/anime\/poster_images\/7442\/small.jpg?1418580054",
|
||||
"show_type": "TV",
|
||||
"episode_count": 25,
|
||||
"episode_length": 24,
|
||||
"synopsis": "Several hundred years ago, humans were nearly exterminated by titans. Titans are typically several stories tall, seem to have no intelligence, devour human beings and, worst of all, seem to do it for the pleasure rather than as a food source. A small percentage of humanity survived by enclosing themselves in a city protected by extremely high walls, even taller than the biggest of titans. Flash forward to the present and the city has not seen a titan in over 100 years. Teenage boy Eren and his foster sister Mikasa witness something horrific as the city walls are destroyed by a colossal titan that appears out of thin air. As the smaller titans flood the city, the two kids watch in horror as their mother is eaten alive. Eren vows that he will murder every single titan and take revenge for all of mankind.\n\n(Source: ANN)",
|
||||
"age_rating": "R",
|
||||
"age_rating_guide": "Violence, Profanity",
|
||||
"url": "https:\/\/kitsu.io\/anime\/attack-on-titan",
|
||||
"genres": ["Action", "Drama", "Fantasy", "Super Power"],
|
||||
"streaming_links": [{
|
||||
"meta": {
|
||||
"name": "Crunchyroll",
|
||||
"link": true,
|
||||
"image": "streaming-logos\/crunchyroll.svg"
|
||||
},
|
||||
"link": "http:\/\/www.crunchyroll.com\/attack-on-titan",
|
||||
"subs": ["en"],
|
||||
"dubs": ["ja"]
|
||||
}, {
|
||||
"meta": {
|
||||
"name": "Hulu",
|
||||
"link": true,
|
||||
"image": "streaming-logos\/hulu.svg"
|
||||
},
|
||||
"link": "http:\/\/www.hulu.com\/attack-on-titan",
|
||||
"subs": ["en"],
|
||||
"dubs": ["ja"]
|
||||
}, {
|
||||
"meta": {
|
||||
"name": "Funimation",
|
||||
"link": true,
|
||||
"image": "streaming-logos\/funimation.svg"
|
||||
},
|
||||
"link": "http:\/\/www.funimation.com\/shows\/attack-on-titan\/videos\/episodes",
|
||||
"subs": ["en"],
|
||||
"dubs": ["ja"]
|
||||
}, {
|
||||
"meta": {
|
||||
"name": "Netflix",
|
||||
"link": false,
|
||||
"image": "streaming-logos\/netflix.svg"
|
||||
},
|
||||
"link": "t",
|
||||
"subs": ["en"],
|
||||
"dubs": ["ja"]
|
||||
}],
|
||||
"slug": "attack-on-titan"
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,30 +0,0 @@
|
||||
{
|
||||
"id": "15839442",
|
||||
"mal_id": "33206",
|
||||
"episodes": {
|
||||
"watched": 0,
|
||||
"total": "-",
|
||||
"length": null
|
||||
},
|
||||
"airing": {
|
||||
"status": "Currently Airing",
|
||||
"started": "2017-01-12",
|
||||
"ended": null
|
||||
},
|
||||
"anime": {
|
||||
"age_rating": null,
|
||||
"title": "Kobayashi-san Chi no Maid Dragon",
|
||||
"titles": ["Kobayashi-san Chi no Maid Dragon", "Miss Kobayashi's Dragon Maid", "\u5c0f\u6797\u3055\u3093\u3061\u306e\u30e1\u30a4\u30c9\u30e9\u30b4\u30f3"],
|
||||
"slug": "kobayashi-san-chi-no-maid-dragon",
|
||||
"type": "TV",
|
||||
"image": "https:\/\/media.kitsu.io\/anime\/poster_images\/12243\/small.jpg?1481144116",
|
||||
"genres": ["Comedy", "Fantasy", "Slice of Life"],
|
||||
"streaming_links": []
|
||||
},
|
||||
"watching_status": "current",
|
||||
"notes": null,
|
||||
"rewatching": false,
|
||||
"rewatched": 0,
|
||||
"user_rating": "-",
|
||||
"private": false
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +0,0 @@
|
||||
{
|
||||
"title": "Bokura wa Minna Kawaisou",
|
||||
"en_title": null,
|
||||
"jp_title": "Bokura wa Minna Kawaisou",
|
||||
"cover_image": "https:\/\/media.kitsu.io\/manga\/poster_images\/20286\/small.jpg?1434293999",
|
||||
"manga_type": "manga",
|
||||
"chapter_count": "-",
|
||||
"volume_count": "-",
|
||||
"synopsis": "Usa, a high-school student aspiring to begin a bachelor lifestyle, moves into a new apartment only to discover that he not only shares a room with a perverted roommate that has an obsession for underaged girls, but also that another girl, Ritsu, a love-at-first-sight, is living in the same building as well!\n(Source: Kirei Cake)",
|
||||
"url": "https:\/\/kitsu.io\/manga\/bokura-wa-minna-kawaisou",
|
||||
"genres": ["Comedy","Romance","School","Slice of Life","Thriller"]
|
||||
}
|
@ -1,197 +1,465 @@
|
||||
{
|
||||
"data": [{
|
||||
"data": {
|
||||
"findMangaBySlug": {
|
||||
"id": "20286",
|
||||
"type": "manga",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286"
|
||||
},
|
||||
"attributes": {
|
||||
"slug": "bokura-wa-minna-kawaisou",
|
||||
"synopsis": "Usa, a high-school student aspiring to begin a bachelor lifestyle, moves into a new apartment only to discover that he not only shares a room with a perverted roommate that has an obsession for underaged girls, but also that another girl, Ritsu, a love-at-first-sight, is living in the same building as well!\n(Source: Kirei Cake)",
|
||||
"coverImageTopOffset": 40,
|
||||
"titles": {
|
||||
"en_us": null,
|
||||
"en_jp": "Bokura wa Minna Kawaisou"
|
||||
},
|
||||
"canonicalTitle": "Bokura wa Minna Kawaisou",
|
||||
"abbreviatedTitles": null,
|
||||
"averageRating": 4.12281805954249,
|
||||
"ratingFrequencies": {
|
||||
"0.5": "0",
|
||||
"1.0": "1",
|
||||
"1.5": "0",
|
||||
"2.0": "1",
|
||||
"2.5": "2",
|
||||
"3.0": "6",
|
||||
"3.5": "21",
|
||||
"4.0": "38",
|
||||
"4.5": "35",
|
||||
"5.0": "43",
|
||||
"nil": "16"
|
||||
},
|
||||
"favoritesCount": 0,
|
||||
"startDate": "2010-01-01",
|
||||
"endDate": null,
|
||||
"popularityRank": 262,
|
||||
"ratingRank": 127,
|
||||
"ageRating": "PG",
|
||||
"ageRatingGuide": null,
|
||||
"ageRatingGuide": "",
|
||||
"posterImage": {
|
||||
"tiny": "https://media.kitsu.io/manga/poster_images/20286/tiny.jpg?1434293999",
|
||||
"small": "https://media.kitsu.io/manga/poster_images/20286/small.jpg?1434293999",
|
||||
"medium": "https://media.kitsu.io/manga/poster_images/20286/medium.jpg?1434293999",
|
||||
"large": "https://media.kitsu.io/manga/poster_images/20286/large.jpg?1434293999",
|
||||
"original": "https://media.kitsu.io/manga/poster_images/20286/original.jpg?1434293999"
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/manga/poster_images/20286/original.jpg?1434293999",
|
||||
"width": null
|
||||
},
|
||||
"coverImage": {
|
||||
"small": "https://media.kitsu.io/manga/cover_images/20286/small.jpg?1430793688",
|
||||
"large": "https://media.kitsu.io/manga/cover_images/20286/large.jpg?1430793688",
|
||||
"original": "https://media.kitsu.io/manga/cover_images/20286/original.jpg?1430793688"
|
||||
"views": [
|
||||
{
|
||||
"height": null,
|
||||
"name": "tiny",
|
||||
"url": "https://media.kitsu.io/manga/poster_images/20286/tiny.jpg?1434293999",
|
||||
"width": null
|
||||
},
|
||||
"subtype": "manga",
|
||||
"chapterCount": null,
|
||||
"volumeCount": 0,
|
||||
"serialization": "Young King Ours",
|
||||
"mangaType": "manga"
|
||||
{
|
||||
"height": null,
|
||||
"name": "small",
|
||||
"url": "https://media.kitsu.io/manga/poster_images/20286/small.jpg?1434293999",
|
||||
"width": null
|
||||
},
|
||||
"relationships": {
|
||||
"genres": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/genres",
|
||||
"related": "https://kitsu.io/api/edge/manga/20286/genres"
|
||||
{
|
||||
"height": null,
|
||||
"name": "medium",
|
||||
"url": "https://media.kitsu.io/manga/poster_images/20286/medium.jpg?1434293999",
|
||||
"width": null
|
||||
},
|
||||
"data": [{
|
||||
"type": "genres",
|
||||
"id": "3"
|
||||
}, {
|
||||
"type": "genres",
|
||||
"id": "24"
|
||||
}, {
|
||||
"type": "genres",
|
||||
"id": "16"
|
||||
}, {
|
||||
"type": "genres",
|
||||
"id": "14"
|
||||
}, {
|
||||
"type": "genres",
|
||||
"id": "18"
|
||||
}]
|
||||
{
|
||||
"height": null,
|
||||
"name": "large",
|
||||
"url": "https://media.kitsu.io/manga/poster_images/20286/large.jpg?1434293999",
|
||||
"width": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"castings": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/castings",
|
||||
"related": "https://kitsu.io/api/edge/manga/20286/castings"
|
||||
"categories": {
|
||||
"nodes": [
|
||||
{
|
||||
"title": {
|
||||
"en": "Comedy"
|
||||
}
|
||||
},
|
||||
"installments": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/installments",
|
||||
"related": "https://kitsu.io/api/edge/manga/20286/installments"
|
||||
{
|
||||
"title": {
|
||||
"en": "School Life"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"en": "Slice of Life"
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": {
|
||||
"en": "Romance"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"chapterCount": 90,
|
||||
"volumeCount": 10,
|
||||
"characters": {
|
||||
"nodes": [
|
||||
{
|
||||
"character": {
|
||||
"id": "83463",
|
||||
"names": {
|
||||
"canonical": "Yoko Mabuchi",
|
||||
"alternatives": [
|
||||
"Yoko-chan"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "/images/original/missing.png",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "yoko-mabuchi"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "40540",
|
||||
"names": {
|
||||
"canonical": "Ritsu Kawai",
|
||||
"alternatives": [
|
||||
"Ricchan"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/40540/original.jpg?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "ritsu-kawai"
|
||||
},
|
||||
"role": "MAIN"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "40541",
|
||||
"names": {
|
||||
"canonical": "Kazunari Usa",
|
||||
"alternatives": [
|
||||
"Oddball handler"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/40541/original.jpg?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "kazunari-usa"
|
||||
},
|
||||
"role": "MAIN"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "62591",
|
||||
"names": {
|
||||
"canonical": "Chinatsu",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/62591/original.jpg?1485073100",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "chinatsu"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "72839",
|
||||
"names": {
|
||||
"canonical": "Hayashi",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/72839/original.jpg?1485079724",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "hayashi-ec3a2705-5d5c-493c-b172-bbee2d04b5b9"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "78362",
|
||||
"names": {
|
||||
"canonical": "Houjou",
|
||||
"alternatives": [
|
||||
"Yamamoto"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/78362/original.jpg?1485081676",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "houjou"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "55131",
|
||||
"names": {
|
||||
"canonical": "Sumiko Kawai",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/55131/original.jpg?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "sumiko-kawai"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "90353",
|
||||
"names": {
|
||||
"canonical": "Kurokawa",
|
||||
"alternatives": [
|
||||
"Saionji"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/90353/original.jpg?1485086356",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "kurokawa-a493ddf6-0f02-4abf-8b18-ab6ae2198b6e"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "77996",
|
||||
"names": {
|
||||
"canonical": "Maemura",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/77996/original.jpg?1485081552",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "maemura"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "55132",
|
||||
"names": {
|
||||
"canonical": "Mayumi Nishikino",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/55132/original.jpg?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "mayumi-nishikino"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "74335",
|
||||
"names": {
|
||||
"canonical": "Tae Shinohara",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/74335/original.jpg?1485080245",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "tae-shinohara"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "95032",
|
||||
"names": {
|
||||
"canonical": "Shirosaki",
|
||||
"alternatives": [
|
||||
"Shiro"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/95032/original.jpg?1485088329",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "shirosaki-2ed2e15c-9cee-4756-92f1-027c4820e224"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "55133",
|
||||
"names": {
|
||||
"canonical": "Tagami",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/55133/original.jpg?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "tagami"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "71479",
|
||||
"names": {
|
||||
"canonical": "Miharu Tsuneda",
|
||||
"alternatives": [
|
||||
"Tsuneko"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/71479/original.jpg?1485079211",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "miharu-tsuneda"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "55134",
|
||||
"names": {
|
||||
"canonical": "Mother Usa",
|
||||
"alternatives": []
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "/images/original/missing.png?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "mother-usa"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
},
|
||||
{
|
||||
"character": {
|
||||
"id": "55135",
|
||||
"names": {
|
||||
"canonical": "Sayaka Watanabe",
|
||||
"alternatives": [
|
||||
"Nabe"
|
||||
]
|
||||
},
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/characters/images/55135/original.jpg?1483096805",
|
||||
"width": null
|
||||
}
|
||||
},
|
||||
"slug": "sayaka-watanabe"
|
||||
},
|
||||
"role": "BACKGROUND"
|
||||
}
|
||||
],
|
||||
"pageInfo": {
|
||||
"endCursor": "MTY",
|
||||
"hasNextPage": false,
|
||||
"hasPreviousPage": false,
|
||||
"startCursor": "MQ"
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"en": "Usa, a high-school student aspiring to begin a bachelor lifestyle, moves into a new apartment only to discover that he not only shares a room with a perverted roommate that has an obsession for underaged girls, but also that another girl, Ritsu, a love-at-first-sight, is living in the same building as well!\r\n(Source: Kirei Cake)"
|
||||
},
|
||||
"startDate": "2010-04-30",
|
||||
"endDate": "2017-12-28",
|
||||
"mappings": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/mappings",
|
||||
"related": "https://kitsu.io/api/edge/manga/20286/mappings"
|
||||
"nodes": [
|
||||
{
|
||||
"externalId": "56769",
|
||||
"externalSite": "ANILIST_MANGA"
|
||||
},
|
||||
"data": [{
|
||||
"type": "mappings",
|
||||
"id": "48014"
|
||||
}]
|
||||
{
|
||||
"externalId": "26769",
|
||||
"externalSite": "MYANIMELIST_MANGA"
|
||||
}
|
||||
]
|
||||
},
|
||||
"reviews": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/reviews",
|
||||
"related": "https://kitsu.io/api/edge/manga/20286/reviews"
|
||||
"sfw": true,
|
||||
"slug": "bokura-wa-minna-kawaisou",
|
||||
"staff": {
|
||||
"nodes": [
|
||||
{
|
||||
"person": {
|
||||
"id": "8712",
|
||||
"birthday": null,
|
||||
"image": {
|
||||
"original": {
|
||||
"height": null,
|
||||
"name": "original",
|
||||
"url": "https://media.kitsu.io/people/images/8712/original.jpg?1533271952",
|
||||
"width": null
|
||||
},
|
||||
"views": []
|
||||
},
|
||||
"names": {
|
||||
"alternatives": [],
|
||||
"canonical": "en",
|
||||
"localized": {
|
||||
"en": "Ruri Miyahara",
|
||||
"ja_jp": "宮原 るり"
|
||||
}
|
||||
},
|
||||
"mediaRelationships": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/media-relationships",
|
||||
"related": "https://kitsu.io/api/edge/manga/20286/media-relationships"
|
||||
}
|
||||
}
|
||||
}
|
||||
}],
|
||||
"included": [{
|
||||
"id": "3",
|
||||
"type": "genres",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/genres/3"
|
||||
"slug": "ruri-miyahara"
|
||||
},
|
||||
"attributes": {
|
||||
"name": "Comedy",
|
||||
"slug": "comedy",
|
||||
"description": null
|
||||
"role": "Story \u0026 Art"
|
||||
}
|
||||
],
|
||||
"pageInfo": {
|
||||
"endCursor": "MQ",
|
||||
"hasNextPage": false,
|
||||
"hasPreviousPage": false,
|
||||
"startCursor": "MQ"
|
||||
}
|
||||
}, {
|
||||
"id": "24",
|
||||
"type": "genres",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/genres/24"
|
||||
},
|
||||
"attributes": {
|
||||
"name": "School",
|
||||
"slug": "school",
|
||||
"description": null
|
||||
}
|
||||
}, {
|
||||
"id": "16",
|
||||
"type": "genres",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/genres/16"
|
||||
},
|
||||
"attributes": {
|
||||
"name": "Slice of Life",
|
||||
"slug": "slice-of-life",
|
||||
"description": ""
|
||||
}
|
||||
}, {
|
||||
"id": "14",
|
||||
"type": "genres",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/genres/14"
|
||||
},
|
||||
"attributes": {
|
||||
"name": "Romance",
|
||||
"slug": "romance",
|
||||
"description": ""
|
||||
}
|
||||
}, {
|
||||
"id": "18",
|
||||
"type": "genres",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/genres/18"
|
||||
},
|
||||
"attributes": {
|
||||
"name": "Thriller",
|
||||
"slug": "thriller",
|
||||
"description": null
|
||||
}
|
||||
}, {
|
||||
"id": "48014",
|
||||
"type": "mappings",
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/mappings/48014"
|
||||
},
|
||||
"attributes": {
|
||||
"externalSite": "myanimelist/manga",
|
||||
"externalId": "26769"
|
||||
},
|
||||
"relationships": {
|
||||
"media": {
|
||||
"links": {
|
||||
"self": "https://kitsu.io/api/edge/mappings/48014/relationships/media",
|
||||
"related": "https://kitsu.io/api/edge/mappings/48014/media"
|
||||
"status": "FINISHED",
|
||||
"subtype": "MANGA",
|
||||
"titles": {
|
||||
"canonical": "Bokura wa Minna Kawai-sou",
|
||||
"canonicalLocale": "en_jp",
|
||||
"localized": {
|
||||
"en": "The Kawai Complex Guide to Manors and Hostel",
|
||||
"en_jp": "Bokura wa Minna Kawai-sou",
|
||||
"en_us": "The Kawai Complex Guide to Manors and Hostel",
|
||||
"ja_jp": "僕らはみんな河合荘"
|
||||
}
|
||||
}
|
||||
}
|
||||
}],
|
||||
"meta": {
|
||||
"count": 1
|
||||
},
|
||||
"links": {
|
||||
"first": "https://kitsu.io/api/edge/manga?filter%5Bslug%5D=bokura-wa-minna-kawaisou&include=genres%2Cmappings&page%5Blimit%5D=10&page%5Boffset%5D=0",
|
||||
"last": "https://kitsu.io/api/edge/manga?filter%5Bslug%5D=bokura-wa-minna-kawaisou&include=genres%2Cmappings&page%5Blimit%5D=10&page%5Boffset%5D=0"
|
||||
}
|
||||
}
|
@ -1,126 +0,0 @@
|
||||
[{
|
||||
"id": "15084773",
|
||||
"mal_id": "26769",
|
||||
"chapters": {
|
||||
"read": 67,
|
||||
"total": "-"
|
||||
},
|
||||
"volumes": {
|
||||
"read": "-",
|
||||
"total": "-"
|
||||
},
|
||||
"manga": {
|
||||
"titles": ["Bokura wa Minna Kawaisou"],
|
||||
"alternate_title": null,
|
||||
"slug": "bokura-wa-minna-kawaisou",
|
||||
"url": "https:\/\/kitsu.io\/manga\/bokura-wa-minna-kawaisou",
|
||||
"type": "manga",
|
||||
"image": "https:\/\/media.kitsu.io\/manga\/poster_images\/20286\/small.jpg?1434293999",
|
||||
"genres": ["Comedy", "Romance", "School", "Slice of Life", "Thriller"]
|
||||
},
|
||||
"reading_status": "current",
|
||||
"notes": "",
|
||||
"rereading": false,
|
||||
"reread": 0,
|
||||
"user_rating": 9
|
||||
}, {
|
||||
"id": "15085607",
|
||||
"mal_id": "16",
|
||||
"chapters": {
|
||||
"read": 17,
|
||||
"total": 120
|
||||
},
|
||||
"volumes": {
|
||||
"read": "-",
|
||||
"total": 14
|
||||
},
|
||||
"manga": {
|
||||
"titles": ["Love Hina"],
|
||||
"alternate_title": null,
|
||||
"slug": "love-hina",
|
||||
"url": "https:\/\/kitsu.io\/manga\/love-hina",
|
||||
"type": "manga",
|
||||
"image": "https:\/\/media.kitsu.io\/manga\/poster_images\/47\/small.jpg?1434249493",
|
||||
"genres": ["Comedy", "Ecchi", "Harem", "Romance", "Sports"]
|
||||
},
|
||||
"reading_status": "current",
|
||||
"notes": "",
|
||||
"rereading": false,
|
||||
"reread": 0,
|
||||
"user_rating": 7
|
||||
}, {
|
||||
"id": "15084529",
|
||||
"mal_id": "35003",
|
||||
"chapters": {
|
||||
"read": 16,
|
||||
"total": "-"
|
||||
},
|
||||
"volumes": {
|
||||
"read": "-",
|
||||
"total": "-"
|
||||
},
|
||||
"manga": {
|
||||
"titles": ["Yamada-kun to 7-nin no Majo", "Yamada-kun and the Seven Witches"],
|
||||
"alternate_title": null,
|
||||
"slug": "yamada-kun-to-7-nin-no-majo",
|
||||
"url": "https:\/\/kitsu.io\/manga\/yamada-kun-to-7-nin-no-majo",
|
||||
"type": "manga",
|
||||
"image": "https:\/\/media.kitsu.io\/manga\/poster_images\/11777\/small.jpg?1438784325",
|
||||
"genres": ["Comedy", "Ecchi", "Gender Bender", "Romance", "School", "Sports", "Supernatural"]
|
||||
},
|
||||
"reading_status": "current",
|
||||
"notes": "",
|
||||
"rereading": false,
|
||||
"reread": 0,
|
||||
"user_rating": 9
|
||||
}, {
|
||||
"id": "15312827",
|
||||
"mal_id": "78523",
|
||||
"chapters": {
|
||||
"read": 68,
|
||||
"total": "-"
|
||||
},
|
||||
"volumes": {
|
||||
"read": "-",
|
||||
"total": "-"
|
||||
},
|
||||
"manga": {
|
||||
"titles": ["ReLIFE"],
|
||||
"alternate_title": null,
|
||||
"slug": "relife",
|
||||
"url": "https:\/\/kitsu.io\/manga\/relife",
|
||||
"type": "manga",
|
||||
"image": "https:\/\/media.kitsu.io\/manga\/poster_images\/27175\/small.jpg?1464379411",
|
||||
"genres": ["Romance", "School", "Slice of Life"]
|
||||
},
|
||||
"reading_status": "current",
|
||||
"notes": "",
|
||||
"rereading": false,
|
||||
"reread": 0,
|
||||
"user_rating": "-"
|
||||
}, {
|
||||
"id": "15084769",
|
||||
"mal_id": "60815",
|
||||
"chapters": {
|
||||
"read": 43,
|
||||
"total": "-"
|
||||
},
|
||||
"volumes": {
|
||||
"read": "-",
|
||||
"total": "-"
|
||||
},
|
||||
"manga": {
|
||||
"titles": ["Joshikausei"],
|
||||
"alternate_title": null,
|
||||
"slug": "joshikausei",
|
||||
"url": "https:\/\/kitsu.io\/manga\/joshikausei",
|
||||
"type": "manga",
|
||||
"image": "https:\/\/media.kitsu.io\/manga\/poster_images\/25491\/small.jpg?1434305043",
|
||||
"genres": ["Comedy", "School", "Slice of Life"]
|
||||
},
|
||||
"reading_status": "current",
|
||||
"notes": "",
|
||||
"rereading": false,
|
||||
"reread": 0,
|
||||
"user_rating": 8
|
||||
}]
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user