*/
require_once 'lib/BDAParser.php';
require_once 'lib/RSSGenerator.php';
use \BassDrive\BDAParser;
use \BassDrive\RSSGenerator;
$config = parse_ini_file('global.ini', true);
if ($config === false) {
die('global.ini not found or invalid syntax. See https://www.php.net/manual/en/function.parse-ini-file .');
}
date_default_timezone_set($config['config']['time_zone']);
$base_url = $config['config']['base_url'];
if (!array_key_exists('show', $_GET)) {
header('Content-Type: text/html');
echo '
No show selected. Available shows (RSS feeds):
';
echo '';
$dirs = glob('shows/*', GLOB_ONLYDIR);
foreach ($dirs as $dir) {
$show = basename($dir);
$show_conf = parse_ini_file($dir . '/config.ini', true);
if ($show_conf === false) {
echo '- No config found or invalid: ' . $show . '
';
continue;
}
echo '- ';
echo '';
echo $show_conf['show']['title'] . ' (' . $show . ')';
echo '';
echo '
';
}
echo '
';
echo '';
exit();
}
// If we get here, a show was selected
$show = $_GET['show'];
$show_dir = realpath('shows/' . $show) . '/';
$show_conf = parse_ini_file($show_dir . 'config.ini', true);
if ($show_conf === false) {
die('Couldn\'t read (or parse) show\'s config.ini. See https://www.php.net/manual/en/function.parse-ini-file .');
}
// PARSE BASSDRIVE ARCHIVE
$show_data = new BDAParser($show_dir, $show_conf['archive']['url'], $show_conf['archive']['mp3_bitrate']);
$file_list = $show_data->fetchFiles();
// GENERATE RSS XML
$rss_gen = new RSSGenerator($base_url . '?show=' . $show, $base_url . 'shows/' . $show . '/');
$rss_gen->setGlobalConfig($config);
$rss_gen->setShowConfig($show_conf);
$rss_gen->setShowIntro(file_get_contents($show_dir . 'intro.txt'));
foreach ($file_list as $f) {
$rss_gen->addItem($f['url'], $f['title'], $f['size'], $f['duration'], $f['date']);
}
// OUTPUT RSS
$rss = $rss_gen->getRss();
file_put_contents('feed_' . $show . '.rss2', $rss);
header('Content-Type: application/rss+xml');
echo $rss;