]> git.leonardobizzoni.com Git - highschool-graduation-project/commitdiff
Finished moving to external script
authorLeonardoBizzoni <leo2002714@gmail.com>
Sun, 15 May 2022 17:29:57 +0000 (19:29 +0200)
committerLeonardoBizzoni <leo2002714@gmail.com>
Sun, 15 May 2022 17:29:57 +0000 (19:29 +0200)
www/models/Vtubers.php
www/views/live.php
www/vtuberIsLive.php

index 203a461de86f5af600a0ac3ebdb68bd74e41c1f8..ccaa464107c3f301fdda64dc04361cb4b8d29136 100644 (file)
@@ -93,6 +93,14 @@ class Vtubers extends DbModel
 
     public function isLive(string $login, string $link)
     {
+        $stmt = parent::prepare("SELECT login, link, live FROM vtubers WHERE login='$login' AND link='$link';");
+        $stmt->execute();
+
+        $row = $stmt->fetch();
+
+        if (isset($row["live"])) {
+            return $row["live"];
+        }
 
         return [];
     }
index 09a4e548c5fff59757a0ad531e9ca5d5e6ae2b0c..5dc4ebf3e2f7464be2c836b0e3084815db89f48f 100644 (file)
@@ -38,7 +38,7 @@ if (!isset($_GET["id"])) {
     echo "<h2>Currently live</h2>";
     echo "<ul>";
     foreach ($params[0] as $idol) {
-        if (count($idol[1]) > 0)
+        if (gettype($idol[1]) == "string")
             echo "<li><a href='/live?id=" . $idol[0]["id"] . "'>" . ucfirst($idol[0]["username"]) . "</a></li>";
     }
     echo "</ul>";
@@ -46,7 +46,7 @@ if (!isset($_GET["id"])) {
     echo "<h2>Currently offline</h2>";
     echo "<ul>";
     foreach ($params[0] as $idol) {
-        if (count($idol[1]) == 0)
+        if (gettype($idol[1]) == "array")
             echo "<li><a href='/live?id=" . $idol[0]["id"] . "'>" . ucfirst($idol[0]["username"]) . "</a></li>";
     }
     echo "</ul>";
@@ -76,7 +76,7 @@ if (!isset($_GET["id"])) {
             if (str_contains($vtuber[0]["link"], "twitch.tv")) {
                 echo "<iframe src=\"https://player.twitch.tv/?channel=" . $vtuber[0]["login"] . "&parent=localhost\" frameborder=\"0\" allowfullscreen=\"true\" scrolling=\"no\"></iframe>";
             } else {
-                echo "<iframe src=\"https://www.youtube.com/embed/" . $vtuber[1][0] . "\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>";
+                echo "<iframe src=\"".str_replace("watch?v=", "embed/", $vtuber[1])."\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen></iframe>";
             }
     ?>
             </div>
index 4afb72bd6f396d67dba3f6a6c272cd049e127e01..563925a95777aa13e8f253073153f66dd0c53b61 100644 (file)
@@ -1,6 +1,4 @@
 <?php
-// se il canale รจ live aggiunge il link della live al database di vtuber
-// aggiungi colonna alla table vtubers con null o il link alla live
 
 use app\core\Application;
 
@@ -26,58 +24,69 @@ $config = [
 
 $app = new Application(__DIR__, $config);
 
-$stmt = $app->db->pdo->prepare("select link, login from vtubers");
-$stmt->execute();
-$data = $stmt->fetchAll();
+while (true) {
+    $stmt = $app->db->pdo->prepare("select id, link, login from vtubers");
+    $stmt->execute();
+    $data = $stmt->fetchAll();
+    $isLive = false;
 
-foreach ($data as $vtuber) {
-    $link = $vtuber["link"];
-    $login = $vtuber["login"];
+    foreach ($data as $vtuber) {
+        $link = $vtuber["link"];
+        $login = $vtuber["login"];
 
-    if (str_contains($link, "twitch.tv")) {
-        $clientID = $app->config["twitch"]["clientid"] ?? "";
-        $token = $app->config["twitch"]["token"] ?? "";
+        if (str_contains($link, "twitch.tv")) {
+            $clientID = $app->config["twitch"]["clientid"] ?? "";
+            $token = $app->config["twitch"]["token"] ?? "";
 
-        $url = "https://api.twitch.tv/helix/streams?user_login=$login";
+            $url = "https://api.twitch.tv/helix/streams?user_login=$login";
 
-        $ch = curl_init($url);
-        curl_setopt($ch, CURLOPT_URL, $url);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Client-ID: $clientID", "Authorization: Bearer $token"));
+            $ch = curl_init($url);
+            curl_setopt($ch, CURLOPT_URL, $url);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+            curl_setopt($ch, CURLOPT_HTTPHEADER, array("Client-ID: $clientID", "Authorization: Bearer $token"));
 
-        $result = get_object_vars(json_decode(curl_exec($ch)));
-        curl_close($ch);
+            $result = get_object_vars(json_decode(curl_exec($ch)));
+            curl_close($ch);
 
-        // echo count($result["data"]) ? "$login live\n" : "$login non live\n";
-        if (count($result["data"])) {
-            echo "$login live\n";
+            if (count($result["data"])) {
+                $stmt = $app->db->pdo->prepare("update vtubers set live='twitch.tv/$login' where id=" . $vtuber["id"]);
+                $stmt->execute();
+                $isLive = true;
+            }
         }
-    }
 
-    if (str_contains($link, "youtube.com")) {
-        $url = "https://www.youtube.com/channel/$login/live";
+        if (str_contains($link, "youtube.com")) {
+            $url = "https://www.youtube.com/channel/$login/live";
 
-        $ch = curl_init($url);
-        curl_setopt($ch, CURLOPT_URL, $url);
-        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+            $ch = curl_init($url);
+            curl_setopt($ch, CURLOPT_URL, $url);
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
-        $result = curl_exec($ch);
-        curl_close($ch);
+            $result = curl_exec($ch);
+            curl_close($ch);
 
-        $doc = new DOMDocument();
-        libxml_use_internal_errors(true);
-        $doc->loadHTML($result);
+            $doc = new DOMDocument();
+            libxml_use_internal_errors(true);
+            $doc->loadHTML($result);
 
-        $result = $doc->getElementsByTagName("link");
-        $length = $result->length;
+            $result = $doc->getElementsByTagName("link");
+            $length = $result->length;
 
-        for ($i = 0; $i < $length; $i++) {
-            $tag = $result->item($i)->getAttribute("href");
-            if (str_contains($tag, "https://www.youtube.com/watch?v=")) {
-                echo "$login live\n";
+            for ($i = 0; $i < $length; $i++) {
+                $tag = $result->item($i)->getAttribute("href");
+                if (str_contains($tag, "https://www.youtube.com/watch?v=")) {
+                    $stmt = $app->db->pdo->prepare("update vtubers set live='$tag' where id=" . $vtuber["id"]);
+                    $stmt->execute();
+                    $isLive = true;
+                }
             }
+
+            unset($doc);
         }
 
-        unset($doc);
+        if (!$isLive) {
+            $stmt = $app->db->pdo->prepare("update vtubers set live=NULL where id=" . $vtuber["id"]);
+            $stmt->execute();
+        }
     }
 }