Location: PHPKode > projects > VideoDB > videodb/contrib/fetch_imdb_all.php
<?php
/**
 * Refresh whole IMDB info
 * 
 * This script should be executed from command line 
 * Look for the NOTE: comments to change behavior 
 * The script should be placed under videodb/contrib and run as "php fetch_imdb_all.php"
 *
 * @package Contrib
 * @author  Alex Mondshain <hide@address.com>
 */

chdir('..');
require_once './engines/engines.php';
require_once './core/functions.php';
require_once './core/genres.php';
require_once './core/custom.php';
require_once './core/edit.core.php';


//Id is imdb id
//lookup is either 1 (add missing) or 2 (overwrite)
function FetchSaveMovie($id,$lookup)
{
  $debug = 0;
  
  $video = runSQL('SELECT * FROM '.TBL_DATA.' WHERE id = '.$id);
  // get fields (according to list) from db to be saved later

  if ($debug){
    echo "\n=================== Video DB Data ============================\n";
    print_r( $video[0]);
    echo "\n=================== Video DB Data ============================\n";
  }

  $imdbID=$video[0]['imdbID'];
  echo "Movie/imdb -- ".$video[0]['title']."/".$video[0]['imdbID']."\n";

    
  if (empty($imdbID)){
    echo "No imdbID\n";
    return;
  }

  if (empty($engine)) $engine = engineGetEngine($imdbID);

  if ($debug){
    echo "IMDBID = $imdbID, engine = $engine\n";
  }

  $imdbdata = engineGetData($imdbID, $engine);

  if( empty($imdbdata[title])){
    echo "Fetch failed , try again...\n";
    $imdbdata = engineGetData($imdbID, $engine);

  }

  if( empty($imdbdata[title])){
    echo "Fetch failed again , next movie";
    return;
  }

  if ($debug){
    echo "\n===================  IMDB Data ============================\n";
    print_r($imdbdata);
    echo "\n===================  IMDB Data ============================\n";
  }

  if( !empty($imdbdata[title])){
    //
    // NOTE: comment out any of the following lines if you do not want them updated 
    //
    $video[0][title]=$imdbdata[title];
    $video[0][subtitle]=$imdbdata[subtitle];
    $video[0][year]=$imdbdata[year];
    $video[0][imgurl]=$imdbdata[coverurl];
    $video[0][runtime]=$imdbdata[runtime];
    $video[0][director]=$imdbdata[director];
    $video[0][rating]=$imdbdata[rating];
    $video[0][country]=$imdbdata[country];
    $video[0][language]=$imdbdata[language];
    $video[0][actors]=$imdbdata[cast];
    $video[0][plot]=$imdbdata[plot];

  }
    
 
  if (count($genres) == 0 || ($lookup > 1))
    {
      $genres = array();
      $gnames = $imdbdata['genres'];
      if (isset($gnames))
        {
	  foreach ($gnames as $gname)
            {
	      // check if genre is found- otherwise fail silently
	      if (is_numeric($genre = getGenreId($gname)))
                {
		  $genres[] = $genre;
                }else{
		echo "MISSING GENRE $gname\n";
	      }
            }
        }
    }


  // custom filds , not working for now 
  for ($i=1; $i<=4; $i++)
    {
      $custom = 'custom'.$i;
      $type   = $config[$custom.'type'];
      if (!empty($type))
        {
	  // copy imdb data into corresponding custom field
	  $video[0][$custom]=$imdbdata[$type];
	  echo "CUSTOM $custom $type = $imdbdata[$type]\n";
        }
    }

  //  -------- SAVE 

  $SETS = prepareSQL($video[0]);

  if ($debug){
    echo "\n===================  Final Data ============================\n";
    echo "SETS = $SETS \n";
    echo  "\n===================  Final Data ============================\n";
  }

  $id = updateDB($SETS, $id, ($oldmediatype == MEDIA_WISHLIST) && ($mediatype != MEDIA_WISHLIST));

  // save genres
  setItemGenres($id, $genres);
  
  // set seen for currently logged in user
  set_userseen($id, $seen);
  

}

// NOTE: Edit this line if you want to update specific set of files by adding WHERE statment 
$allids = runSQL('SELECT id FROM '.TBL_DATA);

foreach ( $allids as $id){
  echo "Updating ID:".$id['id']."\n";
  FetchSaveMovie($id['id'],3);
}
//  for testing 
//   FetchSaveMovie(1,3);

?>
Return current item: VideoDB