Commit 2cb4ca81 authored by Nico Schallehn's avatar Nico Schallehn

Start Aufräumen

parent 64b0a0e2
(in Arbeit) 0.06
- Web: Feature: Rechteverwaltung Implementiert
- API: Feature: Vorbereitung auf Rechte aus JSON Datei.
- API: CodeClean: Nicht benutztes Rechtesystem für Filterlisten entfernt
- API: CodeClean: Reduziere Code von 712 Zeilen auf
2016-02-12 0.05 2016-02-12 0.05
- Debugarrays werden nur noch ausgegeben wenn für das Rechte level das Recht gesetzt ist - Debugarrays werden nur noch ausgegeben wenn für das Rechte level das Recht gesetzt ist
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* Konfig: * Konfig:
*/ */
define(API_KEY_LEN, 10); define(API_KEY_LEN, 10);
define(API_VERSION, 0.05); define(API_VERSION, 0.06);
define(API_KEY_DB, "/var/www/mediadb.ivaya.de/Key.sqlite"); define(API_KEY_DB, "/var/www/mediadb.ivaya.de/Key.sqlite");
define(API_Rights, "/var/www/mediadb.ivaya.de/Rights.json"); define(API_Rights, "/var/www/mediadb.ivaya.de/Rights.json");
...@@ -17,7 +17,6 @@ if (!isset($_GET['Pretty'])) { ...@@ -17,7 +17,6 @@ if (!isset($_GET['Pretty'])) {
error_reporting(0); error_reporting(0);
} }
class MediaDBAPI{ class MediaDBAPI{
private $API_KEY; private $API_KEY;
private $API_Rechte; private $API_Rechte;
...@@ -246,16 +245,9 @@ class MediaDBAPI{ ...@@ -246,16 +245,9 @@ class MediaDBAPI{
$Where .= (($first?"":" AND ").$Suche); $Where .= (($first?"":" AND ").$Suche);
$first = false; $first = false;
} }
//TODO youtube Filter einbauen!!
// größergleich oder kleinergleich Filter: // größergleich oder kleinergleich Filter:
foreach ($this->FilterKomplex as $key => $value) { foreach ($this->FilterKomplex as $key => $value) {
//echo "Ist $key in: FilterKomp?".PHP_EOL; if(isset($GET_arr[$key]) ){
//var_dump($this->FilterKomp);
//echo (array_key_exists($key, $this->FilterKomp)?"Ja":"Nein").PHP_EOL;
if(isset($GET_arr[$key]) ){ //AND array_key_exists($key, $this->FilterKomp)){ //TODO Rechte einbauen!!!
//echo "Inside".PHP_EOL;
if ((substr($GET_arr[$key],0,1) == "<") OR (substr($GET_arr[$key],0,1) == ">") OR !strpos($GET_arr[$key], ",")) { if ((substr($GET_arr[$key],0,1) == "<") OR (substr($GET_arr[$key],0,1) == ">") OR !strpos($GET_arr[$key], ",")) {
// Kleiner oder Größer und kein Komma! // Kleiner oder Größer und kein Komma!
$Number = str_replace(">", "", $GET_arr[$key]); $Number = str_replace(">", "", $GET_arr[$key]);
...@@ -263,8 +255,8 @@ class MediaDBAPI{ ...@@ -263,8 +255,8 @@ class MediaDBAPI{
$Where .= ($first?"":" AND ").$value.' '.((substr($GET_arr[$key],0,1) == ">")?">":"").((substr($GET_arr[$key],0,1) == "<")?"<":"").'="'.$Number.'"'; $Where .= ($first?"":" AND ").$value.' '.((substr($GET_arr[$key],0,1) == ">")?">":"").((substr($GET_arr[$key],0,1) == "<")?"<":"").'="'.$Number.'"';
$first = false; $first = false;
}else if(strpos($GET_arr[$key], ",")>0){ }else if(strpos($GET_arr[$key], ",")>0){
// Bereich angegeben
$NumberArr = explode(",", $GET_arr[$key]); $NumberArr = explode(",", $GET_arr[$key]);
//var_dump($NumberArr);
$Where .= ($first?"":" AND ").$value.' >="'.$NumberArr[0].'"'; $Where .= ($first?"":" AND ").$value.' >="'.$NumberArr[0].'"';
$first = false; $first = false;
$Where .= ($first?"":" AND ").$value.' <="'.$NumberArr[1].'"'; $Where .= ($first?"":" AND ").$value.' <="'.$NumberArr[1].'"';
...@@ -340,7 +332,7 @@ class MediaDBAPI{ ...@@ -340,7 +332,7 @@ class MediaDBAPI{
} }
} }
// Sonderlösung für nur imdbID // Sonderlösung für nur imdbID (wird für den Coverdownload benötigt)
if($GET_arr['Spalten'] == "imdbID"){ if($GET_arr['Spalten'] == "imdbID"){
$Group = "GROUP BY imdbID"; $Group = "GROUP BY imdbID";
} }
...@@ -356,35 +348,26 @@ class MediaDBAPI{ ...@@ -356,35 +348,26 @@ class MediaDBAPI{
//Spalten entfernen worauf keine Rechte sind... //Spalten entfernen worauf keine Rechte sind...
$first = true; $first = true;
$Spalten = ""; $Spalten = "";
if($GET_arr["Tabelle"] == "Episoden"){ if($GET_arr["Tabelle"] == "Episoden"){
foreach ($SpaltenArr as $value) { foreach ($SpaltenArr as $value) {
//var_dump($this->SpaltenEpi); //var_dump($this->SpaltenEpi);
if(!(in_array($value, $this->SpaltenEpi)==1)){ if(!(in_array($value, $this->SpaltenEpi)==1)){
//echo "Lösche: ".$value.PHP_EOL; //echo "Lösche: ".$value.PHP_EOL;
unset($SpaltenArr[$value]); unset($SpaltenArr[$value]);
}else{ }else{
//echo "behalte: ".$value.PHP_EOL; //echo "behalte: ".$value.PHP_EOL;
$Spalten .= ($first?"":",").$value; $Spalten .= ($first?"":",").$value;
$first = false; $first = false;
} }
} }
}else if( $GET_arr["Tabelle"] == "Filme"){ }else if( $GET_arr["Tabelle"] == "Filme"){
foreach ($SpaltenArr as $value) { foreach ($SpaltenArr as $value) {
//var_dump($this->SpaltenEpisoden); //var_dump($this->SpaltenEpisoden);
if(!(in_array($value, $this->SpaltenFil)==1)){ if(!(in_array($value, $this->SpaltenFil)==1)){
//echo "Lösche: ".$value.PHP_EOL; //echo "Lösche: ".$value.PHP_EOL;
unset($SpaltenArr[$value]); unset($SpaltenArr[$value]);
}else{ }else{
//echo "behalte: ".$value.PHP_EOL; //echo "behalte: ".$value.PHP_EOL;
$Spalten .= ($first?"":",").$value; $Spalten .= ($first?"":",").$value;
$first = false; $first = false;
} }
...@@ -393,7 +376,6 @@ class MediaDBAPI{ ...@@ -393,7 +376,6 @@ class MediaDBAPI{
else { else {
$Spalten = $GET_arr['Spalten']; $Spalten = $GET_arr['Spalten'];
} }
//echo $Spalten.PHP_EOL;
// Lösche Schauspieler und Genre aus der Select Anweisung // Lösche Schauspieler und Genre aus der Select Anweisung
$Spalten = str_replace("Genre,", "", $Spalten); $Spalten = str_replace("Genre,", "", $Spalten);
...@@ -406,10 +388,9 @@ class MediaDBAPI{ ...@@ -406,10 +388,9 @@ class MediaDBAPI{
$Spalten = str_replace(",Statistik", "", $Spalten); $Spalten = str_replace(",Statistik", "", $Spalten);
$Spalten = str_replace("Statistik", "", $Spalten); $Spalten = str_replace("Statistik", "", $Spalten);
/* wenn Genre oder Schauspieler gefordert sind, aber die imdbID nicht in der Spaltenliste ist... */ /* wenn Genre oder Schauspieler gefordert sind, aber die imdbID nicht in der Spaltenliste ist... */
$NoimdbID = false; $NoimdbID = false;
if((($ListGenre OR $ListSchauspieler) AND !in_array("imdbID", $SpaltenArr) )){ //AND ($this->iset($GET_arr['Spalten'], "*") != "*" ) if((($ListGenre OR $ListSchauspieler) AND !in_array("imdbID", $SpaltenArr) )){
$Select = "imdbID,".$Spalten; $Select = "imdbID,".$Spalten;
$NoimdbID = true; $NoimdbID = true;
}else{ }else{
...@@ -417,21 +398,12 @@ class MediaDBAPI{ ...@@ -417,21 +398,12 @@ class MediaDBAPI{
} }
$Noseries_nr = false; $Noseries_nr = false;
if((($Statistik) AND !in_array("series_nr", $SpaltenArr) )){ //AND ($this->iset($GET_arr['Spalten'], "*") != "*" ) if((($Statistik) AND !in_array("series_nr", $SpaltenArr) )){
$Select = "series_nr,".$Spalten; $Select = "series_nr,".$Spalten;
$NoimdbID = true; $NoimdbID = true;
}else{ }else{
$Select = $Spalten; $Select = $Spalten;
} }
/*
$Noseason_nr = false;
if((($Statistik) AND !in_array("season_nr", $SpaltenArr) AND ($this->iset($GET_arr['Spalten'], "*") != "*" ))){
$Select = "season_nr,".$GET_arr['Spalten'];
$NoimdbID = true;
}else{
$Select = $this->iset($GET_arr['Spalten'], "*");
}
*/
$Query= "SELECT ".$Select. $Query= "SELECT ".$Select.
" FROM ".$GET_arr['Tabelle']." " " FROM ".$GET_arr['Tabelle']." "
.(strlen($Where)<=6?"":$Where) .(strlen($Where)<=6?"":$Where)
...@@ -447,12 +419,10 @@ class MediaDBAPI{ ...@@ -447,12 +419,10 @@ class MediaDBAPI{
array_push($TitelArray, $val->name); array_push($TitelArray, $val->name);
} }
$entryArray = array(); $entryArray = array();
while($entry = $entrys->fetch_array()){ while($entry = $entrys->fetch_array()){
$tempArray = array(); $tempArray = array();
foreach ($finfo as $val) { foreach ($finfo as $val) {
if(!(($val->name == "imdbID") AND $NoimdbID)){ if(!(($val->name == "imdbID") AND $NoimdbID)){
//$tempArray[$val->name] = utf8_encode(($entry[$val->name] == NULL?"":$entry[$val->name]));//$entry[$val->name]); //($entry[$val->name] == null?"":$entry[$val->name])
$tempArray[$val->name] = ($entry[$val->name] == NULL?"":$entry[$val->name]); $tempArray[$val->name] = ($entry[$val->name] == NULL?"":$entry[$val->name]);
} }
} }
...@@ -474,33 +444,18 @@ class MediaDBAPI{ ...@@ -474,33 +444,18 @@ class MediaDBAPI{
} }
if ($Statistik == true) { if ($Statistik == true) {
if (($GET_arr['Tabelle'] == "Staffeln")) { //TODO hier ist auch was geändert aber noch nicht getestet!! if (($GET_arr['Tabelle'] == "Staffeln")) { //TODO hier ist auch was geändert aber noch nicht getestet!!
//var_dump($this->SpaltenEpi);
$Query = 'SELECT '. $Query = 'SELECT '.
(in_array("checked", $this->SpaltenEpi)==1?'avg(e.checked) AS Checked,':'').' '. (in_array("checked", $this->SpaltenEpi)==1?'avg(e.checked) AS Checked,':'').' '.
(in_array("views", $this->SpaltenEpi)==1?'avg(e.views) AS Views,':'').' '. (in_array("views", $this->SpaltenEpi)==1?'avg(e.views) AS Views,':'').' '.
(in_array("size", $this->SpaltenEpi)==1?'SUM(e.size) AS Size,':'').' SUM(e.duration) AS Duration, COUNT(e.name) AS Count '. (in_array("size", $this->SpaltenEpi)==1?'SUM(e.size) AS Size,':'').' SUM(e.duration) AS Duration, COUNT(e.name) AS Count '.
'FROM Staffeln AS s JOIN Episoden AS e ON s.season_nr = e.season_nr '. 'FROM Staffeln AS s JOIN Episoden AS e ON s.season_nr = e.season_nr '.
'WHERE s.season_nr = '.$entry["season_nr"]; 'WHERE s.season_nr = '.$entry["season_nr"];
/*$result = $this->query($Query);
if($this->DB_Objekt->error != ""){ return $this->error(1005, $this->DB_Objekt->error);}
$resultArr = $result->fetch_array();
$tempArray["Checked"] = ($resultArr["Checked"]== null?"":$resultArr["Checked"]);
$tempArray["Views"] = ($resultArr["Views"] == null?0:$resultArr["Views"]);
$tempArray["Size"] = ($resultArr["Size"] == null?0:$resultArr["Size"]);
$tempArray["Duration"] = ($resultArr["Duration"] == null?0:$resultArr["Duration"]);
$tempArray["Count"] = ($resultArr["Count"] == null?0:$resultArr["Count"]);*/
}else if (($GET_arr['Tabelle'] == "Serien")){ }else if (($GET_arr['Tabelle'] == "Serien")){
$Query = 'SELECT '.(in_array("checked", $this->SpaltenEpi)==1?'avg(e.checked) AS Checked,':'').' '.
//JETZT
//var_dump( $this->SpaltenEpi);
/*echo in_array("checked", $this->SpaltenEpi).PHP_EOL;
echo in_array("views", $this->SpaltenEpi).PHP_EOL;
*/$Query = 'SELECT '.(in_array("checked", $this->SpaltenEpi)==1?'avg(e.checked) AS Checked,':'').' '.
(in_array("views", $this->SpaltenEpi)==1?'avg(e.views) AS Views,':'').' '. (in_array("views", $this->SpaltenEpi)==1?'avg(e.views) AS Views,':'').' '.
(in_array("size", $this->SpaltenEpi)==1?'SUM(e.size) AS Size,':'').' SUM(e.duration) AS Duration, COUNT(e.name) AS Count '. (in_array("size", $this->SpaltenEpi)==1?'SUM(e.size) AS Size,':'').' SUM(e.duration) AS Duration, COUNT(e.name) AS Count '.
'FROM Serien AS se JOIN Staffeln AS st ON se.series_nr=st.series_nr JOIN Episoden AS e ON st.season_nr = e.season_nr '. 'FROM Serien AS se JOIN Staffeln AS st ON se.series_nr=st.series_nr JOIN Episoden AS e ON st.season_nr = e.season_nr '.
'WHERE se.series_nr = '.$entry["series_nr"]; 'WHERE se.series_nr = '.$entry["series_nr"];
} }
$result = $this->query($Query); $result = $this->query($Query);
if($this->DB_Objekt->error != ""){ return $this->error(1005, $this->DB_Objekt->error);} if($this->DB_Objekt->error != ""){ return $this->error(1005, $this->DB_Objekt->error);}
...@@ -529,46 +484,41 @@ class MediaDBAPI{ ...@@ -529,46 +484,41 @@ class MediaDBAPI{
public function API_SetData($GET_arr, $POST_arr =""){ public function API_SetData($GET_arr, $POST_arr =""){
if( ($this->Update)){ if( ($this->Update)){
if(isset($GET_arr["Tabelle"])){ if(isset($GET_arr["Tabelle"])){
if((isset($POST_arr["imdbID"]) AND isset($POST_arr["3d"]) AND ($GET_arr["Tabelle"] == "Filme")) OR
if((isset($POST_arr["imdbID"]) AND isset($POST_arr["3d"]) AND ($GET_arr["Tabelle"] == "Filme")) OR (isset($POST_arr["season_nr"]) AND isset($POST_arr["episodenumber"]) AND ($GET_arr["Tabelle"] == "Episoden"))){
(isset($POST_arr["season_nr"]) AND isset($POST_arr["episodenumber"]) AND ($GET_arr["Tabelle"] == "Episoden"))){ if(($GET_arr["Tabelle"] == "Filme")){
//UPDATE ".$GET_arr["Tabelle"]." WHERE imdbID = ".$POST_arr["imdbID"]; $Where = "WHERE imdbID = '".$POST_arr["imdbID"]."' AND `3d` = '".$POST_arr["3d"]."'";
}elseif(($GET_arr["Tabelle"] == "Episoden")){
if(($GET_arr["Tabelle"] == "Filme")){ $Where = "WHERE season_nr = '".$POST_arr["season_nr"]."' AND `episodenumber` = '".$POST_arr["episodenumber"]."'";
$Where = "WHERE imdbID = '".$POST_arr["imdbID"]."' AND `3d` = '".$POST_arr["3d"]."'";
}elseif(($GET_arr["Tabelle"] == "Episoden")){
$Where = "WHERE season_nr = '".$POST_arr["season_nr"]."' AND `episodenumber` = '".$POST_arr["episodenumber"]."'";
}
$Set = "SET ";
$first = true;
if(isset($POST_arr["Gesehen"])){ //AND is_numeric($GET_arr[$key])
$Set .= ($first?"":" , ")."views = views+".$POST_arr["Gesehen"];
$first = false;
}
if(isset($POST_arr["checked"])){ //AND is_numeric($GET_arr[$key])
$Set .= ($first?"":" , ")."checked = '".$POST_arr["checked"]."'";
$first = false;
}
if(isset($POST_arr["comment"])){ //AND is_numeric($GET_arr[$key])
$Set .= ($first?"":" , ")."comment = '".$POST_arr["comment"]."'";
$first = false;
}
if($first){// Fehler...
return $this->error(1004, "Mindestens einer der folgenden Paramter war erwartet = Gesehen, checked, comment!");
}else{
$Query = "UPDATE ".$GET_arr["Tabelle"]." ".$Set." ".$Where.";";
$result = $this->query($Query);
if($this->DB_Objekt->error != ""){ return $this->error(1005, $this->DB_Objekt->error);}
return $this->error(1008, ($Query)); //utf8_encode
}
}
else {
return $this->error(1004, "Erwartet war Tabelle=(Filme und imdbID, 3d) ODER (Episoden und season_nr,episodenumber) ODER (Staffeln und season_nr)!");
} }
$Set = "SET ";
$first = true;
if(isset($POST_arr["Gesehen"])){ //AND is_numeric($GET_arr[$key])
$Set .= ($first?"":" , ")."views = views+".$POST_arr["Gesehen"];
$first = false;
}
if(isset($POST_arr["checked"])){ //AND is_numeric($GET_arr[$key])
$Set .= ($first?"":" , ")."checked = '".$POST_arr["checked"]."'";
$first = false;
}
if(isset($POST_arr["comment"])){ //AND is_numeric($GET_arr[$key])
$Set .= ($first?"":" , ")."comment = '".$POST_arr["comment"]."'";
$first = false;
}
if($first){// Fehler...
return $this->error(1004, "Mindestens einer der folgenden Paramter war erwartet = Gesehen, checked, comment!");
}else{
$Query = "UPDATE ".$GET_arr["Tabelle"]." ".$Set." ".$Where.";";
$result = $this->query($Query);
if($this->DB_Objekt->error != ""){ return $this->error(1005, $this->DB_Objekt->error);}
return $this->error(1008,$Query);
}
}
else {
return $this->error(1004, "Erwartet war Tabelle=(Filme und imdbID, 3d) ODER (Episoden und season_nr,episodenumber) ODER (Staffeln und season_nr)!");
}
} }
else { else {
return $this->error(1004, "Erwartet war Tabelle!"); return $this->error(1004, "Erwartet war Tabelle!");
...@@ -631,7 +581,6 @@ class MediaDBAPI{ ...@@ -631,7 +581,6 @@ class MediaDBAPI{
echo (strpos($_SERVER["HTTP_USER_AGENT"], "Android")==0?$Output."\r\n":""); echo (strpos($_SERVER["HTTP_USER_AGENT"], "Android")==0?$Output."\r\n":"");
} }
private function query($Query){ private function query($Query){
//$this->Statistik["QueryCounter"]++;
$ret = $this->DB_Objekt->query($Query); $ret = $this->DB_Objekt->query($Query);
$this->Querys[$this->Statistik["QueryCounter"]++]= array( "Query" => ($Query), $this->Querys[$this->Statistik["QueryCounter"]++]= array( "Query" => ($Query),
"MySQLnum_rows" => $ret->num_rows, "MySQLnum_rows" => $ret->num_rows,
...@@ -659,8 +608,6 @@ class MediaDBAPI{ ...@@ -659,8 +608,6 @@ class MediaDBAPI{
); );
} }
$this->DB_Objekt->close(); $this->DB_Objekt->close();
//"Statistik" => $Statistik
//TODO Statistikausgabe nur mit rechten!!
} }
public function error($ErrID, $Description = ""){ public function error($ErrID, $Description = ""){
switch ($ErrID) { switch ($ErrID) {
...@@ -708,4 +655,4 @@ class MediaDBAPI{ ...@@ -708,4 +655,4 @@ class MediaDBAPI{
break; break;
} }
} }
} }
\ No newline at end of file
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