Merge branch 'master' of dev.sourcefabric.org:airtime
Conflicts: VERSION airtime_mvc/application/configs/conf.php airtime_mvc/application/models/Playlist.php airtime_mvc/application/models/Schedule.php airtime_mvc/application/models/Shows.php airtime_mvc/application/models/StoredFile.php airtime_mvc/application/views/scripts/form/preferences_general.phtml airtime_mvc/application/views/scripts/user/remove-user.phtml airtime_mvc/public/js/airtime/schedule/add-show.js airtime_mvc/public/js/airtime/schedule/schedule.js install/airtime-upgrade.php install/include/AirtimeInstall.php python_apps/api_clients/api_client.py utils/airtime-clean-storage utils/airtime-clean-storage.php utils/airtime-import utils/airtime-import.php
This commit is contained in:
commit
eb76bbe7f0
2
VERSION
2
VERSION
|
@ -1,2 +1,2 @@
|
|||
PRODUCT_ID=Airtime
|
||||
PRODUCT_RELEASE=1.8.0
|
||||
PRODUCT_RELEASE=1.9.0-beta
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* /etc/airtime/recorder.cfg
|
||||
*/
|
||||
|
||||
define('AIRTIME_VERSION', '1.8.0');
|
||||
define('AIRTIME_VERSION', '1.9.0-beta');
|
||||
define('AIRTIME_COPYRIGHT_DATE', '2010-2011');
|
||||
define('AIRTIME_REST_VERSION', '1.1');
|
||||
|
||||
|
|
|
@ -60,7 +60,6 @@ class ScheduleGroup {
|
|||
if (empty($length)) {
|
||||
return new PEAR_Error("Length is empty.");
|
||||
}
|
||||
|
||||
// Insert into the table
|
||||
$this->groupId = $CC_DBC->GetOne("SELECT nextval('schedule_group_id_seq')");
|
||||
|
||||
|
|
|
@ -282,7 +282,8 @@ class Show {
|
|||
|
||||
$showId = $this->getId();
|
||||
$sql = "SELECT last_show FROM cc_show_days"
|
||||
." WHERE show_id = $showId";
|
||||
." WHERE show_id = $showId"
|
||||
." ORDER BY last_show DESC";
|
||||
|
||||
$endDate = $CC_DBC->GetOne($sql);
|
||||
|
||||
|
@ -367,7 +368,8 @@ class Show {
|
|||
|
||||
$showId = $this->getId();
|
||||
$sql = "SELECT first_show FROM cc_show_days"
|
||||
." WHERE show_id = $showId";
|
||||
." WHERE show_id = $showId"
|
||||
." ORDER BY first_show";
|
||||
|
||||
$firstDate = $CC_DBC->GetOne($sql);
|
||||
|
||||
|
|
|
@ -431,22 +431,18 @@ class StoredFile {
|
|||
*
|
||||
* @param string $p_gunid
|
||||
* globally unique id of file
|
||||
* @param boolean $p_autoload
|
||||
* if TRUE, automatically load the row from the DB
|
||||
*/
|
||||
public function __construct($p_gunid=NULL, $p_autoload=TRUE)
|
||||
public function __construct($p_gunid=NULL)
|
||||
{
|
||||
$this->gunid = $p_gunid;
|
||||
if (empty($this->gunid)) {
|
||||
$this->gunid = StoredFile::generateGunid();
|
||||
}
|
||||
else {
|
||||
if ($p_autoload) {
|
||||
$this->loadMetadata();
|
||||
$this->exists = is_file($this->filepath) && is_readable($this->filepath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* For testing only, do not use.
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
?>
|
||||
<?php foreach ($this->element->getElement('streamFormat')->getMultiOptions() as $radio) : ?>
|
||||
<label for="streamFormat-<?php echo $i ?>">
|
||||
<input type="radio" value="<?php echo $i ?>" id="streamFormat-<?php echo $i ?>" name="streamFormat" <?php if($i == $value){echo 'checked="checked"';}?>/>
|
||||
<input type="radio" value="<?php echo $i ?>" id="streamFormat-<?php echo $i ?>" name="streamFormat" <?php if($i == $value){echo 'checked="checked"';}?> >
|
||||
<?php echo $radio ?>
|
||||
</input>
|
||||
</label>
|
||||
|
@ -59,7 +59,7 @@
|
|||
?>
|
||||
<?php foreach ($this->element->getElement('thirdPartyApi')->getMultiOptions() as $radio) : ?>
|
||||
<label for="thirdPartyApi-<?php echo $i ?>">
|
||||
<input type="radio" value="<?php echo $i ?>" id="thirdPartyApi-<?php echo $i ?>" name="thirdPartyApi" <?php if($i == $value){echo 'checked="checked"';}?> />
|
||||
<input type="radio" value="<?php echo $i ?>" id="thirdPartyApi-<?php echo $i ?>" name="thirdPartyApi" <?php if($i == $value){echo 'checked="checked"';}?>>
|
||||
<?php echo $radio ?>
|
||||
</input>
|
||||
</label>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<?php
|
||||
echo this->entries;
|
||||
echo $this->entries;
|
||||
?>
|
||||
|
|
|
@ -104,6 +104,7 @@ function setAddShowEvents() {
|
|||
|
||||
form.find("#add_show_rebroadcast").click(function(){
|
||||
$(this).blur();
|
||||
if(form.find("#add_show_record").attr('checked')){
|
||||
if($(this).attr('checked') && !form.find("#add_show_repeats").attr('checked')) {
|
||||
form.find("#add_show_rebroadcast_absolute").show();
|
||||
}
|
||||
|
@ -113,6 +114,7 @@ function setAddShowEvents() {
|
|||
else {
|
||||
form.find("#schedule-record-rebroadcast > fieldset:not(:first-child)").hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.find("#add_show_repeat_type").change(function(){
|
||||
|
|
|
@ -228,7 +228,7 @@ function buildScheduleDialog(json){
|
|||
|
||||
dialog.dialog({
|
||||
autoOpen: false,
|
||||
title: 'Schedule Playlist',
|
||||
title: 'Schedule Media',
|
||||
width: 1100,
|
||||
height: 550,
|
||||
modal: true,
|
||||
|
|
|
@ -14,6 +14,8 @@ require_once(dirname(__FILE__).'/include/AirtimeInstall.php');
|
|||
AirtimeInstall::ExitIfNotRoot();
|
||||
AirtimeInstall::DbConnect(true);
|
||||
|
||||
$version = AirtimeInstall::GetAirtimeVersion();
|
||||
if (!$version){
|
||||
if(AirtimeInstall::DbTableExists('cc_show_rebroadcast') === true) {
|
||||
$version = "1.7.0";
|
||||
echo "Airtime Version: ".$version." ".PHP_EOL;
|
||||
|
@ -22,6 +24,7 @@ else {
|
|||
$version = "1.6";
|
||||
echo "Airtime Version: ".$version." ".PHP_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
echo "******************************** Update Begin *********************************".PHP_EOL;
|
||||
|
||||
|
@ -31,6 +34,9 @@ if(strcmp($version, "1.7.0") < 0) {
|
|||
if(strcmp($version, "1.8.0") < 0) {
|
||||
system("php ".__DIR__."/upgrades/airtime-1.8/airtime-upgrade.php");
|
||||
}
|
||||
if (strcmp($version, "1.9.0") < 0){
|
||||
system("php ".__DIR__."/upgrades/airtime-1.9/airtime-upgrade.php");
|
||||
}
|
||||
|
||||
AirtimeInstall::SetAirtimeVersion(AIRTIME_VERSION);
|
||||
|
||||
|
|
|
@ -124,9 +124,9 @@ class AirtimeInstall
|
|||
|
||||
echo "* Creating Airtime database user".PHP_EOL;
|
||||
|
||||
// Create the database user
|
||||
$command = "sudo -u postgres psql postgres --command \"CREATE USER {$CC_CONFIG['dsn']['username']} "
|
||||
." ENCRYPTED PASSWORD '{$CC_CONFIG['dsn']['password']}' LOGIN CREATEDB NOCREATEUSER;\" 2>/dev/null";
|
||||
$username = $CC_CONFIG['dsn']['username'];
|
||||
$password = $CC_CONFIG['dsn']['password'];
|
||||
$command = "echo \"CREATE USER $username ENCRYPTED PASSWORD '$password' LOGIN CREATEDB NOCREATEUSER;\" | sudo -u postgres psql";
|
||||
|
||||
@exec($command, $output, $results);
|
||||
if ($results == 0) {
|
||||
|
@ -148,7 +148,9 @@ class AirtimeInstall
|
|||
|
||||
echo "* Creating Airtime database".PHP_EOL;
|
||||
|
||||
$command = "sudo -u postgres createdb {$CC_CONFIG['dsn']['database']} --owner {$CC_CONFIG['dsn']['username']} 2> /dev/null";
|
||||
$database = $CC_CONFIG['dsn']['database'];
|
||||
$username = $CC_CONFIG['dsn']['username'];
|
||||
$command = "echo \"CREATE DATABASE $database OWNER $username\" | sudo -u postgres psql";
|
||||
@exec($command, $output, $results);
|
||||
if ($results == 0) {
|
||||
echo "* Database '{$CC_CONFIG['dsn']['database']}' created.".PHP_EOL;
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Airtime
|
||||
* @subpackage StorageServer
|
||||
* @copyright 2010 Sourcefabric O.P.S.
|
||||
* @license http://www.gnu.org/licenses/gpl.txt
|
||||
*/
|
||||
|
||||
set_include_path(__DIR__.'/../../../airtime_mvc/library' . PATH_SEPARATOR . get_include_path());
|
||||
require_once __DIR__.'/../../../airtime_mvc/application/configs/conf.php';
|
||||
require_once(dirname(__FILE__).'/../../include/AirtimeInstall.php');
|
||||
require_once(dirname(__FILE__).'/../../include/AirtimeIni.php');
|
||||
|
||||
AirtimeInstall::CreateZendPhpLogFile();
|
|
@ -180,7 +180,7 @@ class AirTimeApiClient(ApiClientInterface):
|
|||
print 'Unable to get Airtime version number.'
|
||||
print
|
||||
return False
|
||||
elif (version[0:4] != "1.8."):
|
||||
elif (version[0:4] != "1.9."):
|
||||
if (verbose):
|
||||
print 'Airtime version: ' + str(version)
|
||||
print 'pypo not compatible with this version of Airtime.'
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
api_client = "airtime"
|
||||
|
||||
# Hostname
|
||||
base_url = 'localhost'
|
||||
base_port = 80
|
||||
|
||||
# where the binary files live
|
||||
bin_dir = '/usr/lib/airtime/media-monitor'
|
||||
|
||||
# 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'
|
||||
|
||||
# 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%%'
|
||||
|
||||
# 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-recorded/format/json/api_key/%%api_key%%'
|
|
@ -0,0 +1,52 @@
|
|||
import os
|
||||
import pyinotify
|
||||
from pyinotify import WatchManager, Notifier, ThreadedNotifier, EventsCodes, ProcessEvent
|
||||
|
||||
# configure logging
|
||||
try:
|
||||
logging.config.fileConfig("logging.cfg")
|
||||
except Exception, e:
|
||||
print 'Error configuring logging: ', e
|
||||
sys.exit()
|
||||
|
||||
# loading config file
|
||||
try:
|
||||
config = ConfigObj('/etc/airtime/recorder.cfg')
|
||||
except Exception, e:
|
||||
print 'Error loading config file: ', e
|
||||
sys.exit()
|
||||
|
||||
# watched events
|
||||
mask = pyinotify.ALL_EVENTS
|
||||
|
||||
wm = WatchManager()
|
||||
wdd = wm.add_watch('/srv/airtime/stor', mask, rec=True)
|
||||
|
||||
class PTmp(ProcessEvent):
|
||||
def process_IN_CREATE(self, event):
|
||||
if event.dir :
|
||||
global wm
|
||||
wdd = wm.add_watch(event.pathname, mask, rec=True)
|
||||
#print wdd.keys()
|
||||
|
||||
print "%s: %s" % (event.maskname, os.path.join(event.path, event.name))
|
||||
|
||||
def process_IN_MODIFY(self, event):
|
||||
if not event.dir :
|
||||
print event.path
|
||||
|
||||
print "%s: %s" % (event.maskname, os.path.join(event.path, event.name))
|
||||
|
||||
def process_default(self, event):
|
||||
print "%s: %s" % (event.maskname, os.path.join(event.path, event.name))
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
try:
|
||||
notifier = Notifier(wm, PTmp(), read_freq=2, timeout=1)
|
||||
notifier.coalesce_events()
|
||||
notifier.loop()
|
||||
except KeyboardInterrupt:
|
||||
notifier.stop()
|
||||
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
[loggers]
|
||||
keys=root
|
||||
|
||||
[handlers]
|
||||
keys=consoleHandler
|
||||
|
||||
[formatters]
|
||||
keys=simpleFormatter
|
||||
|
||||
[logger_root]
|
||||
level=DEBUG
|
||||
handlers=consoleHandler
|
||||
|
||||
[handler_consoleHandler]
|
||||
class=StreamHandler
|
||||
level=DEBUG
|
||||
formatter=simpleFormatter
|
||||
args=(sys.stdout,)
|
||||
|
||||
[formatter_simpleFormatter]
|
||||
format=%(asctime)s %(levelname)s - [%(filename)s : %(funcName)s() : line %(lineno)d] - %(message)s
|
||||
datefmt=
|
|
@ -8,6 +8,7 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
|
|||
echo "400 Not executable\r\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
set_include_path('/var/www/airtime/library' . PATH_SEPARATOR . get_include_path());
|
||||
set_include_path('/var/www/airtime/application/models' . PATH_SEPARATOR . get_include_path());
|
||||
require_once('/var/www/airtime/application/configs/conf.php');
|
||||
|
|
Loading…
Reference in New Issue