From 6f7c4898f47779e7a39272d24e03ec70d517096a Mon Sep 17 00:00:00 2001 From: LeonardoBizzoni Date: Sun, 15 May 2022 19:29:57 +0200 Subject: [PATCH] Finished moving to external script --- www/models/Vtubers.php | 8 ++++ www/views/live.php | 6 +-- www/vtuberIsLive.php | 87 +++++++++++++++++++++++------------------- 3 files changed, 59 insertions(+), 42 deletions(-) diff --git a/www/models/Vtubers.php b/www/models/Vtubers.php index 203a461..ccaa464 100644 --- a/www/models/Vtubers.php +++ b/www/models/Vtubers.php @@ -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 []; } diff --git a/www/views/live.php b/www/views/live.php index 09a4e54..5dc4ebf 100644 --- a/www/views/live.php +++ b/www/views/live.php @@ -38,7 +38,7 @@ if (!isset($_GET["id"])) { echo "

Currently live

"; echo ""; @@ -46,7 +46,7 @@ if (!isset($_GET["id"])) { echo "

Currently offline

"; echo ""; @@ -76,7 +76,7 @@ if (!isset($_GET["id"])) { if (str_contains($vtuber[0]["link"], "twitch.tv")) { echo ""; } else { - echo ""; + echo ""; } ?> diff --git a/www/vtuberIsLive.php b/www/vtuberIsLive.php index 4afb72b..563925a 100644 --- a/www/vtuberIsLive.php +++ b/www/vtuberIsLive.php @@ -1,6 +1,4 @@ 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(); + } } } -- 2.52.0