From 0eaf8f094783e18499df70d84e81964fa785449f Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 21 Mar 2019 01:13:55 +0100 Subject: [PATCH] erste verion --- Dockerfile | 10 ++++++ getPreview.php | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 Dockerfile create mode 100644 getPreview.php diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4172f73 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM debian:9.2 + +MAINTAINER christopher@chris-latza.de + +RUN apt-get update && apt-get install -y php-cli +RUN mkdir /data +ADD getPreview.php /data/getPreview.php +WORKDIR /data + +ENTRYPOINT ["php", "/data/getPreview.php"] diff --git a/getPreview.php b/getPreview.php new file mode 100644 index 0000000..44e5fff --- /dev/null +++ b/getPreview.php @@ -0,0 +1,95 @@ +array("verify_peer"=>false,"verify_peer_name"=>false))); + +function getTokens($channelName) +{ + global $globalData; + + $url = "https://api.twitch.tv/api/channels/".$channelName."/access_token?client_id=".$globalData['ClientID']; + + $json = json_decode(file_get_contents($url)); + $json->token = json_decode($json->token); + return $json; +} + +function getStreamInfo($channelName) +{ + global $globalData; + + $url = "https://api.twitch.tv/kraken/streams/".$channelName."?client_id=".$globalData['ClientID']; + $json = json_decode(file_get_contents($url, false, $globalData['sslContext'])); + return $json; +} + +function getPreviewURL($infos, $sizeX, $sizeY) +{ + $url = @$infos->stream->preview->template; + $url = str_replace("{width}", $sizeX, $url); + $url = str_replace("{height}", $sizeY, $url); + return $url; +} + +function getFileCountInFolder() +{ + global $globalData; + + if (!file_exists($globalData['Folder'])) + mkdir($globalData['Folder'] , 0777, true); + + $files = array(); + + if ($handle = opendir($globalData['Folder'])) { + while (false !== ($entry = readdir($handle))) { + if ($entry != "." && $entry != "..") + { + array_push($files, $entry); + } + } + + closedir($handle); + } + + return count($files); +} + +function getFileExtention($uri) +{ + $parts = explode(".", $uri); + return $parts[(count($parts)-1)]; +} + +while(true) +{ + $streamInfo = getStreamInfo($globalData['Channel']); + $previewURL = getPreviewURL($streamInfo, "1920", "1080"); + + if($previewURL == "") + { + print_r($globalData); + print_r($argv); + print_r($streamInfo); + echo "URL == ".$previewURL."\n"; + die("fatal error"); + } + + + $imageFileName = $globalData['Folder'].(getFileCountInFolder() + 1).".".getFileExtention($previewURL); + + echo "Copy preview url '".$previewURL."' to '".$imageFileName."' ..."; + file_put_contents($imageFileName, file_get_contents($previewURL, false, $globalData['sslContext'])); + echo "done\n"; + + sleep(300); +} + +?> \ No newline at end of file