Merge branch '1.9.1' into devel

Conflicts:
	install_full/ubuntu/airtime-full-install
	install_minimal/airtime-install
	install_minimal/include/AirtimeInstall.php
This commit is contained in:
James 2011-09-14 16:15:00 -04:00
commit 5537bd0d89
17 changed files with 539 additions and 29 deletions

View File

@ -1,6 +1,10 @@
======= =======
CREDITS CREDITS
======= =======
Version 1.9.4
-------------
Same as previous version.
Version 1.9.3 Version 1.9.3
------------- -------------
Same as previous version. Same as previous version.

View File

@ -1,10 +1,24 @@
1.9.4 - Sept 13, 2011
*Improvements
-"airtime-import" command-line utility now offers better help when invalid parameters have
been passed.
*Fixes
-Fixed "Show Contents" displaying full-length of tracks, even if cue-points had been set.
-Fixed start date of show not updating after dragging and dropping.
-Fixed audio preview still playing after deleting a file in the Playlist Builder.
-Fixed uploads via the web-interface while using Internet Explorer failing when tracks contained "+" or
whitespace characters.
-Fixed issue where deleting a file from the Playlist Builder wouldn't always refresh the list to
remove the file.
-Fixed issue where upgrading from any previous Airtime would set "Toronto/America" as the default timezone
1.9.3 - August 26th, 2011 1.9.3 - August 26th, 2011
*Improvements *Improvements
-It is now possible to upgrade your system while a show is playing. -It is now possible to upgrade your system while a show is playing.
Playout will be temporarily interrupted for about 5-10 seconds and then Playout will be temporarily interrupted for about 5-10 seconds and then
playout will resume. Previously playout would not resume until the next playout will resume. Previously playout would not resume until the next
scheduled show. scheduled show.
*fixes *Fixes
-Fixed bug where playout system did not work with mono files. -Fixed bug where playout system did not work with mono files.
-Fixed bug where sometimes audio files could be played out of order. -Fixed bug where sometimes audio files could be played out of order.

View File

@ -7,8 +7,7 @@ exec > >(tee install_log.txt)
exec 2>&1 exec 2>&1
if [ "$(id -u)" != "0" ]; then if [ "$(id -u)" != "0" ]; then
echo "You need admin previlege to run this script" echo "You need root privileges to run this script"
echo "Syntaxe: sudo $0"
exit 1 exit 1
fi fi
@ -24,7 +23,7 @@ echo " 1. Install Packages"
echo "----------------------------------------------------" echo "----------------------------------------------------"
# Updated package list # Updated package list
sudo apt-get -y install tar gzip curl apache2 php5-pgsql libapache2-mod-php5 \ apt-get -y install tar gzip curl apache2 php5-pgsql libapache2-mod-php5 \
php-pear php5-gd postgresql odbc-postgresql python2.6 lame libsoundtouch-ocaml \ php-pear php5-gd postgresql odbc-postgresql python2.6 lame libsoundtouch-ocaml \
libmp3lame-dev libtaglib-ocaml libao-ocaml libmad-ocaml ecasound \ libmp3lame-dev libtaglib-ocaml libao-ocaml libmad-ocaml ecasound \
libesd0 icecast2 sudo libportaudio2 libsamplerate0 rabbitmq-server \ libesd0 icecast2 sudo libportaudio2 libsamplerate0 rabbitmq-server \
@ -38,19 +37,19 @@ if [ "$?" -ne "0" ]; then
fi fi
# Install phing # Install phing
sudo pear channel-discover pear.phing.info pear channel-discover pear.phing.info
sudo pear install phing/phing-2.4.2 pear install phing/phing-2.4.2
# Apache Config File # Apache Config File
echo "----------------------------------------------------" echo "----------------------------------------------------"
echo "2. Apache Config File" echo "2. Apache Config File"
echo "----------------------------------------------------" echo "----------------------------------------------------"
if [ ! -f /etc/apache2/sites-available/airtime ]; then if [ ! -f /etc/apache2/sites-available/airtime ]; then
sudo cp $SCRIPTPATH/../apache/airtime-vhost /etc/apache2/sites-available/airtime cp $SCRIPTPATH/../apache/airtime-vhost /etc/apache2/sites-available/airtime
sudo rm -rf /etc/apache2/sites-enabled/000-default rm -rf /etc/apache2/sites-enabled/000-default
sudo ln -s /etc/apache2/sites-available/airtime /etc/apache2/sites-enabled/airtime ln -s /etc/apache2/sites-available/airtime /etc/apache2/sites-enabled/airtime
sudo a2enmod rewrite php5 a2enmod rewrite php5
sudo service apache2 restart service apache2 restart
else else
echo "Apache config for Airtime already exists..." echo "Apache config for Airtime already exists..."
fi fi
@ -60,8 +59,8 @@ echo "----------------------------------------------------"
echo "3. Enable Icecast" echo "3. Enable Icecast"
echo "----------------------------------------------------" echo "----------------------------------------------------"
cd /etc/default/ cd /etc/default/
sudo sed -i 's/ENABLE=false/ENABLE=true/g' icecast2 sed -i 's/ENABLE=false/ENABLE=true/g' icecast2
sudo service icecast2 start service icecast2 start
echo "" echo ""
# Enable Monit # Enable Monit
@ -69,22 +68,22 @@ echo "----------------------------------------------------"
echo "4. Enable Monit" echo "4. Enable Monit"
echo "----------------------------------------------------" echo "----------------------------------------------------"
cd /etc/default/ cd /etc/default/
sudo sed -i 's/startup=0/startup=1/g' monit sed -i 's/startup=0/startup=1/g' monit
sudo cp $SCRIPTPATH/../../python_apps/monit/airtime-monit.cfg /etc/monit/conf.d cp $SCRIPTPATH/../../python_apps/monit/airtime-monit.cfg /etc/monit/conf.d
grep -q "include /etc/monit/conf.d" /etc/monit/monitrc grep -q "include /etc/monit/conf.d" /etc/monit/monitrc
RETVAL=$? RETVAL=$?
if [ $RETVAL -ne 0 ] ; then if [ $RETVAL -ne 0 ] ; then
sudo echo "include /etc/monit/conf.d/*" >> /etc/monit/monitrc echo "include /etc/monit/conf.d/*" >> /etc/monit/monitrc
fi fi
sudo service monit restart service monit start
# Run Airtime Install # Run Airtime Install
echo "----------------------------------------------------" echo "----------------------------------------------------"
echo "5. Run Airtime Install" echo "5. Run Airtime Install"
echo "----------------------------------------------------" echo "----------------------------------------------------"
cd $SCRIPTPATH/../../install_minimal cd $SCRIPTPATH/../../install_minimal
sudo ./airtime-install ./airtime-install

View File

@ -372,6 +372,7 @@ class AirtimeInstall
exec("rm -f /usr/bin/airtime-check-system"); exec("rm -f /usr/bin/airtime-check-system");
exec("rm -f /usr/bin/airtime-user"); exec("rm -f /usr/bin/airtime-user");
exec("rm -f /usr/bin/airtime-log"); exec("rm -f /usr/bin/airtime-log");
exec("rm -f /usr/bin/airtime-clean-storage");
} }
public static function InstallPhpCode() public static function InstallPhpCode()

View File

@ -13,10 +13,10 @@
with pidfile "/var/run/airtime-liquidsoap.pid" with pidfile "/var/run/airtime-liquidsoap.pid"
start program = "/etc/init.d/airtime-playout start" with timeout 10 seconds start program = "/etc/init.d/airtime-playout start" with timeout 10 seconds
stop program = "/etc/init.d/airtime-playout stop" stop program = "/etc/init.d/airtime-playout stop"
# check process airtime-media-monitor check process airtime-media-monitor
# with pidfile "/var/run/airtime-media-monitor.pid" with pidfile "/var/run/airtime-media-monitor.pid"
# start program = "/etc/init.d/airtime-media-monitor start" with timeout 10 seconds start program = "/etc/init.d/airtime-media-monitor start" with timeout 10 seconds
# stop program = "/etc/init.d/airtime-media-monitor stop" stop program = "/etc/init.d/airtime-media-monitor stop"
check process airtime-show-recorder check process airtime-show-recorder
with pidfile "/var/run/airtime-show-recorder.pid" with pidfile "/var/run/airtime-show-recorder.pid"
start program = "/etc/init.d/airtime-show-recorder start" with timeout 10 seconds start program = "/etc/init.d/airtime-show-recorder start" with timeout 10 seconds

View File

@ -67,6 +67,7 @@ class AirtimeInstall{
exec("rm -f /usr/bin/airtime-update-db-settings"); exec("rm -f /usr/bin/airtime-update-db-settings");
exec("rm -f /usr/bin/airtime-check-system"); exec("rm -f /usr/bin/airtime-check-system");
exec("rm -f /usr/bin/airtime-user"); exec("rm -f /usr/bin/airtime-user");
exec("rm -f /usr/bin/airtime-clean-storage ");
} }
public static function DbTableExists($p_name) public static function DbTableExists($p_name)

View File

@ -13,10 +13,10 @@
with pidfile "/var/run/airtime-liquidsoap.pid" with pidfile "/var/run/airtime-liquidsoap.pid"
start program = "/etc/init.d/airtime-playout start" with timeout 10 seconds start program = "/etc/init.d/airtime-playout start" with timeout 10 seconds
stop program = "/etc/init.d/airtime-playout stop" stop program = "/etc/init.d/airtime-playout stop"
# check process airtime-media-monitor check process airtime-media-monitor
# with pidfile "/var/run/airtime-media-monitor.pid" with pidfile "/var/run/airtime-media-monitor.pid"
# start program = "/etc/init.d/airtime-media-monitor start" with timeout 10 seconds start program = "/etc/init.d/airtime-media-monitor start" with timeout 10 seconds
# stop program = "/etc/init.d/airtime-media-monitor stop" stop program = "/etc/init.d/airtime-media-monitor stop"
check process airtime-show-recorder check process airtime-show-recorder
with pidfile "/var/run/airtime-show-recorder.pid" with pidfile "/var/run/airtime-show-recorder.pid"
start program = "/etc/init.d/airtime-show-recorder start" with timeout 10 seconds start program = "/etc/init.d/airtime-show-recorder start" with timeout 10 seconds

View File

@ -1,4 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php');
class Airtime192Upgrade{ class Airtime192Upgrade{
public static function InstallAirtimePhpServerCode($phpDir) public static function InstallAirtimePhpServerCode($phpDir)
@ -121,7 +122,7 @@
AirtimeIni192::CONF_FILE_LIQUIDSOAP); AirtimeIni192::CONF_FILE_LIQUIDSOAP);
// Backup the config files // Backup the config files
$suffix = date("Ymdhis")."-1.9.0"; $suffix = date("Ymdhis")."-1.9.2";
foreach ($configFiles as $conf) { foreach ($configFiles as $conf) {
if (file_exists($conf)) { if (file_exists($conf)) {
echo "Backing up $conf to $conf$suffix.bak".PHP_EOL; echo "Backing up $conf to $conf$suffix.bak".PHP_EOL;
@ -181,4 +182,5 @@
$values = parse_ini_file(AirtimeIni192::CONF_FILE_AIRTIME, true); $values = parse_ini_file(AirtimeIni192::CONF_FILE_AIRTIME, true);
$phpDir = $values['general']['airtime_dir']; $phpDir = $values['general']['airtime_dir'];
Airtime192Upgrade::InstallAirtimePhpServerCode($phpDir); Airtime192Upgrade::InstallAirtimePhpServerCode($phpDir);
AirtimeInstall::CreateSymlinksToUtils();
?> ?>

View File

@ -1,4 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php');
class Airtime193Upgrade{ class Airtime193Upgrade{
public static function InstallAirtimePhpServerCode($phpDir) public static function InstallAirtimePhpServerCode($phpDir)
@ -121,7 +122,7 @@
AirtimeIni193::CONF_FILE_LIQUIDSOAP); AirtimeIni193::CONF_FILE_LIQUIDSOAP);
// Backup the config files // Backup the config files
$suffix = date("Ymdhis")."-1.9.0"; $suffix = date("Ymdhis")."-1.9.3";
foreach ($configFiles as $conf) { foreach ($configFiles as $conf) {
if (file_exists($conf)) { if (file_exists($conf)) {
echo "Backing up $conf to $conf$suffix.bak".PHP_EOL; echo "Backing up $conf to $conf$suffix.bak".PHP_EOL;
@ -172,4 +173,5 @@
$values = parse_ini_file(AirtimeIni193::CONF_FILE_AIRTIME, true); $values = parse_ini_file(AirtimeIni193::CONF_FILE_AIRTIME, true);
$phpDir = $values['general']['airtime_dir']; $phpDir = $values['general']['airtime_dir'];
Airtime193Upgrade::InstallAirtimePhpServerCode($phpDir); Airtime193Upgrade::InstallAirtimePhpServerCode($phpDir);
AirtimeInstall::CreateSymlinksToUtils();
?> ?>

View File

@ -0,0 +1,23 @@
set daemon 10 # Poll at 10 second intervals
set logfile syslog facility log_daemon
set httpd port 2812 and use address 127.0.0.1
allow localhost
allow admin:monit
check process airtime-playout
with pidfile "/var/run/airtime-playout.pid"
start program = "/etc/init.d/airtime-playout start" with timeout 10 seconds
stop program = "/etc/init.d/airtime-playout stop"
check process airtime-liquidsoap
with pidfile "/var/run/airtime-liquidsoap.pid"
start program = "/etc/init.d/airtime-playout start" with timeout 10 seconds
stop program = "/etc/init.d/airtime-playout stop"
check process airtime-media-monitor
with pidfile "/var/run/airtime-media-monitor.pid"
start program = "/etc/init.d/airtime-media-monitor start" with timeout 10 seconds
stop program = "/etc/init.d/airtime-media-monitor stop"
check process airtime-show-recorder
with pidfile "/var/run/airtime-show-recorder.pid"
start program = "/etc/init.d/airtime-show-recorder start" with timeout 10 seconds
stop program = "/etc/init.d/airtime-show-recorder stop"

View File

@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php');
class Airtime194Upgrade{ class Airtime194Upgrade{
const CONF_FILE_LIQUIDSOAP = "/etc/airtime/liquidsoap.cfg"; const CONF_FILE_LIQUIDSOAP = "/etc/airtime/liquidsoap.cfg";
@ -67,6 +67,161 @@ class Airtime194Upgrade{
} }
} }
class AirtimeIni194{
const CONF_FILE_AIRTIME = "/etc/airtime/airtime.conf";
const CONF_FILE_PYPO = "/etc/airtime/pypo.cfg";
const CONF_FILE_RECORDER = "/etc/airtime/recorder.cfg";
const CONF_FILE_LIQUIDSOAP = "/etc/airtime/liquidsoap.cfg";
const CONF_FILE_MEDIAMONITOR = "/etc/airtime/media-monitor.cfg";
const CONF_FILE_API_CLIENT = "/etc/airtime/api_client.cfg";
const CONF_FILE_MONIT = "/etc/monit/conf.d/airtime-monit.cfg";
/**
* This function updates an INI style config file.
*
* A property and the value the property should be changed to are
* supplied. If the property is not found, then no changes are made.
*
* @param string $p_filename
* The path the to the file.
* @param string $p_property
* The property to look for in order to change its value.
* @param string $p_value
* The value the property should be changed to.
*
*/
public static function UpdateIniValue($p_filename, $p_property, $p_value)
{
$lines = file($p_filename);
$n=count($lines);
foreach ($lines as &$line) {
if ($line[0] != "#"){
$key_value = explode("=", $line);
$key = trim($key_value[0]);
if ($key == $p_property){
$line = "$p_property = $p_value".PHP_EOL;
}
}
}
$fp=fopen($p_filename, 'w');
for($i=0; $i<$n; $i++){
fwrite($fp, $lines[$i]);
}
fclose($fp);
}
public static function ReadPythonConfig($p_filename)
{
$values = array();
$lines = file($p_filename);
$n=count($lines);
for ($i=0; $i<$n; $i++) {
if (strlen($lines[$i]) && !in_array(substr($lines[$i], 0, 1), array('#', PHP_EOL))){
$info = explode("=", $lines[$i]);
$values[trim($info[0])] = trim($info[1]);
}
}
return $values;
}
public static function MergeConfigFiles($configFiles, $suffix) {
foreach ($configFiles as $conf) {
if (file_exists("$conf$suffix.bak")) {
if($conf === AirtimeIni194::CONF_FILE_AIRTIME) {
// Parse with sections
$newSettings = parse_ini_file($conf, true);
$oldSettings = parse_ini_file("$conf$suffix.bak", true);
}
else {
$newSettings = AirtimeIni194::ReadPythonConfig($conf);
$oldSettings = AirtimeIni194::ReadPythonConfig("$conf$suffix.bak");
}
$settings = array_keys($newSettings);
foreach($settings as $section) {
// skip airtim_dir as we want to use new value
if(isset($oldSettings[$section])) {
if(is_array($oldSettings[$section])) {
$sectionKeys = array_keys($newSettings[$section]);
foreach($sectionKeys as $sectionKey) {
if($sectionKey != "airtime_dir"){
if(isset($oldSettings[$section][$sectionKey])) {
AirtimeIni194::UpdateIniValue($conf, $sectionKey, $oldSettings[$section][$sectionKey]);
}
}
}
}
else {
AirtimeIni194::UpdateIniValue($conf, $section, $oldSettings[$section]);
}
}
}
}
}
}
public static function upgradeConfigFiles(){
$configFiles = array(AirtimeIni194::CONF_FILE_AIRTIME,
AirtimeIni194::CONF_FILE_PYPO,
AirtimeIni194::CONF_FILE_RECORDER,
AirtimeIni194::CONF_FILE_LIQUIDSOAP);
// Backup the config files
$suffix = date("Ymdhis")."-1.9.4";
foreach ($configFiles as $conf) {
if (file_exists($conf)) {
echo "Backing up $conf to $conf$suffix.bak".PHP_EOL;
copy($conf, $conf.$suffix.".bak");
}
}
$default_suffix = "194";
AirtimeIni194::CreateIniFiles($default_suffix);
AirtimeIni194::MergeConfigFiles($configFiles, $suffix);
}
/**
* This function creates the /etc/airtime configuration folder
* and copies the default config files to it.
*/
public static function CreateIniFiles($suffix)
{
if (!file_exists("/etc/airtime/")){
if (!mkdir("/etc/airtime/", 0755, true)){
echo "Could not create /etc/airtime/ directory. Exiting.";
exit(1);
}
}
if (!copy(__DIR__."/airtime.conf.$suffix", AirtimeIni194::CONF_FILE_AIRTIME)){
echo "Could not copy airtime.conf to /etc/airtime/. Exiting.";
exit(1);
}
if (!copy(__DIR__."/pypo.cfg.$suffix", AirtimeIni194::CONF_FILE_PYPO)){
echo "Could not copy pypo.cfg to /etc/airtime/. Exiting.";
exit(1);
}
if (!copy(__DIR__."/recorder.cfg.$suffix", AirtimeIni194::CONF_FILE_RECORDER)){
echo "Could not copy recorder.cfg to /etc/airtime/. Exiting.";
exit(1);
}
if (!copy(__DIR__."/liquidsoap.cfg.$suffix", AirtimeIni194::CONF_FILE_LIQUIDSOAP)){
echo "Could not copy liquidsoap.cfg to /etc/airtime/. Exiting.";
exit(1);
}
}
}
echo "* Updating configFiles\n";
AirtimeIni194::upgradeConfigFiles();
$values = parse_ini_file(Airtime194Upgrade::CONF_FILE_AIRTIME, true); $values = parse_ini_file(Airtime194Upgrade::CONF_FILE_AIRTIME, true);
$phpDir = $values['general']['airtime_dir']; $phpDir = $values['general']['airtime_dir'];
@ -74,3 +229,5 @@ Airtime194Upgrade::InstallAirtimePhpServerCode($phpDir);
Airtime194Upgrade::ModifyHtAccessTimezone($phpDir); Airtime194Upgrade::ModifyHtAccessTimezone($phpDir);
Airtime194Upgrade::upgradeLiquidsoapCfgPerms(); Airtime194Upgrade::upgradeLiquidsoapCfgPerms();
AirtimeInstall::CreateSymlinksToUtils();

View File

@ -0,0 +1,23 @@
[database]
host = localhost
dbname = airtime
dbuser = airtime
dbpass = airtime
[rabbitmq]
host = 127.0.0.1
port = 5672
user = guest
password = guest
vhost = /
[general]
api_key = AAA
web_server_user = www-data
airtime_dir = /usr/share/airtime/
base_url = localhost
base_port = 80
[soundcloud]
connection_retries = 3
time_between_retries = 60

View File

@ -0,0 +1,110 @@
bin_dir = "/usr/lib/airtime/api_clients"
#############################
## Common
#############################
# Value needed to access the API
api_key = 'AAA'
# Path to the base of the API
api_base = 'api'
# URL to get the version number of the server API
version_url = 'version/api_key/%%api_key%%'
# Hostname
base_url = 'localhost'
base_port = 80
#############################
## Config for Media Monitor
#############################
# URL to setup the media monitor
media_setup_url = 'media-monitor-setup/format/json/api_key/%%api_key%%'
# Tell Airtime the file id associated with a show instance.
upload_recorded = 'upload-recorded/format/json/api_key/%%api_key%%/fileid/%%fileid%%/showinstanceid/%%showinstanceid%%'
# URL to tell Airtime to update file's meta data
update_media_url = 'reload-metadata/format/json/api_key/%%api_key%%/mode/%%mode%%'
# URL to tell Airtime we want a listing of all files it knows about
list_all_db_files = 'list-all-files/format/json/api_key/%%api_key%%/dir_id/%%dir_id%%'
# URL to tell Airtime we want a listing of all dirs its watching (including the stor dir)
list_all_watched_dirs = 'list-all-watched-dirs/format/json/api_key/%%api_key%%'
# URL to tell Airtime we want to add watched directory
add_watched_dir = 'add-watched-dir/format/json/api_key/%%api_key%%/path/%%path%%'
# URL to tell Airtime we want to add watched directory
remove_watched_dir = 'remove-watched-dir/format/json/api_key/%%api_key%%/path/%%path%%'
# URL to tell Airtime we want to add watched directory
set_storage_dir = 'set-storage-dir/format/json/api_key/%%api_key%%/path/%%path%%'
#############################
## Config for Recorder
#############################
# URL to get the schedule of shows set to record
show_schedule_url = 'recorded-shows/format/json/api_key/%%api_key%%'
# URL to upload the recorded show's file to Airtime
upload_file_url = 'upload-file/format/json/api_key/%%api_key%%'
#number of retries to upload file if connection problem
upload_retries = 3
#time to wait between attempts to upload file if connection problem (in seconds)
upload_wait = 60
################################################################################
# Uncomment *one of the sets* of values from the API clients below, and comment
# out all the others.
################################################################################
#############################
## Config for Pypo
#############################
# Schedule export path.
# %%from%% - starting date/time in the form YYYY-MM-DD-hh-mm
# %%to%% - starting date/time in the form YYYY-MM-DD-hh-mm
export_url = 'schedule/api_key/%%api_key%%'
get_media_url = 'get-media/file/%%file%%/api_key/%%api_key%%'
# Update whether a schedule group has begun playing.
update_item_url = 'notify-schedule-group-play/api_key/%%api_key%%/schedule_id/%%schedule_id%%'
# Update whether an audio clip is currently playing.
update_start_playing_url = 'notify-media-item-start-play/api_key/%%api_key%%/media_id/%%media_id%%/schedule_id/%%schedule_id%%'
# ???
generate_range_url = 'generate_range_dp.php'
##############
# OBP config #
##############
# URL to get the version number of the server API
#version_url = 'api/pypo/status/json'
# Schedule export path.
# %%from%% - starting date/time in the form YYYY-MM-DD-hh-mm
# %%to%% - starting date/time in the form YYYY-MM-DD-hh-mm
# Update whether an item has been played.
#update_item_url = 'api/pypo/update_shedueled_item/$$item_id%%?played=%%played%%'
# Update whether an item is currently playing.
#update_start_playing_url = 'api/pypo/mod/medialibrary/?playlist_type=%%playlist_type%%&export_source=%%export_source%%&media_id=%%media_id%%&playlist_id=%%playlist_id%%&transmission_id=%%transmission_id%%'
# ???
#generate_range_url = 'api/pypo/generate_range_dp/'

View File

@ -0,0 +1,55 @@
###########################################
# Liquidsoap config file #
###########################################
###########################################
# Output settings #
###########################################
output_sound_device = false
output_icecast_vorbis = true
output_icecast_mp3 = false
output_shoutcast = false
#output_bitrate = 128
#output_samplerate = 44100
#output_stereo = true
###########################################
# Logging settings #
###########################################
log_file = "/var/log/airtime/pypo-liquidsoap/<script>.log"
#log_level = 3
###########################################
# Icecast Stream settings #
###########################################
icecast_host = "127.0.0.1"
icecast_port = 8000
icecast_pass = "hackme"
# Icecast mountpoint names
mount_point_mp3 = "airtime.mp3"
mount_point_vorbis = "airtime.ogg"
# Webstream metadata settings
icecast_url = "http://airtime.sourcefabric.org"
icecast_description = "Airtime Radio!"
icecast_genre = "genre"
# Audio stream metadata for vorbis/ogg is disabled by default
# due to a number of client media players that disconnect
# when the metadata changes to a new track. Some versions of
# mplayer and VLC have this problem. Enable this option at your
# own risk!
output_icecast_vorbis_metadata = false
###########################################
# Shoutcast Stream settings #
###########################################
shoutcast_host = "127.0.0.1"
shoutcast_port = 9000
shoutcast_pass = "testing"
# Webstream metadata settings
shoutcast_url = "http://airtime.sourcefabric.org"
shoutcast_genre = "genre"

View File

@ -0,0 +1,21 @@
api_client = "airtime"
# where the binary files live
bin_dir = '/usr/lib/airtime/media-monitor'
# where the logging files live
log_dir = '/var/log/airtime/media-monitor'
############################################
# RabbitMQ settings #
############################################
rabbitmq_host = 'localhost'
rabbitmq_user = 'guest'
rabbitmq_password = 'guest'
############################################
# Media-Monitor preferences #
############################################
check_filesystem_events = 5 #how long to queue up events performed on the files themselves.
check_airtime_events = 30 #how long to queue metadata input from airtime.

View File

@ -0,0 +1,72 @@
############################################
# pypo - configuration #
############################################
# Set the type of client you are using.
# Currently supported types:
# 1) "obp" = Open Broadcast Platform
# 2) "airtime"
#
api_client = "airtime"
############################################
# Cache Directories #
# *include* trailing slash !! #
############################################
cache_dir = '/var/tmp/airtime/pypo/cache/'
file_dir = '/var/tmp/airtime/pypo/files/'
tmp_dir = '/var/tmp/airtime/pypo/tmp/'
############################################
# Setup Directories #
# Do *not* include trailing slash !! #
############################################
cache_base_dir = '/var/tmp/airtime/pypo'
bin_dir = '/usr/lib/airtime/pypo'
log_base_dir = '/var/log/airtime'
pypo_log_dir = '/var/log/airtime/pypo'
liquidsoap_log_dir = '/var/log/airtime/pypo-liquidsoap'
############################################
# Liquidsoap settings #
############################################
ls_host = '127.0.0.1'
ls_port = '1234'
############################################
# RabbitMQ settings #
############################################
rabbitmq_host = 'localhost'
rabbitmq_user = 'guest'
rabbitmq_password = 'guest'
############################################
# pypo preferences #
############################################
prepare_ahead = 24 #in hours
cache_for = 24 #how long to hold the cache, in hours
# Poll interval in seconds.
#
# This will rarely need to be changed because any schedule changes are
# automatically sent to pypo immediately.
#
# This is how often the poll script downloads new schedules and files from the
# server in the event that no changes are made to the schedule.
#
poll_interval = 3600 # in seconds.
# Push interval in seconds.
#
# This is how often the push script checks whether it has something new to
# push to liquidsoap.
#
# It's hard to imagine a situation where this should be more than 1 second.
#
push_interval = 1 # in seconds
# 'pre' or 'otf'. 'pre' cues while playlist preparation
# while 'otf' (on the fly) cues while loading into ls
# (needs the post_processor patch)
cue_style = 'pre'

View File

@ -0,0 +1,26 @@
api_client = "airtime"
# where the binary files live
bin_dir = '/usr/lib/airtime/show-recorder'
# base path to store recordered shows at
base_recorded_files = '/var/tmp/airtime/show-recorder/'
# where the logging files live
log_dir = '/var/log/airtime/show-recorder'
############################################
# RabbitMQ settings #
############################################
rabbitmq_host = 'localhost'
rabbitmq_user = 'guest'
rabbitmq_password = 'guest'
############################################
# Recorded Audio settings #
############################################
record_bitrate = 256
record_samplerate = 44100
record_channels = 2
record_sample_size = 16