NAME
WebService::TMDB - A module for accessing The Movie Database data.
SYNOPSIS
use WebService::TMDB;
my $tmdb = WebService::TMDB.new: :access_token<1234>;
my $search = $tmdb.search_movie: query => 'legend of 1900';
say $search.results[0].title;
my $movie = $tmdb.movie: 10775, :append(['credits']);
say $movie.title;
say $movie.credits.cast[0].name;
my $find = $tmdb.find_by: ExternalSources::IMDB, :external_id<tt4540710>;
say $find.movie_results[0].title;
INSTALLATION
You need to have Raku and zef, then run:
zef install "WebService::TMDB:auth<zef:CIAvash>"
or if you have cloned the repo:
zef install .
TESTING
prove -ve 'raku -I.' --ext rakutest
DESCRIPTION
WebService::TMDB is a module for interfacing with the TMDB API. An access token is required to use the API.
ATTRIBUTES/METHODS
has Str $.access_token
Access token required by themoviedb.org
has WebService::TMDB::Role::Request $.request handles('language', 'set_language')
An object for making requests to themoviedb.org
method find_by
method find_by(
WebService::TMDB::ExternalSources(Str) $external_source,
Str :$external_id!
) returns WebService::TMDB::Find
Find movie, TV, TV season and episode by external ID
method movie
method movie(
Int $id,
:@append where { ... }
) returns WebService::TMDB::Movie
Get a specific movie by its ID. Credits and external IDs can be appended to response.
method movie_credits
method movie_credits(
Int $id
) returns WebService::TMDB::Credits
Get credits for a movie
method movie_external_ids
method movie_external_ids(
Int $id
) returns WebService::TMDB::ExternalID
Get external IDs for a movie
method movie_upcoming
method movie_upcoming(
*%params
) returns WebService::TMDB::Movie::Upcoming
Get upcoming movies
method movie_now_playing
method movie_now_playing(
*%params
) returns WebService::TMDB::Movie::Upcoming
Get movies that are in theatres
method search_movie
method search_movie(
*%params
) returns WebService::TMDB::Movie::Search
Search for movies
method discover_movie
method discover_movie(
*%params
) returns WebService::TMDB::Movie::Search
Discover movies
method tv
method tv(
Int $id,
:@append where { ... }
) returns WebService::TMDB::TV
Get a TV show by its ID. Credits and external IDs can be appended to response.
method season
method season(
Int :$tv,
Int :$season,
:@append where { ... }
) returns WebService::TMDB::TV::Season
Get a TV season. Credits can be appended to response.
method episode
method episode(
Int :$tv,
Int :$season,
Int :$episode,
:@append where { ... }
) returns WebService::TMDB::TV::Episode
Get a TV episode. Credits can be appended to response.
method tv_airing_today
method tv_airing_today(
*%params
) returns WebService::TMDB::TV::Search
Get TV shows that are airing today
method tv_on_the_air
method tv_on_the_air(
*%params
) returns WebService::TMDB::TV::Search
Get TV shows that are currently on the air
method search_tv
method search_tv(
*%params
) returns WebService::TMDB::TV::Search
Search TV shows
method discover_tv
method discover_tv(
*%params
) returns WebService::TMDB::TV::Search
Discover TV shows
method person
method person(
Int $id,
:@append where { ... }
) returns WebService::TMDB::Person
Get a person by its ID. Movie & TV credits and external IDs can be appended to response.
method person_movie_credits
method person_movie_credits(
Int $id
) returns WebService::TMDB::Person::MovieCredits
Get a person's movie credits
method person_tv_credits
method person_tv_credits(
Int $id
) returns WebService::TMDB::Person::TVCredits
Get a person's TV credits
method person_external_ids
method person_external_ids(
Int $id
) returns WebService::TMDB::ExternalID
Get a person's external IDs
method search_person
method search_person(
*%params
) returns WebService::TMDB::Person::Search
Search people
method genre_movie_list
method genre_movie_list() returns WebService::TMDB::Genre::List
Get genre list for movies
method genre_tv_list
method genre_tv_list() returns WebService::TMDB::Genre::List
Get genre list for TV shows
method certification_movie_list
method certification_movie_list() returns WebService::TMDB::CertificationList
Get certification list for movies
method certification_tv_list
method certification_tv_list() returns WebService::TMDB::CertificationList
Get certification list for TV shows
method configuration
method configuration() returns WebService::TMDB::Configuration
Get themoviedb.org configuration. themoviedb.org recommends caching this data and checking for updates every few days.
ERRORS
HTTP::UserAgent
module is used with exception throwing enabled. So exceptions will be thrown in case of non-existent resources, out of range values, etc. See http://modules.raku.org/dist/HTTP::UserAgent.
When an exception of type X::HTTP::Response
is caught, and the response received from themoviedb.org contains an error message, an attribute named tmdb_status_message
or tmdb_errors
will be added to the exception containing that error message.
ENVIRONMENT
Some live tests will run when NETWORK_TESTING
environment variable is set.
REPOSITORY
https://codeberg.org/CIAvash/WebService-TMDB
BUGS
https://codeberg.org/CIAvash/WebService-TMDB/issues
AUTHOR
Siavash Askari Nasr - https://siavash.askari-nasr.com
COPYRIGHT AND LICENSE
Copyright © Siavash Askari Nasr
WebService::TMDB is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
WebService::TMDB is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with WebService::TMDB. If not, see http://www.gnu.org/licenses/.