WebService::TMDB

A module for interfacing with TMDB API

NAME

WebService::TMDB - a module for accessing The Movie Database data.

SYNOPSIS

use WebService::TMDB;

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;

INSTALLATION

You need to have Raku and zef, then run:

zef install WebService::TMDB

or if you have cloned the repo:

zef install .

TESTING

prove -ve 'raku -Ilib' --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 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.perl6.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 Ā© 2020 Siavash Askari Nasr

This file is part of WebService::TMDB.

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/.

WebService::TMDB v0.1.1

A module for interfacing with TMDB API

Authors

  • Siavash Askari Nasr

License

LGPL-3.0-or-later

Dependencies

HTTP::UserAgentJSON::Unmarshal:ver<0.08>JSON::FastURI

Test Dependencies

Provides

  • WebService::TMDB
  • WebService::TMDB::Cast
  • WebService::TMDB::CertificationList
  • WebService::TMDB::Company
  • WebService::TMDB::Configuration
  • WebService::TMDB::Country
  • WebService::TMDB::Credits
  • WebService::TMDB::Crew
  • WebService::TMDB::ExternalID
  • WebService::TMDB::Facade::UserAgent
  • WebService::TMDB::Genre
  • WebService::TMDB::Genre::List
  • WebService::TMDB::Movie
  • WebService::TMDB::Movie::Search
  • WebService::TMDB::Movie::Upcoming
  • WebService::TMDB::Person
  • WebService::TMDB::Person::MovieCast
  • WebService::TMDB::Person::MovieCredits
  • WebService::TMDB::Person::MovieCrew
  • WebService::TMDB::Person::Search
  • WebService::TMDB::Person::TVCast
  • WebService::TMDB::Person::TVCredits
  • WebService::TMDB::Person::TVCrew
  • WebService::TMDB::Request
  • WebService::TMDB::Role::HasRequest
  • WebService::TMDB::Role::Request
  • WebService::TMDB::Role::Search
  • WebService::TMDB::Role::UserAgent
  • WebService::TMDB::SpokenLanguage
  • WebService::TMDB::TV
  • WebService::TMDB::TV::Episode
  • WebService::TMDB::TV::Search
  • WebService::TMDB::TV::Season
  • WebService::TMDB::Utility

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.