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
- Debugarrays werden nur noch ausgegeben wenn für das Rechte level das Recht gesetzt ist
......
......@@ -9,7 +9,7 @@
* Konfig:
*/
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_Rights, "/var/www/mediadb.ivaya.de/Rights.json");
......@@ -17,7 +17,6 @@ if (!isset($_GET['Pretty'])) {
error_reporting(0);
}
class MediaDBAPI{
private $API_KEY;
private $API_Rechte;
......@@ -246,16 +245,9 @@ class MediaDBAPI{
$Where .= (($first?"":" AND ").$Suche);
$first = false;
}
//TODO youtube Filter einbauen!!
// größergleich oder kleinergleich Filter:
foreach ($this->FilterKomplex as $key => $value) {
//echo "Ist $key in: FilterKomp?".PHP_EOL;
//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(isset($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!
$Number = str_replace(">", "", $GET_arr[$key]);
......@@ -263,8 +255,8 @@ class MediaDBAPI{
$Where .= ($first?"":" AND ").$value.' '.((substr($GET_arr[$key],0,1) == ">")?">":"").((substr($GET_arr[$key],0,1) == "<")?"<":"").'="'.$Number.'"';
$first = false;
}else if(strpos($GET_arr[$key], ",")>0){
// Bereich angegeben
$NumberArr = explode(",", $GET_arr[$key]);
//var_dump($NumberArr);
$Where .= ($first?"":" AND ").$value.' >="'.$NumberArr[0].'"';
$first = false;
$Where .= ($first?"":" AND ").$value.' <="'.$NumberArr[1].'"';
......@@ -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"){
$Group = "GROUP BY imdbID";
}
......@@ -356,35 +348,26 @@ class MediaDBAPI{
//Spalten entfernen worauf keine Rechte sind...
$first = true;
$Spalten = "";
if($GET_arr["Tabelle"] == "Episoden"){
foreach ($SpaltenArr as $value) {
//var_dump($this->SpaltenEpi);
if(!(in_array($value, $this->SpaltenEpi)==1)){
//echo "Lösche: ".$value.PHP_EOL;
unset($SpaltenArr[$value]);
}else{
//echo "behalte: ".$value.PHP_EOL;
$Spalten .= ($first?"":",").$value;
$first = false;
}
}
}else if( $GET_arr["Tabelle"] == "Filme"){
foreach ($SpaltenArr as $value) {
//var_dump($this->SpaltenEpisoden);
if(!(in_array($value, $this->SpaltenFil)==1)){
//echo "Lösche: ".$value.PHP_EOL;
unset($SpaltenArr[$value]);
}else{
//echo "behalte: ".$value.PHP_EOL;
$Spalten .= ($first?"":",").$value;
$first = false;
}
......@@ -393,7 +376,6 @@ class MediaDBAPI{
else {
$Spalten = $GET_arr['Spalten'];
}
//echo $Spalten.PHP_EOL;
// Lösche Schauspieler und Genre aus der Select Anweisung
$Spalten = str_replace("Genre,", "", $Spalten);
......@@ -406,10 +388,9 @@ class MediaDBAPI{
$Spalten = str_replace(",Statistik", "", $Spalten);
$Spalten = str_replace("Statistik", "", $Spalten);
/* wenn Genre oder Schauspieler gefordert sind, aber die imdbID nicht in der Spaltenliste ist... */
$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;
$NoimdbID = true;
}else{
......@@ -417,21 +398,12 @@ class MediaDBAPI{
}
$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;
$NoimdbID = true;
}else{
$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.
" FROM ".$GET_arr['Tabelle']." "
.(strlen($Where)<=6?"":$Where)
......@@ -447,12 +419,10 @@ class MediaDBAPI{
array_push($TitelArray, $val->name);
}
$entryArray = array();
while($entry = $entrys->fetch_array()){
$tempArray = array();
foreach ($finfo as $val) {
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]);
}
}
......@@ -474,33 +444,18 @@ class MediaDBAPI{
}
if ($Statistik == true) {
if (($GET_arr['Tabelle'] == "Staffeln")) { //TODO hier ist auch was geändert aber noch nicht getestet!!
//var_dump($this->SpaltenEpi);
$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("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 '.
'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")){
//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,':'').' '.
$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("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 '.
'WHERE se.series_nr = '.$entry["series_nr"];
}
$result = $this->query($Query);
if($this->DB_Objekt->error != ""){ return $this->error(1005, $this->DB_Objekt->error);}
......@@ -529,11 +484,8 @@ class MediaDBAPI{
public function API_SetData($GET_arr, $POST_arr =""){
if( ($this->Update)){
if(isset($GET_arr["Tabelle"])){
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"))){
//UPDATE ".$GET_arr["Tabelle"]." WHERE imdbID = ".$POST_arr["imdbID"];
if(($GET_arr["Tabelle"] == "Filme")){
$Where = "WHERE imdbID = '".$POST_arr["imdbID"]."' AND `3d` = '".$POST_arr["3d"]."'";
}elseif(($GET_arr["Tabelle"] == "Episoden")){
......@@ -561,14 +513,12 @@ class MediaDBAPI{
$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
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 {
return $this->error(1004, "Erwartet war Tabelle!");
......@@ -631,7 +581,6 @@ class MediaDBAPI{
echo (strpos($_SERVER["HTTP_USER_AGENT"], "Android")==0?$Output."\r\n":"");
}
private function query($Query){
//$this->Statistik["QueryCounter"]++;
$ret = $this->DB_Objekt->query($Query);
$this->Querys[$this->Statistik["QueryCounter"]++]= array( "Query" => ($Query),
"MySQLnum_rows" => $ret->num_rows,
......@@ -659,8 +608,6 @@ class MediaDBAPI{
);
}
$this->DB_Objekt->close();
//"Statistik" => $Statistik
//TODO Statistikausgabe nur mit rechten!!
}
public function error($ErrID, $Description = ""){
switch ($ErrID) {
......
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