diff --git a/.travis.yml b/.travis.yml index 8e9e126b..8708edc0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,24 +17,32 @@ matrix: env: [SF_EVT_DISPATCHER_VERSION="2.8.*", SF_OPT_RESOLVER_VERSION="2.8.*"] - php: 5.6 env: [SF_EVT_DISPATCHER_VERSION="3.1.*", SF_OPT_RESOLVER_VERSION="3.1.*"] + - php: 5.6 + env: [SF_EVT_DISPATCHER_VERSION="3.2.*", SF_OPT_RESOLVER_VERSION="3.2.*"] - php: 7.0 env: [SF_EVT_DISPATCHER_VERSION="2.7.*", SF_OPT_RESOLVER_VERSION="2.7.*"] - php: 7.0 env: [SF_EVT_DISPATCHER_VERSION="2.8.*", SF_OPT_RESOLVER_VERSION="2.8.*"] - php: 7.0 env: [SF_EVT_DISPATCHER_VERSION="3.1.*", SF_OPT_RESOLVER_VERSION="3.1.*"] + - php: 7.0 + env: [SF_EVT_DISPATCHER_VERSION="3.2.*", SF_OPT_RESOLVER_VERSION="3.2.*"] - php: 7.1 env: [SF_EVT_DISPATCHER_VERSION="2.7.*", SF_OPT_RESOLVER_VERSION="2.7.*"] - php: 7.1 env: [SF_EVT_DISPATCHER_VERSION="2.8.*", SF_OPT_RESOLVER_VERSION="2.8.*"] - php: 7.1 env: [SF_EVT_DISPATCHER_VERSION="3.1.*", SF_OPT_RESOLVER_VERSION="3.1.*"] + - php: 7.1 + env: [SF_EVT_DISPATCHER_VERSION="3.2.*", SF_OPT_RESOLVER_VERSION="3.2.*"] - php: hhvm env: [SF_EVT_DISPATCHER_VERSION="2.7.*", SF_OPT_RESOLVER_VERSION="2.7.*"] - php: hhvm env: [SF_EVT_DISPATCHER_VERSION="2.8.*", SF_OPT_RESOLVER_VERSION="2.8.*"] - php: hhvm env: [SF_EVT_DISPATCHER_VERSION="3.1.*", SF_OPT_RESOLVER_VERSION="3.1.*"] + - php: hhvm + env: [SF_EVT_DISPATCHER_VERSION="3.2.*", SF_OPT_RESOLVER_VERSION="3.2.*"] allow_failures: - php: nightly fast_finish: true diff --git a/composer.json b/composer.json index a074bc64..4dd57be9 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "rtheunissen/guzzle-log-middleware": "^0.4.0" }, "require-dev": { - "phpunit/phpunit": ">=5.7", + "phpunit/phpunit": ">=5.7,<6", "monolog/monolog": ">=1.11.0" }, "suggest": { diff --git a/lib/Tmdb/Factory/MovieFactory.php b/lib/Tmdb/Factory/MovieFactory.php index 98255522..2b0a68a4 100644 --- a/lib/Tmdb/Factory/MovieFactory.php +++ b/lib/Tmdb/Factory/MovieFactory.php @@ -164,6 +164,18 @@ public function create(array $data = []) $movie->setReleases($this->createGenericCollection($data['releases']['countries'], new Movie\Release())); } + if (array_key_exists('release_dates', $data) && array_key_exists('results', $data['release_dates'])) { + $release_dates = new GenericCollection(); + foreach ($data['release_dates']['results'] as $country_releases) { + $iso_31661 = $country_releases['iso_3166_1']; + foreach($country_releases['release_dates'] as $release_date) { + $release_date['iso_3166_1'] = $iso_31661; + $release_dates->add(null, $this->hydrate(new Movie\ReleaseDate(), $release_date)); + } + } + $movie->setReleaseDates($release_dates); + } + if (array_key_exists('videos', $data)) { $movie->setVideos($this->getVideoFactory()->createCollection($data['videos'])); } diff --git a/lib/Tmdb/Model/Movie.php b/lib/Tmdb/Model/Movie.php index e46cf807..9c934283 100644 --- a/lib/Tmdb/Model/Movie.php +++ b/lib/Tmdb/Model/Movie.php @@ -14,6 +14,7 @@ use Tmdb\Model\Collection\ResultCollection; use Tmdb\Model\Collection\Videos; +use Tmdb\Model\Common\Country; use Tmdb\Model\Common\GenericCollection; use Tmdb\Model\Collection\CreditsCollection; use Tmdb\Model\Collection\Genres; @@ -22,6 +23,7 @@ use Tmdb\Model\Common\Translation; use Tmdb\Model\Movie\AlternativeTitle; use Tmdb\Model\Movie\Release; +use Tmdb\Model\Movie\ReleaseDate; /** * Class Movie @@ -195,9 +197,15 @@ class Movie extends AbstractModel /** * @var GenericCollection + * @deprecated Use $release_dates instead */ protected $releases; + /** + * @var GenericCollection + */ + protected $release_dates; + /** * @var GenericCollection */ @@ -266,6 +274,7 @@ public function __construct() $this->keywords = new GenericCollection(); $this->lists = new GenericCollection(); $this->releases = new GenericCollection(); + $this->release_dates = new GenericCollection(); $this->similar = new GenericCollection(); $this->translations = new GenericCollection(); $this->videos = new Videos(); @@ -849,6 +858,7 @@ public function getLists() /** * @param GenericCollection $releases * @return $this + * @deprecated Use the setReleaseDates instead. */ public function setReleases(GenericCollection $releases) { @@ -859,12 +869,32 @@ public function setReleases(GenericCollection $releases) /** * @return GenericCollection|Release[] + * @deprecated Use the getReleaseDates instead */ public function getReleases() { return $this->releases; } + /** + * @param GenericCollection $release_dates + * @return $this + */ + public function setReleaseDates(GenericCollection $release_dates) + { + $this->release_dates = $release_dates; + + return $this; + } + + /** + * @return GenericCollection|ReleaseDate[] + */ + public function getReleaseDates() + { + return $this->release_dates; + } + /** * @param GenericCollection $similar * @return $this @@ -877,7 +907,7 @@ public function setSimilar($similar) } /** - * @return Movie[] + * @return GenericCollection|Movie[] */ public function getSimilar() { @@ -885,8 +915,8 @@ public function getSimilar() } /** - * @return Movie[] - * @deprecated + * @return GenericCollection|Movie[] + * @deprecated Use getSimilar instead */ public function getSimilarMovies() { diff --git a/lib/Tmdb/Model/Movie/QueryParameter/AppendToResponse.php b/lib/Tmdb/Model/Movie/QueryParameter/AppendToResponse.php index a459302a..e3d302bc 100644 --- a/lib/Tmdb/Model/Movie/QueryParameter/AppendToResponse.php +++ b/lib/Tmdb/Model/Movie/QueryParameter/AppendToResponse.php @@ -24,7 +24,12 @@ final class AppendToResponse extends BaseAppendToResponse const CREDITS = 'credits'; const IMAGES = 'images'; const KEYWORDS = 'keywords'; + /** + * @see https://developers.themoviedb.org/3/movies/get-movie-release-dates + * @deprecated Use RELEASE_DATES instead, but format has changed. + */ const RELEASES = 'releases'; + const RELEASE_DATES = 'release_dates'; const TRANSLATIONS = 'translations'; const SIMILAR = 'similar'; const REVIEWS = 'reviews'; diff --git a/lib/Tmdb/Model/Movie/Release.php b/lib/Tmdb/Model/Movie/Release.php index 1c49ef3c..751c4e40 100644 --- a/lib/Tmdb/Model/Movie/Release.php +++ b/lib/Tmdb/Model/Movie/Release.php @@ -18,6 +18,7 @@ /** * Class Release * @package Tmdb\Model\Movie + * @deprecated Use ReleaseDate instead */ class Release extends AbstractModel implements CountryFilter { diff --git a/lib/Tmdb/Model/Movie/ReleaseDate.php b/lib/Tmdb/Model/Movie/ReleaseDate.php new file mode 100644 index 00000000..7e9e9fdf --- /dev/null +++ b/lib/Tmdb/Model/Movie/ReleaseDate.php @@ -0,0 +1,164 @@ + + * @copyright (c) 2013, Michael Roterman + * @version 2.1.7 + */ +namespace Tmdb\Model\Movie; + +use Tmdb\Model\AbstractModel; +use Tmdb\Model\Filter\CountryFilter; +use Tmdb\Model\Filter\LanguageFilter; + +/** + * Class Release Date + * @package Tmdb\Model\Movie + */ +class ReleaseDate extends AbstractModel implements CountryFilter, LanguageFilter +{ + const PREMIERE = 1; + const THEATRICAL_LIMITED = 2; + const THEATRICAL = 3; + const DIGITAL = 4; + const PHYSICAL = 5; + const TV = 6; + + private $iso31661; + private $iso6391; + private $certification; + private $note; + private $releaseDate; + private $type; + + public static $properties = [ + 'iso_3166_1', + 'iso_639_1', + 'certification', + 'note', + 'release_date', + 'type' + ]; + + /** + * @param string|null $certification + * @return $this + */ + public function setCertification($certification) + { + $this->certification = $certification; + + return $this; + } + + /** + * @return string|null + */ + public function getCertification() + { + return $this->certification; + } + + /** + * @param string|null $note + * @return $this + */ + public function setNote($note) + { + $this->note = $note; + + return $this; + } + + /** + * @return string|null + */ + public function getNote() + { + return $this->note; + } + + /** + * @param string $iso31661 + * @return $this + */ + public function setIso31661($iso31661) + { + $this->iso31661 = $iso31661; + + return $this; + } + + /** + * @return string + */ + public function getIso31661() + { + return $this->iso31661; + } + + /** + * @param string|\DateTime $releaseDate + * @return $this + */ + public function setReleaseDate($releaseDate) + { + if (!$releaseDate instanceof \DateTime) { + $releaseDate = new \DateTime($releaseDate); + } + + $this->releaseDate = $releaseDate; + + return $this; + } + + /** + * @return \DateTime + */ + public function getReleaseDate() + { + return $this->releaseDate; + } + + /** + * @param string $iso6391 + * @return $this + */ + public function setIso6391($iso6391) + { + $this->iso6391 = $iso6391; + return $this; + } + + /** + * @return string|null + */ + public function getIso6391() + { + return $this->iso6391; + } + + /** + * @param int $type + * @return $this + */ + public function setType($type) + { + $this->type = $type; + + return $this; + } + + /** + * @return int + */ + public function getType() + { + return $this->type; + } +} \ No newline at end of file diff --git a/lib/Tmdb/Repository/MovieRepository.php b/lib/Tmdb/Repository/MovieRepository.php index ed5d59f7..1a39d20a 100644 --- a/lib/Tmdb/Repository/MovieRepository.php +++ b/lib/Tmdb/Repository/MovieRepository.php @@ -66,7 +66,7 @@ public function load($id, array $parameters = [], array $headers = []) AppendToResponse::IMAGES, AppendToResponse::KEYWORDS, AppendToResponse::LISTS, - AppendToResponse::RELEASES, + AppendToResponse::RELEASE_DATES, AppendToResponse::REVIEWS, AppendToResponse::SIMILAR, AppendToResponse::TRANSLATIONS, diff --git a/test/Tmdb/Tests/Factory/MovieFactoryTest.php b/test/Tmdb/Tests/Factory/MovieFactoryTest.php index fad0e61a..ca9db2dc 100644 --- a/test/Tmdb/Tests/Factory/MovieFactoryTest.php +++ b/test/Tmdb/Tests/Factory/MovieFactoryTest.php @@ -14,6 +14,8 @@ use Tmdb\Factory\MovieFactory; use Tmdb\Model\Movie; +use Tmdb\Model\Movie\Release; +use Tmdb\Model\Movie\ReleaseDate; use Tmdb\Model\Person\CastMember; class MovieFactoryTest extends TestCase @@ -103,12 +105,23 @@ public function shouldBeFunctional() $this->assertInstanceOf('Tmdb\Model\Common\GenericCollection', $this->movie->getKeywords()); $this->assertInstanceOf('Tmdb\Model\Common\GenericCollection', $this->movie->getLists()); $this->assertInstanceOf('Tmdb\Model\Common\GenericCollection', $this->movie->getReleases()); + $this->assertInstanceOf('Tmdb\Model\Common\GenericCollection', $this->movie->getReleaseDates()); $this->assertInstanceOf('Tmdb\Model\Common\GenericCollection', $this->movie->getSimilar()); $this->assertInstanceOf('Tmdb\Model\Collection\Videos', $this->movie->getVideos()); + /** @var Release[] $releases */ $releases = $this->movie->getReleases()->getAll(); $primaryRelease = array_shift($releases); $this->assertEquals(true, $primaryRelease->getPrimary()); + + /** @var ReleaseDate[] $release_dates */ + $release_dates = $this->movie->getReleaseDates()->getAll(); + $this->assertEquals(46, count($release_dates)); + foreach($release_dates as $release_date) { + $this->assertNotEmpty($release_date->getIso31661()); + $this->assertInstanceOf(\DateTime::class, $release_date->getReleaseDate()); + $this->assertTrue(is_int($release_date->getType())); + } } /** diff --git a/test/Tmdb/Tests/Model/Movie/ReleaseDateTest.php b/test/Tmdb/Tests/Model/Movie/ReleaseDateTest.php new file mode 100644 index 00000000..617f325a --- /dev/null +++ b/test/Tmdb/Tests/Model/Movie/ReleaseDateTest.php @@ -0,0 +1,49 @@ + + * @copyright (c) 2013, Michael Roterman + * @version 2.1.7 + */ +namespace Tmdb\Tests\Model\Movie; + +use Tmdb\Common\ObjectHydrator; +use Tmdb\Model\Movie\ReleaseDate; +use Tmdb\Tests\Model\TestCase; + +class ReleaseDateTest extends TestCase +{ + /** + * @test + */ + public function shouldBeFunctional() + { + $data = [ + 'iso_3166_1' => 'US', + 'iso_639_1' => 'en', + 'certification' => 'R', + 'note' => 'Released only to IMAX screens', + 'release_date' => '2013-09-06T00:00:00.000Z', + 'type' => 3 + ]; + + $hydrator = new ObjectHydrator(); + + /** + * @var ReleaseDate $object + */ + $object = $hydrator->hydrate(new ReleaseDate(), $data); + + $this->assertEquals('US', $object->getIso31661()); + $this->assertEquals('en', $object->getIso6391()); + $this->assertEquals('R', $object->getCertification()); + $this->assertEquals('Released only to IMAX screens', $object->getNote()); + $this->assertEquals(new \DateTime('2013-09-06'), $object->getReleaseDate()); + $this->assertEquals(3, $object->getType()); + } +} \ No newline at end of file diff --git a/test/Tmdb/Tests/Model/MovieTest.php b/test/Tmdb/Tests/Model/MovieTest.php index 1ea9131b..f01929cd 100644 --- a/test/Tmdb/Tests/Model/MovieTest.php +++ b/test/Tmdb/Tests/Model/MovieTest.php @@ -40,6 +40,7 @@ public function shouldConstructMovie() 'getKeywords' => 'Tmdb\Model\Common\GenericCollection', 'getLists' => 'Tmdb\Model\Common\GenericCollection', 'getReleases' => 'Tmdb\Model\Common\GenericCollection', + 'getReleaseDates' => 'Tmdb\Model\Common\GenericCollection', 'getSimilar' => 'Tmdb\Model\Common\GenericCollection', 'getTranslations' => 'Tmdb\Model\Common\GenericCollection', 'getVideos' => 'Tmdb\Model\Collection\Videos', diff --git a/test/Tmdb/Tests/Repository/MovieRepositoryTest.php b/test/Tmdb/Tests/Repository/MovieRepositoryTest.php index eb46507b..3120c02a 100644 --- a/test/Tmdb/Tests/Repository/MovieRepositoryTest.php +++ b/test/Tmdb/Tests/Repository/MovieRepositoryTest.php @@ -29,7 +29,7 @@ public function shouldLoadMovie() ->method('get') ->with($this->getRequest( 'https://api.themoviedb.org/3/movie/' . self::MOVIE_ID, - ['append_to_response' => 'alternative_titles,changes,credits,images,keywords,lists,releases,reviews,similar,translations,videos'] + ['append_to_response' => 'alternative_titles,changes,credits,images,keywords,lists,release_dates,reviews,similar,translations,videos'] )) ; diff --git a/test/Tmdb/Tests/Resources/movie/all.json b/test/Tmdb/Tests/Resources/movie/all.json index a1bd95c6..2e08be77 100644 --- a/test/Tmdb/Tests/Resources/movie/all.json +++ b/test/Tmdb/Tests/Resources/movie/all.json @@ -1300,6 +1300,562 @@ } ] }, + "release_dates": { + "results": [ + { + "iso_3166_1": "KR", + "release_dates": [ + { + "certification": "15세 이상 관람가", + "iso_639_1": "", + "note": "", + "release_date": "2013-11-28T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "JP", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2014-03-08T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "MX", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-10-25T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "TR", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-10-04T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "SE", + "release_dates": [ + { + "certification": "15", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-20T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "IS", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-20T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "PT", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-19T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "PH", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-18T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "PK", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-13T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "SG", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-12T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "KH", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-12T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "IN", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "CL", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2014-01-30T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "FI", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "HU", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "HR", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "EE", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "AR", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-12T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "IL", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "LT", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "ID", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "HK", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "GR", + "release_dates": [ + { + "certification": "15", + "iso_639_1": "", + "note": "", + "release_date": "2013-10-17T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "CA", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "ES", + "release_dates": [ + { + "certification": "16", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-02T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "NO", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "RU", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-12T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "SK", + "release_dates": [ + { + "certification": "15", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "BG", + "release_dates": [ + { + "certification": "D", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "IT", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "FR", + "release_dates": [ + { + "certification": "12", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-18T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "IE", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-04T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "GB", + "release_dates": [ + { + "certification": "15", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-03T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "BE", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-11-20T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "KZ", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-11T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "DK", + "release_dates": [ + { + "certification": "15", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "AT", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "TW", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "PL", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "NL", + "release_dates": [ + { + "certification": "16", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "DE", + "release_dates": [ + { + "certification": "16", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-19T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "PE", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-10-24T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "BR", + "release_dates": [ + { + "certification": "16 anos", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "AU", + "release_dates": [ + { + "certification": "MA15+", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-12T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "KW", + "release_dates": [ + { + "certification": "", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-05T00:00:00.000Z", + "type": 3 + } + ] + }, + { + "iso_3166_1": "US", + "release_dates": [ + { + "certification": "R", + "iso_639_1": "", + "note": "", + "release_date": "2013-09-06T00:00:00.000Z", + "type": 3 + } + ] + } + ] + }, "similar_movies":{ "page":1, "results":[