This commit is contained in:
Ben Harris 2018-11-19 21:09:20 +00:00
commit b0830f23ed
5 changed files with 103 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*/
!webhook/
webhook/*.log
webhook/ffmpeg.pid

34
djindex.php Normal file
View File

@ -0,0 +1,34 @@
<?php
$dj = basename(__DIR__);
?>
<!doctype html>
<html>
<head>
<title><?=$dj?>'s tilderadio archives</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
</head>
<body>
<div class="container">
<h1><?=$dj?>'s archive</h1>
<p><a href="..">&lt; back</a></p>
<hr>
<?php
foreach (glob("/var/www/html/$dj/*.mp3") as $dir) {
$name = basename($dir);
?>
<div class="list-group">
<a href="./<?=$name?>" class="list-group-item">
<p class="list-group-item-text"><?=$name?></p>
</a>
</div>
<?php } ?>
</div>
</body>
</html>

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

31
index.php Normal file
View File

@ -0,0 +1,31 @@
<!doctype html>
<html>
<head>
<title>tilderadio archives</title>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://tilde.team/css/hacker.css">
<link rel="shortcut icon" type="image/png" href="/favicon.png"/>
</head>
<body>
<div class="container">
<h1>tilderadio archive</h1>
<p><a href="https://tilderadio.org">back to tilderadio.org</a> - <a href="https://radio.tildeverse.org/radio/8000/radio.ogg">listen now</a></p>
<hr>
<?php
foreach (glob("/var/www/html/*") as $dir) {
$name = basename($dir);
if ($name == "webhook" || !is_dir($dir)) continue;
?>
<div class="list-group">
<a href="<?=$name?>/" class="list-group-item">
<p class="list-group-item-text"><?=$name?></p>
</a>
</div>
<?php } ?>
</div>
</body>
</html>

34
webhook/index.php Normal file
View File

@ -0,0 +1,34 @@
<?php
$json = json_decode(file_get_contents('php://input'));
if ($json->live->is_live) {
// start recording
$streamer = $json->live->streamer_name;
$current_pid = intval(file_get_contents("ffmpeg.pid"));
// posix_kill with 0 signal tells you if the process is running
if ($current_pid != "" && posix_kill($current_pid, 0)) die();
$timestamp = date("Y-m-d\TH:i:s");
if (!is_dir(__DIR__."/../$streamer")) {
mkdir(__DIR__."/../$streamer");
copy(__DIR__."/../djindex.php", __DIR__."/../$streamer/index.php");
}
$standard_stream = "https://radio.tildeverse.org/radio/8000/radio.ogg";
$testing_stream = "https://radio.tildeverse.org/radio/8010/radio.mp3";
$cmd = "/usr/bin/ffmpeg -i $standard_stream ../$streamer/tilderadio-$timestamp.mp3 >out.log 2>&1 & echo $!";
$pid = exec($cmd);
echo $pid;
file_put_contents("ffmpeg.pid", $pid);
} else {
// stop recording
$pid = file_get_contents("ffmpeg.pid");
if ($pid != "" && posix_kill(intval($pid), 0)) {
posix_kill(intval($pid), 2);
file_put_contents("ffmpeg.pid", "");
}
}