예제 #1
0
 /**
  * get_metadata
  * Returns song metadata for what we're passed in.
  */
 public function get_metadata($gather_types, $media_info)
 {
     debug_event('tmdb', 'Getting metadata from Tmdb...', '5');
     // TVShow / Movie metadata only
     if (!in_array('tvshow', $gather_types) && !in_array('movie', $gather_types)) {
         debug_event('tmdb', 'Not a valid media type, skipped.', '5');
         return null;
     }
     try {
         $token = new \Tmdb\ApiToken($this->api_key);
         $client = new \Tmdb\Client($token);
         $configRepository = new \Tmdb\Repository\ConfigurationRepository($client);
         $config = $configRepository->load();
         $imageHelper = new \Tmdb\Helper\ImageHelper($config);
         $title = $media_info['original_name'] ?: $media_info['title'];
         $results = array();
         if (in_array('movie', $gather_types)) {
             if (!empty($title)) {
                 $apires = $client->getSearchApi()->searchMovies($title);
                 if (count($apires['results']) > 0) {
                     $results['tmdb_id'] = $apires['results'][0]['id'];
                     $release = $client->getMoviesApi()->getMovie($results['tmdb_id']);
                     $results['imdb_id'] = $release['imdb_id'];
                     $results['original_name'] = $release['original_title'];
                     if (!empty($release['release_date'])) {
                         $results['release_date'] = strtotime($release['release_date']);
                         $results['year'] = date("Y", $results['release_date']);
                         // Production year shouldn't be the release date
                     }
                     if ($release['poster_path']) {
                         $results['art'] = $imageHelper->getUrl($release['poster_path']);
                     }
                     if ($release['backdrop_path']) {
                         $results['background_art'] = $imageHelper->getUrl($release['backdrop_path']);
                     }
                     $results['genre'] = self::get_genres($release);
                 }
             }
         }
         if (in_array('tvshow', $gather_types)) {
             if (!empty($media_info['tvshow'])) {
                 $apires = $client->getSearchApi()->searchTv($media_info['tvshow']);
                 if (count($apires['results']) > 0) {
                     // Get first match
                     $results['tmdb_tvshow_id'] = $apires['results'][0]['id'];
                     $release = $client->getTvApi()->getTvshow($results['tmdb_tvshow_id']);
                     $results['tvshow'] = $release['original_name'];
                     if (!empty($release['first_air_date'])) {
                         $results['tvshow_year'] = date("Y", strtotime($release['first_air_date']));
                     }
                     if ($release['poster_path']) {
                         $results['tvshow_art'] = $imageHelper->getUrl($release['poster_path']);
                     }
                     if ($release['backdrop_path']) {
                         $results['tvshow_background_art'] = $imageHelper->getUrl($release['backdrop_path']);
                     }
                     $results['genre'] = self::get_genres($release);
                     if ($media_info['tvshow_season']) {
                         $release = $client->getTvSeasonApi()->getSeason($results['tmdb_tvshow_id'], $media_info['tvshow_season']);
                         if ($release['id']) {
                             if ($release['poster_path']) {
                                 $results['tvshow_season_art'] = $imageHelper->getUrl($release['poster_path']);
                             }
                             if ($media_info['tvshow_episode']) {
                                 $release = $client->getTvEpisodeApi()->getEpisode($results['tmdb_tvshow_id'], $media_info['tvshow_season'], $media_info['tvshow_episode']);
                                 if ($release['id']) {
                                     $results['tmdb_id'] = $release['id'];
                                     $results['tvshow_season'] = $release['season_number'];
                                     $results['tvshow_episode'] = $release['episode_number'];
                                     $results['original_name'] = $release['name'];
                                     if (!empty($release['air_date'])) {
                                         $results['release_date'] = strtotime($release['release_date']);
                                         $results['year'] = date("Y", $results['release_date']);
                                     }
                                     $results['description'] = $release['overview'];
                                     if ($release['still_path']) {
                                         $results['art'] = $imageHelper->getUrl($release['still_path']);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     } catch (Exception $e) {
         debug_event('tmdb', 'Error getting metadata: ' . $e->getMessage(), '1');
     }
     return $results;
 }
예제 #2
0
파일: list.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchList('award');
var_dump($result);
예제 #3
0
function getFeed($feed_url, $type)
{
    // Type: Movie(0), TV(1), Animated(2)
    $content = file_get_contents($feed_url);
    $x = new SimpleXmlElement($content);
    $token = new \Tmdb\ApiToken('1e5387b55fe12efeb19db53ea9ca88a1');
    $client = new \Tmdb\Client($token);
    if ($type != 1) {
        $all_genres = $client->getGenresApi()->getGenres();
        $all_genres_ids = array();
        foreach ($all_genres['genres'] as $genre) {
            array_push($all_genres_ids, $genre['id']);
        }
        $current_ids = array();
        foreach ($x->channel->item as $entry) {
            /* @@ Modification for TMDB API @@ */
            $movie_title = $entry->title;
            $title = modifyTitle($movie_title);
            $result = $client->getSearchApi()->searchMovies($title);
            $movie = array_values($result)[1][0];
            /* @@ Check if result is found from TMDB API @@ */
            if (count($movie) > 0) {
                if (!in_array(intval($movie['id']), $current_ids)) {
                    array_push($current_ids, intval($movie['id']));
                } else {
                    continue;
                }
                /* @@ Title @@ */
                $original_title = shortenText($movie['original_title'], 40);
                /* @@ Plot (overview) @@ */
                $plot = shortenText($movie['overview'], 285);
                /* @@ Release year @@ */
                $released_year = substr($movie['release_date'], 0, 4);
                /* @@ Release year @@ */
                $genres = $movie['genre_ids'];
                $genre_string = getGenreString($genres, $all_genres_ids, $all_genres);
                $poster_url = "http://image.tmdb.org/t/p/w500/" . $movie['poster_path'];
                $backdrop_url = "http://image.tmdb.org/t/p/w500" . $movie['backdrop_path'];
                $content_url = "https://www.themoviedb.org/movie/" . $movie['id'];
                renderTable($original_title, $plot, $released_year, $genre_string, $poster_url, $backdrop_url, $content_url, $entry->link);
            } else {
                if ($type != 2) {
                    // Teiknimyndir eru oft á íslensku og þ.a.l. ekki á TMDB
                    $plot = "Ekki fundust upplýsingar um þessa mynd.<br>Titill hennar gæti verið stafsettur vitlaust.<br>Einnig gæti verið að þetta sé sjónvarsþáttur.";
                    renderTable($entry->title, $plot, null, null, null, null, null, $entry->link);
                }
            }
        }
    } else {
        // TV SHOWS
        foreach ($x->channel->item as $entry) {
            $tv_show_title = $entry->title;
            $tv_show_title = modifyTvShowTitle($tv_show_title);
            $result = $client->getSearchApi()->searchTv($tv_show_title);
            $tv_show = array_values($result)[1][0];
            if (count($tv_show) > 0) {
                $tv_show_title = $tv_show['name'];
                $tv_show_title .= ' ' . getEpisodeNumber($entry->title);
                $plot = shortenText($tv_show['overview'], 300);
                $released_year = substr($tv_show['first_air_date'], 0, 4);
                $genres = $tv_show['genre_ids'];
                $genre_string = getGenreString($genres, $all_genres_ids, $all_genres);
                $poster_url = "http://image.tmdb.org/t/p/w500/" . $tv_show['poster_path'];
                $backdrop_url = "http://image.tmdb.org/t/p/w500" . $tv_show['backdrop_path'];
                $content_url = "https://www.themoviedb.org/tv/" . $tv_show['id'];
                renderTable($tv_show_title, $plot, $released_year, $genre_string, $poster_url, $backdrop_url, $content_url, $entry->link);
            }
        }
    }
}
예제 #4
0
파일: tv.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchTv('breaking bad');
var_dump($result);
예제 #5
0
파일: person.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchPersons('bruce lee');
var_dump($result);
예제 #6
0
파일: keyword.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchKeyword('scary');
var_dump($result);
예제 #7
0
파일: collection.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchCollection('star wars');
var_dump($result);
예제 #8
0
파일: multi.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchMulti('jack');
var_dump($result);
예제 #9
0
파일: movie.php 프로젝트: n10ty/api
<?php

/**
 * This file is part of the Tmdb PHP API created by Michael Roterman.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @package Tmdb
 * @author Michael Roterman <*****@*****.**>
 * @copyright (c) 2013, Michael Roterman
 * @version 0.0.1
 */
require_once '../../../vendor/autoload.php';
require_once '../../../apikey.php';
$token = new \Tmdb\ApiToken(TMDB_API_KEY);
$client = new \Tmdb\Client($token);
$result = $client->getSearchApi()->searchMovies('batman');
var_dump($result);