Commit 87dd1bf9 authored by Nico Schallehn's avatar Nico Schallehn

test nfo export

parent 3c8f6280
...@@ -85,7 +85,7 @@ class Media { ...@@ -85,7 +85,7 @@ class Media {
} }
public function filme($action = "einlesen"){ public function filme($action = "einlesen"){
$start = time(); $start = time();
if(in_array($action, array( "einlesen","check", "checkmd5"))){ if(in_array($action, array( "einlesen","check", "checkmd5", "nfo"))){
//var_dump($this->config); //var_dump($this->config);
echo $this->Console->getColoredString("Filme > ".$action, "black", "light_gray") .PHP_EOL; echo $this->Console->getColoredString("Filme > ".$action, "black", "light_gray") .PHP_EOL;
...@@ -121,16 +121,16 @@ class Media { ...@@ -121,16 +121,16 @@ class Media {
$Counter=0; $Counter=0;
//var_dump($FilmeArr); //var_dump($FilmeArr);
foreach ($FilmeArr as $value) { foreach ($FilmeArr as $value) {
$array = $this->parseMovie((($action == "einlesen")?$this->PfadzumEinlesen."/":$this->PfadzumAusgeben."Filme/").(strlen($value[0])>0?$value[0].'/':''), $value[1]); $array = $this->parseMovie((($action == "einlesen")?$this->PfadzumEinlesen."/":$this->PfadzumAusgeben."Filme/").(strlen($value[0])>0?$value[0].'/':''), $value[1],(($action == "nfo")?true:false));
if(($array == false)){ if(($array == false)){
echo $this->Console->getColoredString(" ","black", "red").PHP_EOL; echo $this->Console->getColoredString(" ","black", "red").PHP_EOL;
$fehler = $this->Console->getColoredString("Fehler!","black", "red")." ".$this->PfadzumEinlesen.'/'.(strlen($value[0])>0?$value[0].'/':'').$value[1].PHP_EOL; $fehler = $this->Console->getColoredString("Fehler!","black", "red")." ".$this->PfadzumEinlesen.'/'.(strlen($value[0])>0?$value[0].'/':'').$value[1].PHP_EOL;
echo $fehler; echo $fehler;
$fehlerArr[] = $fehler; $fehlerArr[] = $fehler;
echo $this->Console->getColoredString(" ","black", "red").PHP_EOL; echo $this->Console->getColoredString(" ","black", "red").PHP_EOL;
}else if((file_exists("./phpTestout/".$array['imdbID'].".txt"))){ }/*else if((file_exists("./phpTestout/".$array['imdbID'].".txt"))){
echo $this->Console->getColoredString("Info!","black", "red")."Film wurde bereits verarbeitet!! Bitte Outputfile in 'phpTestout' löschen!".PHP_EOL; echo $this->Console->getColoredString("Info!","black", "red")."Film wurde bereits verarbeitet!! Bitte Outputfile in 'phpTestout' löschen!".PHP_EOL;
}else{ }*/else{
$Pfad = (($action == "einlesen")?$this->PfadzumEinlesen."/":$this->PfadzumAusgeben."Filme/").(strlen($value[0])>0?$value[0].'/':''); $Pfad = (($action == "einlesen")?$this->PfadzumEinlesen."/":$this->PfadzumAusgeben."Filme/").(strlen($value[0])>0?$value[0].'/':'');
$PfadOrg = (strlen($value[0])>0?$value[0].'/':''); $PfadOrg = (strlen($value[0])>0?$value[0].'/':'');
...@@ -167,15 +167,15 @@ class Media { ...@@ -167,15 +167,15 @@ class Media {
}else { }else {
echo " Film wurde nicht Aktualisiert".PHP_EOL; echo " Film wurde nicht Aktualisiert".PHP_EOL;
} }
//NFO
$this->GenerateNFO($array, $Pfad.$FilenameOrg);
}else if($action == "checkmd5"){ }else if($action == "checkmd5"){
if( $this->updateMovie($array, $Pfad.$FilenameOrg, true, true)){ if( $this->updateMovie($array, $Pfad.$FilenameOrg, true, true)){
echo "Film wurde geprüft und Query angelegt".PHP_EOL; echo "Film wurde geprüft und Query angelegt".PHP_EOL;
}else { }else {
echo "Film wurde geprüft, keine Änderung".PHP_EOL; echo "Film wurde geprüft, keine Änderung".PHP_EOL;
} }
}else if($action == "nfo"){
//NFO //NFO
$this->GenerateNFO($array, $Pfad.$FilenameOrg); $this->GenerateNFO($array, $Pfad.$FilenameOrg);
} }
...@@ -307,7 +307,7 @@ class Media { ...@@ -307,7 +307,7 @@ class Media {
} }
//return $counterNotFound; //return $counterNotFound;
} }
private function parseMovie($Pfad, $Filename){ private function parseMovie($Pfad, $Filename, $minimal = false){
/*TODO mehrere Sachen /*TODO mehrere Sachen
* Auf weitere Saplten die für nfo gebraucht werden erweitern * Auf weitere Saplten die für nfo gebraucht werden erweitern
* *
...@@ -348,13 +348,12 @@ class Media { ...@@ -348,13 +348,12 @@ class Media {
$array["name"] = trim(substr($Filename, 0, strripos( $Filename,"("))); $array["name"] = trim(substr($Filename, 0, strripos( $Filename,"(")));
//TODO wird hier nicht gebraucht? //TODO wird hier nicht gebraucht?
//$Endung = trim(substr($Filename,strripos( $Filename,".")+1)); //$Endung = trim(substr($Filename,strripos( $Filename,".")+1));
if(!$minimal){
echo " Hole Daten von imdb... "; echo " Hole Daten von imdb... ";
// Werte aus IMdb Auslesen... // Werte aus IMdb Auslesen...
$imdb = new IMDB("http://www.imdb.com/title/tt".$array["imdbID"]."/"); $imdb = new IMDB("http://www.imdb.com/title/tt".$array["imdbID"]."/");
if ($imdb->isReady) { if ($imdb->isReady) {
echo " done!".PHP_EOL; echo " done!".PHP_EOL;
//var_dump($imdb->getAll());
$array["year"] = $imdb->getYear(); $array["year"] = $imdb->getYear();
$array["size"] = $this->getfileSize($Pfad.$FilenameOrg); $array["size"] = $this->getfileSize($Pfad.$FilenameOrg);
$array["rating"] = $imdb->getRating(); $array["rating"] = $imdb->getRating();
...@@ -369,9 +368,6 @@ class Media { ...@@ -369,9 +368,6 @@ class Media {
file_put_contents("./phpTestout/".$array["imdbID"].".txt", "Keine Infos auf TMDB gefunden: ".$Pfad.$FilenameOrg.PHP_EOL, FILE_APPEND); file_put_contents("./phpTestout/".$array["imdbID"].".txt", "Keine Infos auf TMDB gefunden: ".$Pfad.$FilenameOrg.PHP_EOL, FILE_APPEND);
return false; //TODO Abbruch wenn keine Daten auf TMDB gefunden return false; //TODO Abbruch wenn keine Daten auf TMDB gefunden
} }
} else{ } else{
echo $this->Console->error("imdbID (".$array["imdbID"].") nicht bei imdb gefunden!").PHP_EOL; echo $this->Console->error("imdbID (".$array["imdbID"].") nicht bei imdb gefunden!").PHP_EOL;
file_put_contents("./phpTestout/".$array["imdbID"].".txt", "Keine Infos auf imdbID gefunden: ".$Pfad.$FilenameOrg.PHP_EOL, FILE_APPEND); file_put_contents("./phpTestout/".$array["imdbID"].".txt", "Keine Infos auf imdbID gefunden: ".$Pfad.$FilenameOrg.PHP_EOL, FILE_APPEND);
...@@ -435,6 +431,7 @@ class Media { ...@@ -435,6 +431,7 @@ class Media {
} }
} }
echo " done!".PHP_EOL; echo " done!".PHP_EOL;
}
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
if((($value == 'n/A') OR ($value == false)) AND !($Key = '3d')){ if((($value == 'n/A') OR ($value == false)) AND !($Key = '3d')){
unset($array[$key]); unset($array[$key]);
...@@ -450,40 +447,55 @@ class Media { ...@@ -450,40 +447,55 @@ class Media {
} }
private function GenerateNFO($DataArr, $File){ private function GenerateNFO($DataArr, $File){
$nfoFile = substr($File,0,strripos($File,".")).".nfo"; // Echte NFO Ausgabe Pfad $nfoFile = substr($File,0,strripos($File,".")).".nfo"; // Echte NFO Ausgabe Pfad
$mediaDBurl = "http://mediadb.ivaya.de/api.php?key=".$this->config["ApiKeys"]['MediaDB_Key']."&action=GetDataList&Tabelle=Filme&Spalten=imdbID,name,views,added,lastView,Genre,Schauspieler&imdbID=".$DataArr["imdbID"]; $Query = "SELECT * FROM Filme WHERE imdbID = '".$DataArr['imdbID']."' AND 3d ".(!($DataArr['3d']=="")?"!=":"=").'""';
echo $Query.PHP_EOL;
echo "Generiere NFO Datei ...";
$mysqli = new mysqli($this->config["DB_Server"],$this->config["DB_Username"],$this->config["DB_Passwort"],$this->config["DB_Database"]);
if($mysqli->connect_error != ""){ echo "Mysql-Fehler: ".$mysqli->connect_error.PHP_EOL; return false;}
$mysqli->query("SET NAMES 'utf8'");
$result = $mysqli->query($Query);
if($mysqli->error != ""){ echo "Mysql-Fehler: ".$mysqli->error.PHP_EOL; return false;}
if($result->num_rows==1){
$Film = $result->fetch_assoc();
$mediaDBurl = "http://mediadb.ivaya.de/api.php?key=".$this->config["ApiKeys"]['MediaDB_Key']."&action=GetDataList&Tabelle=Filme&Spalten=imdbID,Genre,Schauspieler&imdbID=".$Film["imdbID"];
//echo $mediaDBurl.PHP_EOL; //echo $mediaDBurl.PHP_EOL;
$mediaDB = $this->jsonCacheDecoder($mediaDBurl); $mediaDB = $this->jsonCacheDecoder($mediaDBurl);
//$nfoFile = str_replace("/media/QNAP/Filme", "./phpTestout", $nfoFile); // nur für Testausgaben drin.... $nfoFile = str_replace("/media/QNAP/Filme", "./phpTestout", $nfoFile); // nur für Testausgaben drin....
$co = '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'.PHP_EOL; $co = '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>'.PHP_EOL;
$co.= '<movie>'.PHP_EOL; $co.= '<movie>'.PHP_EOL;
$co.= ' <title>'.$DataArr['name'].'</title>'.PHP_EOL; $co.= ' <title>'.$Film['name'].'</title>'.PHP_EOL;
//originaltitle //originaltitle
$co.= ' <rating>'.$DataArr['rating'].'</rating>'.PHP_EOL; $co.= ' <rating>'.$Film['rating'].'</rating>'.PHP_EOL;
$co.= ' <year>'.$DataArr['year'].'</year>'.PHP_EOL; $co.= ' <year>'.$Film['year'].'</year>'.PHP_EOL;
$co.= ' <plot>'.$DataArr['summary'].'</plot>'.PHP_EOL; $co.= ' <plot>'.$Film['summary'].'</plot>'.PHP_EOL;
$co.= ' <runtime>'.($DataArr['duration']/60).'</runtime>'.PHP_EOL; $co.= ' <runtime>'.($Film['duration']/60).'</runtime>'.PHP_EOL;
if(file_exists($this->config["CoverDir"]."Filme/full/".$DataArr["imdbID"].".jpg")){ if(file_exists($this->config["CoverDir"]."Filme/full/".$Film["imdbID"].".jpg")){
$co.= ' <thumb aspect="poster" preview="http://mediadb.ivaya.de/cover/Filme/high/'.$DataArr['imdbID'].'.jpg">'. $co.= ' <thumb aspect="poster" preview="http://mediadb.ivaya.de/cover/Filme/high/'.$Film['imdbID'].'.jpg">'.
'http://mediadb.ivaya.de/cover/Filme/high/'.$DataArr['imdbID'].'.jpg</thumb>'.PHP_EOL; 'http://mediadb.ivaya.de/cover/Filme/high/'.$Film['imdbID'].'.jpg</thumb>'.PHP_EOL;
} }
if(file_exists($this->config["CoverDir"]."Filme/background/".$DataArr["imdbID"].".jpg")){ if(file_exists($this->config["CoverDir"]."Filme/background/".$Film["imdbID"].".jpg")){
$co.= ' <fanart>'.PHP_EOL; $co.= ' <fanart>'.PHP_EOL;
$co.= ' <thumb preview="http://mediadb.ivaya.de/cover/Filme/background/'.$DataArr['imdbID'].'.jpg">'. $co.= ' <thumb preview="http://mediadb.ivaya.de/cover/Filme/background/'.$Film['imdbID'].'.jpg">'.
'http://mediadb.ivaya.de/cover/Filme/background/'.$DataArr['imdbID'].'.jpg</thumb>'.PHP_EOL; 'http://mediadb.ivaya.de/cover/Filme/background/'.$Film['imdbID'].'.jpg</thumb>'.PHP_EOL;
$co.= ' </fanart>'.PHP_EOL; $co.= ' </fanart>'.PHP_EOL;
} }
if(isset($DataArr['fsk'])){ if(isset($DataArr['fsk'])){
$co.= ' <mpaa>FSK '.$DataArr['fsk'].'</mpaa>'.PHP_EOL; $co.= ' <mpaa>FSK '.$Film['fsk'].'</mpaa>'.PHP_EOL;
} }
$co.= ' <playcount>'.$mediaDB['Antwort']['Data'][0]['views'].'</playcount>'.PHP_EOL; $co.= ' <playcount>'.$Film['views'].'</playcount>'.PHP_EOL;
$co.= ' <lastplayed>'.$mediaDB['Antwort']['Data'][0]['lastView'].'</lastplayed>'.PHP_EOL; $co.= ' <lastplayed>'.$Film['lastView'].'</lastplayed>'.PHP_EOL;
$co.= ' <id>tt'.$DataArr['imdbID'].'</id>'.PHP_EOL; $co.= ' <id>tt'.$Film['imdbID'].'</id>'.PHP_EOL;
foreach ($mediaDB['Antwort']['Data'][0]['Genre'] as $value) { foreach ($mediaDB['Antwort']['Data'][0]['Genre'] as $value) {
$co.= ' <genre>'.$value.'</genre>'.PHP_EOL; $co.= ' <genre>'.$value.'</genre>'.PHP_EOL;
} }
// <set> **** Filmreihe // <set> **** Filmreihe
if(isset($DataArr['youtube'])){ if(isset($Film['youtube'])){
$youtube = explode(":", $DataArr['youtube']); $youtube = explode(":", $Film['youtube']);
$co.= ' <trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid='.$youtube[1].'</trailer>'.PHP_EOL; $co.= ' <trailer>plugin://plugin.video.youtube/?action=play_video&amp;videoid='.$youtube[1].'</trailer>'.PHP_EOL;
} }
// <fileinfo> ..... // <fileinfo> .....
...@@ -498,12 +510,14 @@ class Media { ...@@ -498,12 +510,14 @@ class Media {
} }
$co.= ' <dateadded>'.$mediaDB['Antwort']['Data'][0]['added'].'</dateadded>'.PHP_EOL; $co.= ' <dateadded>'.$Film['added'].'</dateadded>'.PHP_EOL;
$co.= '</movie>'.PHP_EOL; $co.= '</movie>'.PHP_EOL;
file_put_contents($nfoFile, $co); file_put_contents($nfoFile, $co);
echo " Fertig, in Datei $nfoFile wurde geschrieben".PHP_EOL; echo " Done!!".PHP_EOL;
}
} }
private function updateMovie($DataArr, $File, $md5 = true, $CheckOnly=true){ private function updateMovie($DataArr, $File, $md5 = true, $CheckOnly=true){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment