예제 #1
0
    $people = '';
    foreach ($movie->director() as $person) {
        $people .= ";" . $person['name'];
    }
    if (!empty($people)) {
        $xml .= elem('director', substr($people, 1));
    }
    $people = '';
    foreach ($movie->cast() as $person) {
        $people .= ";" . $person['name'];
    }
    if (!empty($people)) {
        $xml .= elem('actor', substr($people, 1));
    }
    $genres = '';
    foreach ($movie->genres() as $genre) {
        $genres .= ";{$genre}";
    }
    if (!empty($genres)) {
        $xml .= elem('genre', substr($genres, 1));
    }
    if (($photo_url = $movie->photo_localurl()) != FALSE) {
        $xml .= "    <cover>{$photo_url}</cover>\n";
    }
    $budg = new imdb_budget($imdbid);
    $xml .= elem('budget', $budg->budget());
    $xml .= "  </movie>\n";
}
file_put_contents($resultfile, $xml . "</imdbdata>\n");
######################################################################
# EOF
예제 #2
0
}
//==auto imdb rewritten putyn 28/06/2011
$imdb_html = "";
if (preg_match('/^http\\:\\/\\/(.*?)imdb\\.com\\/title\\/tt([\\d]{7})/i', $torrents['url'], $imdb_tmp)) {
    $imdb_id = $imdb_tmp[2];
    unset($imdb_tmp);
    if (!($imdb_html = $mc1->get_value('imdb::' . $imdb_id))) {
        $movie = new imdb($imdb_id);
        $movie->setid($imdb_id);
        $imdb_data['director'] = $movie->director();
        $imdb_data['writing'] = $movie->writing();
        $imdb_data['producer'] = $movie->producer();
        $imdb_data['composer'] = $movie->composer();
        $imdb_data['cast'] = $movie->cast();
        $imdb_data['cast'] = array_slice($imdb_data['cast'], 0, 10);
        $imdb_data['genres'] = $movie->genres();
        $imdb_data['plot'] = $movie->plot();
        $imdb_data['plotoutline'] = $movie->plotoutline();
        $imdb_data['trailers'] = $movie->trailers();
        $imdb_data['language'] = $movie->language();
        $imdb_data['rating'] = $movie->rating();
        $imdb_data['title'] = $movie->title();
        $imdb_data['year'] = $movie->year();
        $imdb_data['runtime'] = $movie->runtime();
        $imdb_data['votes'] = $movie->votes();
        $imdb_data['country'] = $movie->country();
        $imdb = array('country' => 'Country', 'director' => 'Directed by', 'writing' => 'Writing by', 'producer' => 'Produced by', 'cast' => 'Cast', 'plot' => 'Description', 'composer' => 'Music', 'genres' => 'All genres', 'plotoutline' => 'Plot outline', 'trailers' => 'Trailers', 'language' => 'Language', 'rating' => 'Rating', 'title' => 'Title', 'year' => 'Year', 'runtime' => 'Runtime', 'votes' => 'Votes');
        foreach ($imdb as $foo => $boo) {
            if (isset($imdb_data[$foo]) && !empty($imdb_data[$foo])) {
                if (!is_array($imdb_data[$foo])) {
                    $imdb_html .= "<span style='font-weight:bold;color:#800517'>" . $boo . ":</span>&nbsp;" . $imdb_data[$foo] . "<br />\n";
예제 #3
0
 $country = $movie->country();
 if (!empty($country)) {
     ++$rows;
     echo '<TR><TD><B>Country:</B></TD><TD>';
     for ($i = 0; $i + 1 < count($country); $i++) {
         echo $country[$i] . ', ';
     }
     echo $country[$i] . "</TD></TR>\n";
 }
 # Genres
 $genre = $movie->genre();
 if (!empty($genre)) {
     echo "<TR><TD><B>Genre:</B></TD><TD>{$genre}</TD></TR>\n";
     ++$rows;
 }
 $gen = $movie->genres();
 if (!empty($gen)) {
     ++$rows;
     echo '<TR><TD><B>All Genres:</B></TD><TD>';
     for ($i = 0; $i + 1 < count($gen); $i++) {
         echo $gen[$i] . ', ';
     }
     echo $gen[$i] . "</TD></TR>\n";
 }
 # Colors
 $col = $movie->colors();
 if (!empty($col)) {
     ++$rows;
     echo '<TR><TD><B>Colors:</B></TD><TD>';
     for ($i = 0; $i + 1 < count($col); $i++) {
         echo $col[$i] . ', ';
예제 #4
0
function getimdb($imdb_id, $cache_stamp, $mode = 'minor')
{
    global $lang_functions;
    global $showextinfo;
    $thenumbers = $imdb_id;
    $movie = new imdb($thenumbers);
    $movieid = $thenumbers;
    $movie->setid($movieid);
    $target = array('Title', 'Credits', 'Plot');
    switch ($movie->cachestate($target)) {
        case "0":
            return false;
            break;
        case "1":
            $title = $movie->title();
            $year = $movie->year();
            $country = $movie->country();
            $countries = "";
            $temp = "";
            for ($i = 0; $i < count($country); $i++) {
                $temp .= "{$country[$i]}, ";
            }
            $countries = rtrim(trim($temp), ",");
            $director = $movie->director();
            $director_or_creator = "";
            if ($director) {
                $temp = "";
                for ($i = 0; $i < count($director); $i++) {
                    $temp .= $director[$i]["name"] . ", ";
                }
                $director_or_creator = "<strong><font color=\"DarkRed\">" . $lang_functions['text_director'] . ": </font></strong>" . rtrim(trim($temp), ",");
            } else {
                //for tv series
                $creator = $movie->creator();
                $director_or_creator = "<strong><font color=\"DarkRed\">" . $lang_functions['text_creator'] . ": </font></strong>" . $creator;
            }
            $cast = $movie->cast();
            $temp = "";
            for ($i = 0; $i < count($cast); $i++) {
                if ($i > 2) {
                    break;
                }
                $temp .= $cast[$i]["name"] . ", ";
            }
            $casts = rtrim(trim($temp), ",");
            $gen = $movie->genres();
            $genres = $gen[0] . (count($gen) > 1 ? ", " . $gen[1] : "");
            //get first two genres;
            $rating = $movie->rating();
            $votes = $movie->votes();
            if ($votes) {
                $imdbrating = "<b>" . $rating . "</b>/10 (" . $votes . $lang_functions['text_votes'] . ")";
            } else {
                $imdbrating = $lang_functions['text_awaiting_five_votes'];
            }
            $tagline = $movie->tagline();
            switch ($mode) {
                case 'minor':
                    $autodata = "<font class=\"big\"><b>" . $title . "</b></font> (" . $year . ") <br /><strong><font color=\"DarkRed\">" . $lang_functions['text_imdb'] . ": </font></strong>" . $imdbrating . " <strong><font color=\"DarkRed\">" . $lang_functions['text_country'] . ": </font></strong>" . $countries . " <strong><font color=\"DarkRed\">" . $lang_functions['text_genres'] . ": </font></strong>" . $genres . "<br />" . $director_or_creator . "<strong><font color=\"DarkRed\"> " . $lang_functions['text_starring'] . ": </font></strong>" . $casts . "<br /><p><strong>" . $tagline . "</strong></p>";
                    break;
                case 'median':
                    if (($photo_url = $movie->photo_localurl()) != FALSE) {
                        $smallth = "<img src=\"" . $photo_url . "\" width=\"105\" alt=\"poster\" />";
                    } else {
                        $smallth = "";
                    }
                    $runtime = $movie->runtime();
                    $language = $movie->language();
                    $plot = $movie->plot();
                    $plots = "";
                    if (count($plot) != 0) {
                        //get plots from plot page
                        $plots .= "<font color=\"DarkRed\">*</font> " . strip_tags($plot[0], '<br /><i>');
                        $plots = mb_substr($plots, 0, 300, "UTF-8") . (mb_strlen($plots, "UTF-8") > 300 ? " ..." : "");
                        $plots .= strpos($plots, "<i>") == true && strpos($plots, "</i>") == false ? "</i>" : "";
                        //sometimes <i> is open and not ended because of mb_substr;
                        $plots = "<font class=\"small\">" . $plots . "</font>";
                    } elseif ($plotoutline = $movie->plotoutline()) {
                        //get plot from title page
                        $plots .= "<font color=\"DarkRed\">*</font> " . strip_tags($plotoutline, '<br /><i>');
                        $plots = mb_substr($plots, 0, 300, "UTF-8") . (mb_strlen($plots, "UTF-8") > 300 ? " ..." : "");
                        $plots .= strpos($plots, "<i>") == true && strpos($plots, "</i>") == false ? "</i>" : "";
                        //sometimes <i> is open and not ended because of mb_substr;
                        $plots = "<font class=\"small\">" . $plots . "</font>";
                    }
                    $autodata = "<table style=\"background-color: transparent;\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\">\n" . ($smallth ? "<td class=\"clear\" valign=\"top\" align=\"right\">\n{$smallth}\n</td>" : "") . "<td class=\"clear\" valign=\"top\" align=\"left\">\n<table style=\"background-color: transparent;\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"350\">\n<tr><td class=\"clear\" colspan=\"2\"><img class=\"imdb\" src=\"pic/trans.gif\" alt=\"imdb\" /> <font class=\"big\"><b>" . $title . "</b></font> (" . $year . ") </td></tr>\n<tr><td class=\"clear\"><strong><font color=\"DarkRed\">" . $lang_functions['text_imdb'] . ": </font></strong>" . $imdbrating . "</td>\n" . ($runtime ? "<td class=\"clear\"><strong><font color=\"DarkRed\">" . $lang_functions['text_runtime'] . ": </font></strong>" . $runtime . $lang_functions['text_min'] . "</td>" : "<td class=\"clear\"></td>") . "</tr>\n<tr><td class=\"clear\"><strong><font color=\"DarkRed\">" . $lang_functions['text_country'] . ": </font></strong>" . $countries . "</td>\n" . ($language ? "<td class=\"clear\"><strong><font color=\"DarkRed\">" . $lang_functions['text_language'] . ": </font></strong>" . $language . "</td>" : "<td class=\"clear\"></td>") . "</tr>\n<tr><td class=\"clear\">" . $director_or_creator . "</td>\n<td class=\"clear\"><strong><font color=\"DarkRed\">" . $lang_functions['text_genres'] . ": </font></strong>" . $genres . "</td></tr>\n<tr><td class=\"clear\" colspan=\"2\"><strong><font color=\"DarkRed\">" . $lang_functions['text_starring'] . ": </font></strong>" . $casts . "</td></tr>\n" . ($plots ? "<tr><td class=\"clear\" colspan=\"2\">" . $plots . "</td></tr>" : "") . "\n</table>\n</td>\n</table>";
                    break;
            }
            return $autodata;
        case "2":
            return false;
            break;
        case "3":
            return false;
            break;
    }
}
예제 #5
0
 function queryItem($search_attributes_r, $s_item_type)
 {
     if (is_array($this->results)) {
         $imdb = $this->results[$search_attributes_r['res_id']];
         unset($this->results);
     } else {
         $imdb = new imdb($search_attributes_r['imdb_id']);
     }
     // WTF?
     $imdb->imdb_utf8recode = get_opendb_config_var('themes', 'charset') == 'utf-8' ? TRUE : FALSE;
     $this->addItemAttribute('title', $imdb->title());
     $this->addItemAttribute('year', $imdb->year());
     foreach ($imdb->alsoknow() as $alt_title) {
         $this->addItemAttribute('alt_title', array($alt_title['country'] => $alt_title['title']));
     }
     if ($imdb->photo()) {
         $this->addItemAttribute('imageurl', $imdb->photo());
     }
     foreach ($imdb->director() as $person) {
         $this->addItemAttribute('director', $person['name']);
     }
     foreach ($imdb->producer() as $person) {
         if (stristr($person['role'], 'executive')) {
             $this->addItemAttribute('exproducer', $person['name']);
         } else {
             $this->addItemAttribute('producer', $person['name']);
         }
     }
     foreach ($imdb->writing() as $person) {
         $this->addItemAttribute('writer', $person['name']);
     }
     foreach ($imdb->composer() as $person) {
         $this->addItemAttribute('composer', $person['name']);
     }
     foreach ($imdb->cast() as $person) {
         $this->addItemAttribute('actors', $person['name']);
     }
     $this->addItemAttribute('genre', $imdb->genres());
     $this->addItemAttribute('imdbrating', $imdb->rating());
     $this->addItemAttribute('run_time', $imdb->runtime());
     $this->addItemAttribute('audio_lang', $imdb->languages());
     $this->addItemAttribute('dvd_audio', $imdb->sound());
     foreach ($imdb->mpaa() as $country => $rating) {
         $country = strtolower($country);
         $this->addItemAttribute($country . '_age_rating', $rating);
     }
     $age_certification_codes_r = $this->getConfigValue('age_certification_codes');
     if (!is_array($age_certification_codes_r) && strlen($age_certification_codes_r) > 0) {
         // single value
         $age_certification_codes_r = array($age_certification_codes_r);
     }
     if (is_array($age_certification_codes_r)) {
         reset($age_certification_codes_r);
         while (list(, $country) = @each($age_certification_codes_r)) {
             $country = strtolower($country);
             $ageRating = $this->getItemAttribute($country . '_age_rating');
             //				echo('<pre>');
             //				print_r($ageRating);
             //				echo('</pre>');
             if ($ageRating !== FALSE) {
                 $this->addItemAttribute('age_rating', $ageRating);
                 break;
                 // found it!
             }
         }
     }
     $this->addItemAttribute('plot', $imdb->plot());
     /** aspect ratio is not supported by imdbphp yet.
     		 * <div class="info">
     		 <h5>Aspect Ratio:</h5>
     		 2.35 : 1 <a class="tn15more inline" href="/rg/title-tease/aspect/title/tt0083944/technical">more</a>
     		 </div>
     		
     		if(preg_match("!<h5>Aspect Ratio:</h5>[\s]*([0-9\.]*)[\s]*:[\s]*([0-9\.]*)!", $pageBuffer, $matches))
     		{
     		    $this->addItemAttribute('ratio', $matches[1]);
     		}*/
     return TRUE;
 }
예제 #6
0
function get_imdb($imdburl)
{
    global $INSTALLER09, $mc1;
    $imdb_info['id'] = $imdb_info['title'] = $imdb_info['orig_title'] = $imdb_info['year'] = $imdb_info['rating'] = $imdb_info['votes'] = $imdb_info['gen'] = $imdb_info['runtime'] = $imdb_info['country'] = $imdb_info['lanuage'] = $imdb_info['director'] = $imdb_info['produce'] = $imdb_info['write'] = $imdb_info['compose'] = $imdb_info['plotoutline'] = $imdb_info['plot'] = $imdb_info['trailers'] = $imdb_info['comment'] = "";
    require_once IMDB_DIR . 'imdb.class.php';
    $rurl = trim($imdburl);
    $thenumbers = ltrim(strrchr($rurl, 'tt'), 'tt');
    $thenumbers = $thenumbers[strlen($thenumbers) - 1] == "/" ? substr($thenumbers, 0, strlen($thenumbers) - 1) : $thenumbers;
    $thenumbers = preg_replace("[^A-Za-z0-9]", "", $thenumbers);
    if (($imdb_info = $mc1->get_value('imdb_info_' . $thenumbers)) === false) {
        $movie = new imdb($thenumbers);
        $movieid = $thenumbers;
        $movie->setid($movieid);
        $cast = $movie->cast();
        $imdb_info['id'] = $movieid;
        $imdb_info['title'] = $movie->title();
        $imdb_info['orig_title'] = $movie->orig_title();
        $imdb_info['year'] = $movie->year();
        $mvotes = $movie->votes();
        $mvrating = $movie->rating();
        if (!empty($mvrating)) {
            $imdb_info['rating'] = "{$mvrating}";
            $imdb_info['votes'] = "{$mvotes}";
        } else {
            $imdb_info['rating'] = "N/A";
        }
        $gen = $movie->genres();
        if (!empty($gen)) {
            //Changed count($gen) for 4 to limit to only two genres to help keep it tidy on site
            for ($i = 0; $i + 1 < count($gen); $i++) {
                $imdb_info['gen'] .= "{$gen[$i]}, ";
            }
            $imdb_info['gen'] .= "{$gen[$i]}";
        } else {
            $imdb_info['gen'] = "None Found";
        }
        $runtime = $movie->runtime();
        if (!empty($runtime)) {
            $imdb_info['runtime'] = "{$runtime}";
        } else {
            $imdb_info['runtime'] = "N/A";
        }
        $country = $movie->country();
        if (!empty($country)) {
            for ($i = 0; $i + 1 < count($country); $i++) {
                $imdb_info['country'] .= "{$country[$i]}, ";
            }
            $imdb_info['country'] .= "{$country[$i]}";
        } else {
            $imdb_info['country'] = "None Available";
        }
        $mvlang = $movie->language();
        if (!empty($mvlang)) {
            $imdb_info['lanuage'] = "{$mvlang}";
        } else {
            $imdb_info['lanuage'] = "None Available";
        }
        $director = $movie->director();
        if (!empty($director)) {
            for ($i = 0; $i < count($director); $i++) {
                $imdb_info['director'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $director[$i]["imdb"] . "" . "\">" . "" . $director[$i]["name"] . "" . "</a>, ";
            }
            $imdb_info['director'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $director[$i]["imdb"] . "" . "\">" . "" . $director[$i]["name"] . "" . "</a> ";
        } else {
            $imdb_info['director'] = "None Available";
        }
        $produce = $movie->producer();
        if (!empty($produce)) {
            for ($i = 0; $i < count($produce); $i++) {
                $imdb_info['produce'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $produce[$i]["imdb"] . "" . " \">" . "" . $produce[$i]["name"] . "" . "</a>,";
            }
            $imdb_info['produce'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $produce[$i]["imdb"] . "" . " \">" . "" . $produce[$i]["name"] . "" . "</a>";
        } else {
            $imdb_info['produce'] = "None Available";
        }
        $write = $movie->writing();
        if (!empty($write)) {
            for ($i = 0; $i < count($write); $i++) {
                $imdb_info['write'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $write[$i]["imdb"] . "" . "\">" . "" . $write[$i]["name"] . "" . "</a>, ";
            }
            $imdb_info['write'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $write[$i]["imdb"] . "" . "\">" . "" . $write[$i]["name"] . "" . "</a> ";
        }
        $compose = $movie->composer();
        if (!empty($compose)) {
            for ($i = 0; $i < count($compose); $i++) {
                $imdb_info['compose'] .= "<a target=\"_blank\" href=\"http://www.imdb.com/name/nm" . "" . $compose[$i]["imdb"] . "" . " \">" . "" . $compose[$i]["name"] . "" . "</a>, ";
            }
        } else {
            $imdb_info['compose'] .= "N/A";
        }
        $plotoutline = $movie->plotoutline();
        if (!empty($plotoutline)) {
            $imdb_info['plotoutline'] = "" . str_replace(array('<p>', '</p>', '<a href="plotsummary">See full summary</a>'), array("", ""), "{$plotoutline}") . "";
        } else {
            $imdb_info['plotoutline'] .= "No Summary Available";
        }
        $plot = $movie->plot();
        if (!empty($plot)) {
            for ($i = 0; $i < count($plot); $i++) {
                $imdb_info['plot'] .= str_replace(array("&", "<p>", "</p>"), array("&amp;", "", ""), "{$plot[$i]}<br /><br />");
            }
        } else {
            $imdb_info['plot'] .= "No Plot Available";
        }
        $trailers = $movie->trailers();
        if (!empty($trailers)) {
            for ($i = 0; $i < count($trailers); $i++) {
                $imdb_info['trailers'] .= "<a href='" . $trailers[$i] . "' title='Trailer' target='_blank'>IMDB Trailer</a><br />";
            }
            $imdb_info['trailers'] .= "<a href='" . $trailers[$i] . "' title='Trailer' target='_blank'>IMDB Trailer</a>";
        } else {
            $imdb_info['trailers'] = "None Available";
        }
        $comment = $movie->comment();
        if (!empty($comment)) {
            $imdb_info['comment'] = "" . str_replace(array("<p>", "</p>", "<br>", "<a></a>"), array("<br />", "<br />", "<br />", ""), "{$comment}") . "";
        } else {
            $imdb_info['comment'] = "No comments available";
        }
        if (($photo_url = $movie->photo_localurl()) != false) {
            $imdb_info['poster'] = $photo_url;
        }
        $mc1->cache_value('imdb_info_' . $thenumbers, $imdb_info, 0);
    }
    return $imdb_info;
}
예제 #7
0
 public static function Step4($modernLanguagesFlipped)
 {
     if (isset($_POST['imdbid']) && is_numeric($_POST['imdbid'])) {
         $movie = new imdb($_POST['imdbid']);
         $movie->setid($_POST['imdbid']);
         $db = new MDB();
         $cast = $movie->cast();
         $i = 0;
         // Insert all castmemebers
         while (list($key, $value) = each($cast)) {
             $db->insertCast($_POST['imdbid'], $value['imdb'], AddMovie::utf8ify($value['name']), ++$i);
             if ($i > MAXNAMES) {
                 break;
             }
         }
         $directors = $movie->director();
         $writers = $movie->writing();
         $producers = $movie->producer();
         $crew = array_merge($directors, $writers, $producers);
         $i = 0;
         // Insert all crewmemebers
         while (list($key, $value) = each($crew)) {
             $db->insertCrew($_POST['imdbid'], $value['imdb'], AddMovie::utf8ify($value['name']), ++$i);
             if ($i > MAXNAMES) {
                 break;
             }
         }
         $genres = implode(',', $movie->genres());
         $year = $movie->year();
         $runtime = $movie->runtime();
         if ($runtime == null) {
             $runtime = 1;
             if (isset($_POST['runtime']) && is_numeric($_POST['runtime'])) {
                 $runtime = $_POST['runtime'];
             }
         }
         $title = AddMovie::utf8ify($movie->title());
         $aka = $movie->alsoknow();
         $englishTitle = '';
         $rating = 1;
         if (is_numeric($_POST['rating'])) {
             $rating = $_POST['rating'];
         }
         if ($_POST['english-title'] != 'none') {
             $englishTitle = AddMovie::utf8ify($aka[$_POST['english-title']]['title']);
             //$englishTitle = trim($englishTitle, 1, strrpos($englishTitle, '"') - 1);
         }
         $language = 'en';
         if (strlen($_POST['language']) == 2) {
             $language = $_POST['language'];
         }
         $success = $db->insertMovie($_POST['imdbid'], $title, $englishTitle, $language, $genres, $year, $runtime, $rating);
         if ($success) {
             header('Location: ./?message=add-success');
         } else {
             header('Location: ./?message=add-error');
         }
         exit;
     } else {
         AddMovie::Step1('invalid-id');
     }
 }