More GraphQL conversion, test updates, see #33
This commit is contained in:
parent
470d25f269
commit
87d15024bb
@ -222,40 +222,6 @@ trait AnimeTrait {
|
|||||||
return $output;
|
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
|
* Get the full anime list in paginated form
|
||||||
*
|
*
|
||||||
|
@ -242,32 +242,4 @@ trait MangaTrait {
|
|||||||
|
|
||||||
return $this->requestBuilder->setUpRequest('GET', 'library-entries', ['query' => $options]);
|
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
|
public function getKitsuIdFromMALId(string $malId, string $type='anime'): ?string
|
||||||
{
|
{
|
||||||
$options = [
|
$raw = $this->requestBuilder->runQuery('GetIdByMapping', [
|
||||||
'query' => [
|
'id' => $malId,
|
||||||
'filter' => [
|
'site' => strtoupper("MYANIMELIST_{$type}"),
|
||||||
'external_site' => "myanimelist/{$type}",
|
]);
|
||||||
'external_id' => $malId
|
|
||||||
],
|
|
||||||
'fields' => [
|
|
||||||
'media' => 'id,slug'
|
|
||||||
],
|
|
||||||
'include' => 'item'
|
|
||||||
]
|
|
||||||
];
|
|
||||||
|
|
||||||
$raw = $this->requestBuilder->getRequest('mappings', $options);
|
return $raw['data']['lookupMapping']['id'] ?? NULL;
|
||||||
|
|
||||||
if ( ! array_key_exists('included', $raw))
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $raw['included'][0]['id'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
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;
|
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\AnimeClient\Tests\AnimeClientTestCase;
|
||||||
use Aviat\Ion\Friend;
|
|
||||||
use Aviat\Ion\Json;
|
use Aviat\Ion\Json;
|
||||||
|
|
||||||
class AnimeListTransformerTest extends AnimeClientTestCase {
|
class AnimeListTransformerTest extends AnimeClientTestCase {
|
||||||
@ -31,9 +30,10 @@ class AnimeListTransformerTest extends AnimeClientTestCase {
|
|||||||
parent::setUp();
|
parent::setUp();
|
||||||
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
$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()
|
public function testTransform()
|
||||||
|
@ -24,7 +24,6 @@ class AnimeTransformerTest extends AnimeClientTestCase {
|
|||||||
|
|
||||||
protected $dir;
|
protected $dir;
|
||||||
protected $beforeTransform;
|
protected $beforeTransform;
|
||||||
protected $afterTransform;
|
|
||||||
protected $transformer;
|
protected $transformer;
|
||||||
|
|
||||||
public function setUp(): void {
|
public function setUp(): void {
|
||||||
@ -38,8 +37,6 @@ class AnimeTransformerTest extends AnimeClientTestCase {
|
|||||||
|
|
||||||
public function testTransform()
|
public function testTransform()
|
||||||
{
|
{
|
||||||
$this->markTestSkipped('Skip until fixed with GraphQL snapshot');
|
|
||||||
|
|
||||||
$actual = $this->transformer->transform($this->beforeTransform);
|
$actual = $this->transformer->transform($this->beforeTransform);
|
||||||
$this->assertMatchesSnapshot($actual);
|
$this->assertMatchesSnapshot($actual);
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,7 @@
|
|||||||
|
|
||||||
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
||||||
|
|
||||||
use Aviat\AnimeClient\API\JsonAPI;
|
use Aviat\AnimeClient\API\Kitsu\Transformer\MangaListTransformer;
|
||||||
use Aviat\AnimeClient\API\Kitsu\Transformer\OldMangaListTransformer;
|
|
||||||
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
||||||
use Aviat\AnimeClient\Types\{
|
use Aviat\AnimeClient\Types\{
|
||||||
FormItem,
|
FormItem,
|
||||||
@ -30,29 +29,17 @@ class MangaListTransformerTest extends AnimeClientTestCase {
|
|||||||
protected $dir;
|
protected $dir;
|
||||||
protected $rawBefore;
|
protected $rawBefore;
|
||||||
protected $beforeTransform;
|
protected $beforeTransform;
|
||||||
protected $afterTransform;
|
|
||||||
protected $transformer;
|
protected $transformer;
|
||||||
|
|
||||||
public function setUp(): void {
|
public function setUp(): void {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
|
|
||||||
$kitsuModel = $this->container->get('kitsu-model');
|
|
||||||
|
|
||||||
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
||||||
|
|
||||||
// Prep for transform
|
// Prep for transform
|
||||||
$rawBefore = Json::decodeFile("{$this->dir}/mangaListBeforeTransform.json");
|
$raw = Json::decodeFile("{$this->dir}/mangaListBeforeTransform.json");
|
||||||
$included = JsonAPI::organizeIncludes($rawBefore['included']);
|
$this->beforeTransform = $raw['data']['findProfileBySlug']['library']['all']['nodes'];
|
||||||
$included = JsonAPI::inlineIncludedRelationships($included, 'manga');
|
$this->transformer = new MangaListTransformer();
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testTransform()
|
public function testTransform()
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
namespace Aviat\AnimeClient\Tests\API\Kitsu\Transformer;
|
||||||
|
|
||||||
use Aviat\AnimeClient\API\JsonAPI;
|
|
||||||
use Aviat\AnimeClient\API\Kitsu\Transformer\MangaTransformer;
|
use Aviat\AnimeClient\API\Kitsu\Transformer\MangaTransformer;
|
||||||
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
use Aviat\AnimeClient\Tests\AnimeClientTestCase;
|
||||||
use Aviat\Ion\Json;
|
use Aviat\Ion\Json;
|
||||||
@ -25,26 +24,19 @@ class MangaTransformerTest extends AnimeClientTestCase {
|
|||||||
|
|
||||||
protected $dir;
|
protected $dir;
|
||||||
protected $beforeTransform;
|
protected $beforeTransform;
|
||||||
protected $afterTransform;
|
|
||||||
protected $transformer;
|
protected $transformer;
|
||||||
|
|
||||||
public function setUp(): void {
|
public function setUp(): void {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
$this->dir = AnimeClientTestCase::TEST_DATA_DIR . '/Kitsu';
|
||||||
|
|
||||||
$data = Json::decodeFile("{$this->dir}/mangaBeforeTransform.json");
|
$this->beforeTransform = 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->transformer = new MangaTransformer();
|
$this->transformer = new MangaTransformer();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testTransform()
|
public function testTransform()
|
||||||
{
|
{
|
||||||
$this->markTestSkipped('Skip until fixed with GraphQL snapshot');
|
|
||||||
|
|
||||||
$actual = $this->transformer->transform($this->beforeTransform);
|
$actual = $this->transformer->transform($this->beforeTransform);
|
||||||
$this->assertMatchesSnapshot($actual);
|
$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
|
empty: false
|
||||||
id: '15839442'
|
id: '435513'
|
||||||
mal_id: '33206'
|
mal_id: '209'
|
||||||
episodes:
|
episodes:
|
||||||
watched: '-'
|
watched: 7
|
||||||
total: '-'
|
total: 26
|
||||||
length: null
|
length: 1500
|
||||||
airing:
|
airing:
|
||||||
status: 'Currently Airing'
|
status: 'Finished Airing'
|
||||||
started: '2017-01-12'
|
started: '2003-09-01'
|
||||||
ended: null
|
ended: '2004-03-16'
|
||||||
anime:
|
anime:
|
||||||
empty: false
|
empty: false
|
||||||
age_rating: null
|
age_rating: PG
|
||||||
cover_image: 'https://media.kitsu.io/anime/poster_images/12243/small.jpg?1481144116'
|
cover_image: 'https://media.kitsu.io/anime/poster_images/185/small.jpg?1597697520'
|
||||||
genres: [Comedy, Fantasy, 'Slice of Life']
|
genres: { }
|
||||||
id: '12243'
|
id: '185'
|
||||||
show_type: TV
|
show_type: TV
|
||||||
slug: kobayashi-san-chi-no-maid-dragon
|
slug: r-o-d
|
||||||
streaming_links: { }
|
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: 'Kobayashi-san Chi no Maid Dragon'
|
title: 'R.O.D the TV'
|
||||||
titles: ['Miss Kobayashi''s Dragon Maid', 小林さんちのメイドラゴン]
|
titles: ['アール・オー・ディー ザ・ティーヴィー']
|
||||||
notes: null
|
notes: ''
|
||||||
private: false
|
private: false
|
||||||
rewatching: false
|
rewatching: false
|
||||||
rewatched: 0
|
rewatched: 0
|
||||||
user_rating: '-'
|
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
|
empty: false
|
||||||
id: '15084773'
|
id: '15288185'
|
||||||
mal_id: '26769'
|
mal_id: '28091'
|
||||||
chapters: { read: 67, total: '-' }
|
chapters: { read: 94, total: '-' }
|
||||||
volumes: { read: '-', 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' }
|
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: 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' }
|
|
||||||
reading_status: current
|
reading_status: current
|
||||||
notes: ''
|
notes: ''
|
||||||
rereading: false
|
rereading: false
|
||||||
reread: 0
|
reread: 0
|
||||||
user_rating: 8
|
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
|
empty: false
|
||||||
characters: { }
|
age_rating: PG
|
||||||
chapter_count: '-'
|
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'
|
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'
|
id: '20286'
|
||||||
included:
|
manga_type: MANGA
|
||||||
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 } } }
|
status: Completed
|
||||||
mappings: { 48014: { attributes: { externalSite: myanimelist/manga, externalId: '26769' } } }
|
staff:
|
||||||
manga_type: manga
|
'Story & Art': [{ id: '8712', slug: ruri-miyahara, name: 'Ruri Miyahara', image: { original: 'https://media.kitsu.io/people/images/8712/original.jpg?1533271952' } }]
|
||||||
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!\r\n(Source: Kirei Cake)"
|
||||||
synopsis: |
|
title: 'Bokura wa Minna Kawai-sou'
|
||||||
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:
|
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'
|
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": {
|
||||||
"id": "20286",
|
"findMangaBySlug": {
|
||||||
"type": "manga",
|
"id": "20286",
|
||||||
"links": {
|
"ageRating": "PG",
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286"
|
"ageRatingGuide": "",
|
||||||
|
"posterImage": {
|
||||||
|
"original": {
|
||||||
|
"height": null,
|
||||||
|
"name": "original",
|
||||||
|
"url": "https://media.kitsu.io/manga/poster_images/20286/original.jpg?1434293999",
|
||||||
|
"width": null
|
||||||
},
|
},
|
||||||
"attributes": {
|
"views": [
|
||||||
"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)",
|
"height": null,
|
||||||
"coverImageTopOffset": 40,
|
"name": "tiny",
|
||||||
"titles": {
|
"url": "https://media.kitsu.io/manga/poster_images/20286/tiny.jpg?1434293999",
|
||||||
"en_us": null,
|
"width": null
|
||||||
"en_jp": "Bokura wa Minna Kawaisou"
|
},
|
||||||
},
|
{
|
||||||
"canonicalTitle": "Bokura wa Minna Kawaisou",
|
"height": null,
|
||||||
"abbreviatedTitles": null,
|
"name": "small",
|
||||||
"averageRating": 4.12281805954249,
|
"url": "https://media.kitsu.io/manga/poster_images/20286/small.jpg?1434293999",
|
||||||
"ratingFrequencies": {
|
"width": null
|
||||||
"0.5": "0",
|
},
|
||||||
"1.0": "1",
|
{
|
||||||
"1.5": "0",
|
"height": null,
|
||||||
"2.0": "1",
|
"name": "medium",
|
||||||
"2.5": "2",
|
"url": "https://media.kitsu.io/manga/poster_images/20286/medium.jpg?1434293999",
|
||||||
"3.0": "6",
|
"width": null
|
||||||
"3.5": "21",
|
},
|
||||||
"4.0": "38",
|
{
|
||||||
"4.5": "35",
|
"height": null,
|
||||||
"5.0": "43",
|
"name": "large",
|
||||||
"nil": "16"
|
"url": "https://media.kitsu.io/manga/poster_images/20286/large.jpg?1434293999",
|
||||||
},
|
"width": null
|
||||||
"favoritesCount": 0,
|
}
|
||||||
"startDate": "2010-01-01",
|
]
|
||||||
"endDate": null,
|
},
|
||||||
"popularityRank": 262,
|
"categories": {
|
||||||
"ratingRank": 127,
|
"nodes": [
|
||||||
"ageRating": "PG",
|
{
|
||||||
"ageRatingGuide": null,
|
"title": {
|
||||||
"posterImage": {
|
"en": "Comedy"
|
||||||
"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"
|
|
||||||
},
|
|
||||||
"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"
|
|
||||||
},
|
|
||||||
"subtype": "manga",
|
|
||||||
"chapterCount": null,
|
|
||||||
"volumeCount": 0,
|
|
||||||
"serialization": "Young King Ours",
|
|
||||||
"mangaType": "manga"
|
|
||||||
},
|
|
||||||
"relationships": {
|
|
||||||
"genres": {
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/genres",
|
|
||||||
"related": "https://kitsu.io/api/edge/manga/20286/genres"
|
|
||||||
},
|
|
||||||
"data": [{
|
|
||||||
"type": "genres",
|
|
||||||
"id": "3"
|
|
||||||
}, {
|
|
||||||
"type": "genres",
|
|
||||||
"id": "24"
|
|
||||||
}, {
|
|
||||||
"type": "genres",
|
|
||||||
"id": "16"
|
|
||||||
}, {
|
|
||||||
"type": "genres",
|
|
||||||
"id": "14"
|
|
||||||
}, {
|
|
||||||
"type": "genres",
|
|
||||||
"id": "18"
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
"castings": {
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/castings",
|
|
||||||
"related": "https://kitsu.io/api/edge/manga/20286/castings"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"installments": {
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/installments",
|
|
||||||
"related": "https://kitsu.io/api/edge/manga/20286/installments"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mappings": {
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/mappings",
|
|
||||||
"related": "https://kitsu.io/api/edge/manga/20286/mappings"
|
|
||||||
},
|
|
||||||
"data": [{
|
|
||||||
"type": "mappings",
|
|
||||||
"id": "48014"
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
"reviews": {
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/reviews",
|
|
||||||
"related": "https://kitsu.io/api/edge/manga/20286/reviews"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mediaRelationships": {
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/manga/20286/relationships/media-relationships",
|
|
||||||
"related": "https://kitsu.io/api/edge/manga/20286/media-relationships"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}],
|
{
|
||||||
"included": [{
|
"title": {
|
||||||
"id": "3",
|
"en": "School Life"
|
||||||
"type": "genres",
|
|
||||||
"links": {
|
|
||||||
"self": "https://kitsu.io/api/edge/genres/3"
|
|
||||||
},
|
|
||||||
"attributes": {
|
|
||||||
"name": "Comedy",
|
|
||||||
"slug": "comedy",
|
|
||||||
"description": null
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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"
|
||||||
}
|
}
|
||||||
}],
|
},
|
||||||
"meta": {
|
"description": {
|
||||||
"count": 1
|
"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)"
|
||||||
},
|
},
|
||||||
"links": {
|
"startDate": "2010-04-30",
|
||||||
"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",
|
"endDate": "2017-12-28",
|
||||||
"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"
|
"mappings": {
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"externalId": "56769",
|
||||||
|
"externalSite": "ANILIST_MANGA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"externalId": "26769",
|
||||||
|
"externalSite": "MYANIMELIST_MANGA"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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": "宮原 るり"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"slug": "ruri-miyahara"
|
||||||
|
},
|
||||||
|
"role": "Story \u0026 Art"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pageInfo": {
|
||||||
|
"endCursor": "MQ",
|
||||||
|
"hasNextPage": false,
|
||||||
|
"hasPreviousPage": false,
|
||||||
|
"startCursor": "MQ"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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": "僕らはみんな河合荘"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -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