Commit 1dcb0b4f authored by ivaya's avatar ivaya

Viele Kleine Änderungen:

parent 64785634
......@@ -121,7 +121,7 @@ class Media {
$Counter=0;
//var_dump($FilmeArr);
foreach ($FilmeArr as $value) {
$array = $this->parseMovie((($action == "einlesen")?$this->PfadzumEinlesen."/":$this->PfadzumAusgeben."Filme/").(strlen($value[0])>0?$value[0].'/':''), $value[1],(($action == "nfo")?true:false));
$array = $this->parseMovie((($action == "einlesen")?$this->PfadzumEinlesen."/":$this->PfadzumAusgeben."Filme/").(strlen($value[0])>0?$value[0].'/':''), $value[1],$action);
if(($array == false)){
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;
......@@ -266,18 +266,15 @@ class Media {
echo " fail1!".PHP_EOL;
return false;
}
}
}
/**
* @param imdb
* @param fehler
* @return die FSK oder false
*/private function gibFSK($imdb, $imdbID, &$fehler = "") {
$fsktemp = $imdb->getCertification();
$fskbool= false;
if(!(strpos( $fsktemp,"Germany") === false)){
$fsk = trim(substr($fsktemp,strpos( $fsktemp,"Germany")+8,2));
if($fsk == "No"){
......@@ -308,7 +305,7 @@ class Media {
}
//return $counterNotFound;
}
private function parseMovie($Pfad, $Filename, $minimal = false){
private function parseMovie($Pfad, $Filename, $minimal = "nfo"){
/*TODO mehrere Sachen
* Auf weitere Saplten die für nfo gebraucht werden erweitern
*
......@@ -349,89 +346,92 @@ class Media {
$array["name"] = trim(substr($Filename, 0, strripos( $Filename,"(")));
//TODO wird hier nicht gebraucht?
//$Endung = trim(substr($Filename,strripos( $Filename,".")+1));
if(!$minimal){
echo " Hole Daten von imdb... ";
// Werte aus IMdb Auslesen...
$imdb = new IMDB("http://www.imdb.com/title/tt".$array["imdbID"]."/");
if ($imdb->isReady) {
echo " done!".PHP_EOL;
$array["year"] = $imdb->getYear();
$array["size"] = $this->getfileSize($Pfad.$FilenameOrg);
$array["rating"] = $imdb->getRating();
$array["Genre"] = $imdb->getGenre();
$array["Schauspieler"] = $imdb->getCastAsOwn(0, false);
$array["fsk"] = $this->gibFSK ($imdb,$array["imdbID"]);
if ($array["fsk"] == false){
unset($array["fsk"]);
}
if(!$this->gibTMDBdata ( $array["imdbID"], $array)){
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
if(!($minimal =="nfo")){
if(($minimal =="check") OR ($minimal =="einlesen")){
echo " Hole Daten von imdb... ";
// Werte aus IMdb Auslesen...
$imdb = new IMDB("http://www.imdb.com/title/tt".$array["imdbID"]."/");
if ($imdb->isReady) {
echo " done!".PHP_EOL;
$array["year"] = $imdb->getYear();
$array["size"] = $this->getfileSize($Pfad.$FilenameOrg);
$array["rating"] = $imdb->getRating();
$array["Genre"] = $imdb->getGenre();
$array["Schauspieler"] = $imdb->getCastAsOwn(0, false);
$array["fsk"] = $this->gibFSK ($imdb,$array["imdbID"]);
if ($array["fsk"] == false){
unset($array["fsk"]);
}
if(!$this->gibTMDBdata ( $array["imdbID"], $array)){
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
}
} else{
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);
return false;
}
} else{
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);
return false;
}
// werte von MediaInfo holen...
echo " Hole Daten von mediainfo... ";
if(!file_exists('/tmp/'.$array["imdbID"].'.xml')){
$befehl = 'mediainfo --Output=XML "'.$Pfad.$FilenameOrg.'" > /tmp/'.$array["imdbID"].'.xml';
exec($befehl);
}
$xmlstring = file_get_contents('/tmp/'.$array["imdbID"].'.xml');
$xml = simplexml_load_string($xmlstring);
$json = json_encode($xml,JSON_PRETTY_PRINT);
$array2 = json_decode($json,TRUE);
foreach ($array2["File"]["track"] as $key => $value) {
//echo " ".$key." ".$value["@attributes"]["type"].PHP_EOL;
switch ($value["@attributes"]["type"]) {
case "General":
$array["vcodec"] = str_replace("Matroska", "mkv", $value["Format"]);
$array["duration"] = $this->getRunTime($value["Duration"]);
$array["totalbitrate"] = round(trim(str_replace(" ", "",str_replace("Mbps", "", $value["Overall_bit_rate"])))*1024,0);
break;
case "Video":
$array["width"] = trim(str_replace(" ", "",str_replace("pixels", "",$value["Width"])));
//TODO Resolution aus diesen werten neusetzen
$array["height"] = trim(str_replace(" ", "",str_replace("pixels", "",$value["Height"])));
break;
case "Audio":
if(isset($value["Language"])){
if(($value["Language"] == "Deutsch") OR ($value["Language"] == "German")){
$array["acodecger"] = $value["Format"];
$array["abitrateger"] = round(trim(str_replace(" ", "",str_replace("Kbps", "",$value["Bit_rate"]))),0);
$array["channelsger"] = str_replace(" channels", "",$value["Channel_s_"]);
if(!is_numeric($array["channelsger"])){
$array["channelsger"] = substr($array["channelsger"],strripos( $array["channelsger"],"/")+1);
if(($minimal =="checkmd5") OR ($minimal =="einlesen")){
// werte von MediaInfo holen...
echo " Hole Daten von mediainfo... ";
if(!file_exists('/tmp/'.$array["imdbID"].'.xml')){
$befehl = 'mediainfo --Output=XML "'.$Pfad.$FilenameOrg.'" > /tmp/'.$array["imdbID"].'.xml';
exec($befehl);
}
$xmlstring = file_get_contents('/tmp/'.$array["imdbID"].'.xml');
$xml = simplexml_load_string($xmlstring);
$json = json_encode($xml,JSON_PRETTY_PRINT);
$array2 = json_decode($json,TRUE);
foreach ($array2["File"]["track"] as $key => $value) {
//echo " ".$key." ".$value["@attributes"]["type"].PHP_EOL;
switch ($value["@attributes"]["type"]) {
case "General":
$array["vcodec"] = str_replace("Matroska", "mkv", $value["Format"]);
$array["duration"] = $this->getRunTime($value["Duration"]);
$array["totalbitrate"] = round(trim(str_replace(" ", "",str_replace("Mbps", "", $value["Overall_bit_rate"])))*1024,0);
break;
case "Video":
$array["width"] = trim(str_replace(" ", "",str_replace("pixels", "",$value["Width"])));
//TODO Resolution aus diesen werten neusetzen
$array["height"] = trim(str_replace(" ", "",str_replace("pixels", "",$value["Height"])));
break;
case "Audio":
if(isset($value["Language"])){
if(($value["Language"] == "Deutsch") OR ($value["Language"] == "German")){
$array["acodecger"] = $value["Format"];
$array["abitrateger"] = round(trim(str_replace(" ", "",str_replace("Kbps", "",$value["Bit_rate"]))),0);
$array["channelsger"] = str_replace(" channels", "",$value["Channel_s_"]);
if(!is_numeric($array["channelsger"])){
echo $this->Console->error("channelsger ist nicht Numerisch!").PHP_EOL;
file_put_contents("./phpTestout/".$array["imdbID"].".txt", "channelsger ist nicht Numerisch!".PHP_EOL, FILE_APPEND);
return false;
$array["channelsger"] = substr($array["channelsger"],strripos( $array["channelsger"],"/")+1);
if(!is_numeric($array["channelsger"])){
echo $this->Console->error("channelsger ist nicht Numerisch!").PHP_EOL;
file_put_contents("./phpTestout/".$array["imdbID"].".txt", "channelsger ist nicht Numerisch!".PHP_EOL, FILE_APPEND);
return false;
}
}
}
}
else if(($value["Language"] == "Englisch") OR ($value["Language"] == "English")){
$array["acodeceng"] = $value["Format"];
$array["abitrateeng"] = round(trim(str_replace(" ", "",str_replace("Kbps", "",$value["Bit_rate"]))),0);
$array["channelseng"] = str_replace(" channels", "",$value["Channel_s_"]);
if(!is_numeric($array["channelseng"])){
$array["channelseng"] = substr($array["channelseng"],strripos( $array["channelseng"],"/")+1);
else if(($value["Language"] == "Englisch") OR ($value["Language"] == "English")){
$array["acodeceng"] = $value["Format"];
$array["abitrateeng"] = round(trim(str_replace(" ", "",str_replace("Kbps", "",$value["Bit_rate"]))),0);
$array["channelseng"] = str_replace(" channels", "",$value["Channel_s_"]);
if(!is_numeric($array["channelseng"])){
echo $this->Console->error("channelseng ist nicht Numerisch!").PHP_EOL;
file_put_contents("./phpTestout/".$array["imdbID"].".txt", "channelseng ist nicht Numerisch!".PHP_EOL, FILE_APPEND);
return false;
$array["channelseng"] = substr($array["channelseng"],strripos( $array["channelseng"],"/")+1);
if(!is_numeric($array["channelseng"])){
echo $this->Console->error("channelseng ist nicht Numerisch!").PHP_EOL;
file_put_contents("./phpTestout/".$array["imdbID"].".txt", "channelseng ist nicht Numerisch!".PHP_EOL, FILE_APPEND);
return false;
}
}
}
}
}
break;
break;
}
}
echo " done!".PHP_EOL;
}
echo " done!".PHP_EOL;
}
foreach ($array as $key => $value) {
if((($value == 'n/A') OR ($value == false)) AND !($Key = '3d')){
......@@ -547,13 +547,14 @@ class Media {
echo " Berechne MD5... ";
$DataArr["md5"] = substr(shell_exec('md5sum -b "'.$File.'"'),0,32);
file_put_contents("./phpTestout/".$DataArr['imdbID'].".txt", "md5 = ".$DataArr["md5"].PHP_EOL, FILE_APPEND);
$DataArr["lastUpdate"] = date("Y-m-d");
echo " done!".PHP_EOL;
}
$changed = "";
$first = true;
$update = "";
$DataArr["lastUpdate"] = date("Y-m-d");
foreach ($DataArr AS $key=> $value){
if(!in_array($key, array("Schauspieler", "Genre", "3d")) AND !in_array($value,array("n/A", ""))){
if(!(md5(trim($Film[$key])) == md5(trim($DataArr[$key])))) {
......@@ -624,6 +625,7 @@ class Media {
echo " Berechne MD5... ";
$DataArr["md5"] = substr(shell_exec('md5sum -b "'.$File.'"'),0,32);
file_put_contents("./phpTestout/".$DataArr['imdbID'].".txt", "md5 = ".$DataArr["md5"].PHP_EOL, FILE_APPEND);
$DataArr["lastUpdate"] = date("Y-m-d");
echo " done!".PHP_EOL;
}
......@@ -750,12 +752,21 @@ class Media {
}
private function jsonCacheDecoder($url){
$CacheFolderName = "JsonCache/";
exec("rm ".$CacheFolderName.date("y-W_",time()-14*24*3600)."* > /dev/null 2>&1");
exec("rm ".$CacheFolderName.date("y-W_",time()-7*24*3600)."* > /dev/null 2>&1");
$files = glob($CacheFolderName."*");
$now = time();
foreach ($files as $file){
if (is_file($file)){
if ($now - filemtime($file) >= 60 * 60 * 24 * 1) {
unlink($file);
}
}
}
if(!is_dir($CacheFolderName)){
exec( "mkdir ".$CacheFolderName);
}
$filename= date("y-W_",time()).md5($url).".json"; //TODO Cachetime Ändern
$filename= md5($url).".json"; //TODO Cachetime Ändern
if(!file_exists($CacheFolderName.$filename)){
file_put_contents($CacheFolderName.$filename, file_get_contents($url));
}
......
  • u.a. Anpassung für Online und Offline Update (eimal Dateien neu einlesen) und nur online kram neu lesen

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