Moritz Schmidt 10 жил өмнө
parent
commit
35af60a7d9
3 өөрчлөгдсөн 156 нэмэгдсэн , 32 устгасан
  1. 30 20
      functions.php
  2. 59 8
      index.php
  3. 67 4
      updateMetadata.php

+ 30 - 20
functions.php

@@ -11,42 +11,52 @@ function pa($debug, $var = false) {
 }
 
 function getImageByName($folder) {
+    $name = explode('/', $folder);
 
     if(is_dir($folder)) {
-        $name = explode('/', $folder);
 
-        $zeichenkette = $name[sizeof($name) - 1];
-        $suchmuster = "/S[0-9]+/";
-        preg_match_all($suchmuster, $zeichenkette, $treffer);
-        if(sizeof($treffer[0]) > 0) {
-            return "posters/" . $name[3] . "_" . ltrim(str_replace('S', '', $zeichenkette), "0") . ".jpg";
+        preg_match_all("/S[0-9]+/", $name[sizeof($name) - 1], $output);
+        if(sizeof($output[0]) > 0) {
+            return "posters/" . $name[3] . "_" . ltrim(str_replace('S', '', $name[sizeof($name) - 1]), "0") . ".jpg";
         }
+
         return "posters/" . $name[3] . ".jpg";
     } else {
-        $movieName = explode('/', $folder);
-        $movieName = explode('.', $movieName[3]);
-        unset($movieName[sizeof($movieName) - 1]);
-        unset($movieName[sizeof($movieName) - 1]);
-        $movieName = implode(' ', $movieName);
-        $movieName = str_replace(" Directors Cut", "", $movieName);
-        return "posters/" . $movieName . ".jpg";
-    }
+        // ([a-zA-Z.]*).(S[0-9]*E[0-9]*).([a-zA-Z0-9.-]*) : $1-$2-$3
+        // ([a-zA-Z ]*) - (S([0-9]+)E([0-9]+)) - ([a-zA-Z ]*) : $1-$2-$5
+        // ([a-zA-Z]*) - ([0-9]*x[0-9]*) - ([a-zA-Z0-9]*) : $1-$2-$3
 
+        // old regex: ([a-zA-Z.*]+)-S([0-9]+)E([0-9]+)-([a-zA-Z0-9.-]+).([a-zA-Z*]+)
+        // ([a-zA-Z.*]+)-[S|s]([0-9]+)[E|e]([0-9]+)-([a-zA-Z0-9.-]+)\.([a-zA-Z0-9*]+)
 
-    error_log($folder);
-    $imdbID = trim(preg_replace('/\s+/', ' ', file_get_contents($folder . '/imdbid')));
-    error_log($imdbID);
 
-    $result = json_decode(curl_download("http://www.omdbapi.com/?i=" . $imdbID));
 
-    error_log($result->{"Poster"});
+        preg_match_all("/([a-zA-Z0-9.*]+)-[S|s]([0-9]+)[E|e]([0-9]+)-([a-zA-Z0-9.-]+)\.([a-zA-Z0-9\(\).*\w]+)/", $folder, $output);
+        if(sizeof($output[0]) > 0) {
 
-    return $result->{"Poster"};
+            if((string) $output[3][0] != "0") {
+                $output[3][0] = ltrim((string) $output[3][0], "0");
+            }
 
+            if((string) $output[2][0] != "0") {
+                $output[2][0] = ltrim((string) $output[2][0], "0");
+            }
 
+            return "posters/" . $name[3] . "_" . $output[2][0]  . "_" . $output[3][0] . ".jpg";
+        } else {
+            $movieName = explode('/', $folder);
+            $movieName = explode('.', $movieName[3]);
+            unset($movieName[sizeof($movieName) - 1]);
+            unset($movieName[sizeof($movieName) - 1]);
+            $movieName = implode(' ', $movieName);
+            $movieName = str_replace(" Directors Cut", "", $movieName);
+            return "posters/" . $movieName . ".jpg";
+        }
+    }
 }
 
 function curl_download($Url){
+
     // is cURL installed yet?
     if (!function_exists('curl_init')){
         die('Sorry cURL is not installed!');

+ 59 - 8
index.php

@@ -32,6 +32,19 @@ require('functions.php');
                 min-height: 500px;
             }
 
+            .col-sm-3.episode {
+                min-height: 50px;
+            }
+
+            .col-sm-3.episode > div > a > img {
+                min-height: 50px;
+                max-height: 170px;
+            }
+
+            .col-sm-3.folder-up-episode img {
+                max-height: 225px;
+            }
+
             .image-zoom {
                 overflow: hidden;
             }
@@ -52,6 +65,10 @@ require('functions.php');
                  transform:scale(1.15);
             }
 
+            .episode-title {
+                padding-top: 15px;
+            }
+
         </style>
     </head>
     <body>
@@ -81,8 +98,14 @@ require('functions.php');
 
                 echo "<div class=\"row\">";
                 foreach($list as $object) {
+
+                    $name = str_split($object, sizeof($object));
+                    if($name[0] == "." && $name[1] != ".") {
+                        continue;
+                    }
+
                     echo "<div class=\"col-sm-3\"><div class=\"image-zoom\">";
-                    echo "<a href=\"?path=" . $path . "/" . $object . "\">" . "<img class=\"img-responsive\" src=\"" . getImageByName($path . "/" . $object) . "\" alt=\"" . $object . "\">" . "</a><br>";
+                    echo "<a href=\"?path=" . $path . "/" . $object . "\">" . "<img class=\"img-responsive\" src=\"" . getImageByName($path . "/" . $object) . "\" alt=\"" . $object . "\">" . "</a>";
                     echo "</div></div>";
                 }
                 echo "</div>";
@@ -98,13 +121,25 @@ require('functions.php');
                 $list = array_diff($list, array('.', 'queue.hbq'));
                 echo "<div class=\"row\">";
                 foreach($list as $object) {
+
+                    $name = explode('.', $object);
+                    if($name[sizeof($name) - 1] == "srt") {
+                        continue;
+                    }
+
+                    $name = str_split($object, sizeof($object));
+                    if($name[0] == "." && $name[1] != ".") {
+                        continue;
+                    }
+
                     if($object == "..") {
                         if(in_array($_GET['path'], $CONFIG['paths'])) {
                             echo "<div class=\"col-sm-3\"><div class=\"image-zoom\">";
-                            echo "<a href=\"?path=\"><img src=\"folder_up.png\" alt=\"folder up\"></a><br>";
+                            echo "<a href=\"?path=\"><img src=\"folder_up.png\" alt=\"folder up\"></a>";
                             echo "</div></div>";
                         } else {
                             $paths = explode('/', $_GET['path']);
+                            $season = $paths[sizeof($paths) - 1];
                             $paths = array_diff($paths, array($paths[sizeof($paths) - 1]));
                             $pathv = "";
                             foreach($paths as $key => $path) {
@@ -114,14 +149,30 @@ require('functions.php');
                                     $pathv .= $path . "/";
                                 }
                             }
-                            echo "<div class=\"col-sm-3\"><div class=\"image-zoom\">";
-                            echo "<a href=\"?path=" . $pathv . "\"><img src=\"folder_up.png\" alt=\"folder up\"></a><br>";
-                            echo "</div></div>";
+
+                            if(preg_match_all("/(S[0-9]+)/", $season, $output)) {
+                                echo "<div class=\"col-sm-3 episode folder-up-episode\"><div class=\"image-zoom\">";
+                                echo "<a href=\"?path=" . $pathv . "\"><img src=\"folder_up.png\" alt=\"folder up\"></a>";
+                                echo "</div></div>";
+                            } else {
+                                echo "<div class=\"col-sm-3\"><div class=\"image-zoom\">";
+                                echo "<a href=\"?path=" . $pathv . "\"><img src=\"folder_up.png\" alt=\"folder up\"></a>";
+                                echo "</div></div>";
+                            }
+
                         }
                     } else {
-                        echo "<div class=\"col-sm-3\"><div class=\"image-zoom\">";
-                        echo "<a href=\"?path=" . $_GET['path'] . "/" . $object . "\">" . "<img class=\"img-responsive\" src=\"" . getImageByName($_GET['path'] . "/" . $object) . "\" alt=\"" . $object . "\">" . "</a><br>";
-                        echo "</div></div>";
+                        if(preg_match_all("/([a-zA-Z0-9.*]+)-[S|s]([0-9]+)[E|e]([0-9]+)-([a-zA-Z0-9.-]+)\.([a-zA-Z0-9\(\).*\w]+)/", $object, $output)) {
+                            echo "<div class=\"col-sm-3 episode\"><div class=\"image-zoom\">";
+                            echo "<a href=\"?path=" . $_GET['path'] . "/" . $object . "\">" . "<img class=\"img-responsive\" src=\"" . getImageByName($_GET['path'] . "/" . $object) . "\" alt=\"" . $object . "\">";
+
+                            echo "<div class=\"episode-title\">" . (string) $output[3][0] . " - " . str_replace('.', ' ', $output[4][0]) . "</div>";
+                        } else {
+                            echo "<div class=\"col-sm-3\"><div class=\"image-zoom\">";
+                            echo "<a href=\"?path=" . $_GET['path'] . "/" . $object . "\">" . "<img class=\"img-responsive\" src=\"" . getImageByName($_GET['path'] . "/" . $object) . "\" alt=\"" . $object . "\">";
+                        }
+
+                        echo "</a></div></div>";
                     }
                 }
                 echo "</div>";

+ 67 - 4
updateMetadata.php

@@ -99,6 +99,9 @@ if(isset($_REQUEST['action']) && $_REQUEST['action'] == "singleDownload") {
         $poster = $banners->xpath("/Banners/Banner/BannerType[text()='poster']/../Language[text()='" . $english[0]->abbreviation . "']/parent::*");
     }
 
+    $poster = $poster[0]->BannerPath;
+    $poster = $bannerURL . $poster;
+
     $seasons = $banners->xpath("/Banners/Banner/BannerType[text()='season']/../BannerType2[text()='season']/../Language[text()='" . $german[0]->abbreviation . "']/parent::*");
 
     if(sizeof($seasons) > 0) {
@@ -120,9 +123,35 @@ if(isset($_REQUEST['action']) && $_REQUEST['action'] == "singleDownload") {
         }
     }
 
+    $episodes = curl_download("http://thetvdb.com/api/084F3E73D176AD88/series/" . $seriesID . "/all/" . $german[0]->abbreviation . ".xml");
+    $episodes = new SimpleXMLElement($episodes);
+
+    if(sizeof($episodes->Episode) > 0) {
+        foreach($episodes->Episode as $episode) {
+
+            if(file_exists("posters/" . $seriesName . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg")) {
+                continue;
+            }
+            $episodeURL = $bannerURL . $episode->filename;
+            file_put_contents("posters/" . $seriesName . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg", fopen($episodeURL, 'r'));
+        }
+    }
+
+    $episodes = curl_download("http://thetvdb.com/api/084F3E73D176AD88/series/" . $seriesID . "/all/" . $english[0]->abbreviation . ".xml");
+    $episodes = new SimpleXMLElement($episodes);
+
+    if(sizeof($episodes->Episode) > 0) {
+        foreach($episodes->Episode as $episode) {
+
+            if(file_exists("posters/" . $seriesName . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg")) {
+                continue;
+            }
+            $episodeURL = $bannerURL . $episode->filename;
+            file_put_contents("posters/" . $seriesName . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg", fopen($episodeURL, 'r'));
+        }
+    }
+
     $series = new SimpleXMLElement($series);
-    $poster = $poster[0]->BannerPath;
-    $poster = $bannerURL . $poster;
 
     file_put_contents("posters/" . $seriesName . ".jpg", fopen($poster, 'r'));
 
@@ -135,6 +164,11 @@ if(isset($_REQUEST['action']) && $_REQUEST['action'] == "singleDownload") {
 
     foreach($list as $name) {
 
+        $object = str_split($name, sizeof($name));
+        if($object[0] == "." && $object[1] != ".") {
+            continue;
+        }
+
         echo $name . "<br>";
 
         if(file_exists("posters/" . $name . ".jpg")) {
@@ -170,6 +204,9 @@ if(isset($_REQUEST['action']) && $_REQUEST['action'] == "singleDownload") {
                 $poster = $banners->xpath("/Banners/Banner/BannerType[text()='poster']/../Language[text()='" . $english[0]->abbreviation . "']/parent::*");
             }
 
+            $poster = $poster[0]->BannerPath;
+            $poster = $bannerURL . $poster;
+
             $seasons = $banners->xpath("/Banners/Banner/BannerType[text()='season']/../BannerType2[text()='season']/../Language[text()='" . $german[0]->abbreviation . "']/parent::*");
 
             if(sizeof($seasons) > 0) {
@@ -191,9 +228,35 @@ if(isset($_REQUEST['action']) && $_REQUEST['action'] == "singleDownload") {
                 }
             }
 
+            $episodes = curl_download("http://thetvdb.com/api/084F3E73D176AD88/series/" . $seriesID . "/all/" . $german[0]->abbreviation . ".xml");
+            $episodes = new SimpleXMLElement($episodes);
+
+            if(sizeof($episodes->Episode) > 0) {
+                foreach($episodes->Episode as $episode) {
+
+                    if(file_exists("posters/" . $name . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg")) {
+                        continue;
+                    }
+                    $episodeURL = $bannerURL . $episode->filename;
+                    file_put_contents("posters/" . $name . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg", fopen($episodeURL, 'r'));
+                }
+            }
+
+            $episodes = curl_download("http://thetvdb.com/api/084F3E73D176AD88/series/" . $seriesID . "/all/" . $english[0]->abbreviation . ".xml");
+            $episodes = new SimpleXMLElement($episodes);
+
+            if(sizeof($episodes->Episode) > 0) {
+                foreach($episodes->Episode as $episode) {
+
+                    if(file_exists("posters/" . $name . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg")) {
+                        continue;
+                    }
+                    $episodeURL = $bannerURL . $episode->filename;
+                    file_put_contents("posters/" . $name . "_" . (string) $episode->SeasonNumber[0] . "_" . (string) $episode->EpisodeNumber . ".jpg", fopen($episodeURL, 'r'));
+                }
+            }
+
             $series = new SimpleXMLElement($series);
-            $poster = $poster[0]->BannerPath;
-            $poster = $bannerURL . $poster;
 
             file_put_contents("posters/" . $name . ".jpg", fopen($poster, 'r'));
         }