Merge branch '2.3.x' into devel

This commit is contained in:
denise 2013-02-13 16:09:53 -05:00
commit ec159131a8
57 changed files with 4238 additions and 429 deletions

View file

@ -1,6 +1,6 @@
<?php
// This file generated by Propel 1.5.2 convert-conf target
// from XML runtime conf file /home/rudi/reps/Airtime/airtime_mvc/build/runtime-conf.xml
// from XML runtime conf file /home/denise/airtime/airtime_mvc/build/runtime-conf.xml
$conf = array (
'datasources' =>
array (

View file

@ -261,6 +261,13 @@ class ApiController extends Zend_Controller_Action
"currentShow"=>Application_Model_Show::getCurrentShow($utcTimeNow),
"nextShow"=>Application_Model_Show::getNextShows($utcTimeNow, $limit, $utcTimeEnd)
);
// XSS exploit prevention
foreach ($result["currentShow"] as &$current) {
$current["name"] = htmlspecialchars($current["name"]);
}
foreach ($result["nextShow"] as &$next) {
$next["name"] = htmlspecialchars($next["name"]);
}
Application_Model_Show::convertToLocalTimeZone($result["currentShow"],
array("starts", "ends", "start_timestamp", "end_timestamp"));
@ -269,6 +276,17 @@ class ApiController extends Zend_Controller_Action
} else {
$result = Application_Model_Schedule::GetPlayOrderRange();
// XSS exploit prevention
$result["previous"]["name"] = htmlspecialchars($result["previous"]["name"]);
$result["current"]["name"] = htmlspecialchars($result["current"]["name"]);
$result["next"]["name"] = htmlspecialchars($result["next"]["name"]);
foreach ($result["currentShow"] as &$current) {
$current["name"] = htmlspecialchars($current["name"]);
}
foreach ($result["nextShow"] as &$next) {
$next["name"] = htmlspecialchars($next["name"]);
}
//Convert from UTC to localtime for Web Browser.
Application_Model_Show::ConvertToLocalTimeZone($result["currentShow"],
array("starts", "ends", "start_timestamp", "end_timestamp"));
@ -316,6 +334,14 @@ class ApiController extends Zend_Controller_Action
$result[$dow[$i]] = $shows;
}
// XSS exploit prevention
foreach ($dow as $d) {
foreach ($result[$d] as &$show) {
$show["name"] = htmlspecialchars($show["name"]);
$show["url"] = htmlspecialchars($show["url"]);
}
}
//used by caller to determine if the airtime they are running or widgets in use is out of date.
$result['AIRTIME_API_VERSION'] = AIRTIME_API_VERSION;
header("Content-type: text/javascript");

View file

@ -62,8 +62,8 @@ class AudiopreviewController extends Zend_Controller_Action
$this->view->audioFileID = $audioFileID;
// We need to decode artist and title because it gets
// encoded twice in js
$this->view->audioFileArtist = urldecode($audioFileArtist);
$this->view->audioFileTitle = urldecode($audioFileTitle);
$this->view->audioFileArtist = htmlspecialchars(urldecode($audioFileArtist));
$this->view->audioFileTitle = htmlspecialchars(urldecode($audioFileTitle));
$this->view->type = $type;
$this->_helper->viewRenderer->setRender('audio-preview');

View file

@ -412,7 +412,7 @@ class LibraryController extends Zend_Controller_Action
$formValues = $this->_getParam('data', null);
$formdata = array();
foreach ($formValues as $val) {
$formdata[$val["name"]] = htmlspecialchars($val["value"]);
$formdata[$val["name"]] = $val["value"];
}
$file->setDbColMetadata($formdata);

View file

@ -139,18 +139,14 @@ class PreferenceController extends Zend_Controller_Action
{
$CC_CONFIG = Config::getConfig();
if(Application_Model_Preference::GetPlanLevel() == 'disabled'){
$baseUrl = Application_Common_OsPath::getBaseDir();
$this->view->headScript()->appendFile($baseUrl.'js/serverbrowse/serverbrowser.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$this->view->headScript()->appendFile($baseUrl.'js/airtime/preferences/musicdirs.js?'.$CC_CONFIG['airtime_version'],'text/javascript');
$watched_dirs_pref = new Application_Form_WatchedDirPreferences();
$this->view->form = $watched_dirs_pref;
}
}
public function streamSettingAction()
{

View file

@ -480,7 +480,7 @@ class ScheduleController extends Zend_Controller_Action
$this->view->percentFilled = $show->getPercentScheduled();
$this->view->showContent = $show->getShowListContent();
$this->view->dialog = $this->view->render('schedule/show-content-dialog.phtml');
$this->view->showTitle = $show->getName();
$this->view->showTitle = htmlspecialchars($show->getName());
unset($this->view->showContent);
}
@ -574,7 +574,10 @@ class ScheduleController extends Zend_Controller_Action
return;
}
if ($isDJ) {
// in case a user was once a dj and had been assigned to a show
// but was then changed to an admin user we need to allow
// the user to edit the show as an admin (CC-4925)
if ($isDJ && !$isAdminOrPM) {
$this->view->action = "dj-edit-show";
}

View file

@ -7,6 +7,7 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
{
$notEmptyValidator = Application_Form_Helper_ValidationTypes::overrideNotEmptyValidator();
$rangeValidator = Application_Form_Helper_ValidationTypes::overrideBetweenValidator(0, 59.9);
$this->setDecorators(array(
array('ViewScript', array('viewScript' => 'form/preferences_general.phtml'))
));
@ -34,9 +35,13 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm
'label' => _('Default Fade (s):'),
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(array($notEmptyValidator, 'regex', false,
array('/^[0-9]{1,2}(\.\d{1})?$/',
'messages' => _('enter a time in seconds 0{.0}')))),
'validators' => array(
array(
$rangeValidator,
$notEmptyValidator,
'regex', false, array('/^[0-9]{1,2}(\.\d{1})?$/', 'messages' => _('enter a time in seconds 0{.0}'))
)
),
'value' => $defaultFade,
'decorators' => array(
'ViewHelper'

View file

@ -257,6 +257,10 @@ SQL;
//format original length
$formatter = new LengthFormatter($row['orig_length']);
$row['orig_length'] = $formatter->format();
// XSS exploit prevention
$row["track_title"] = htmlspecialchars($row["track_title"]);
$row["creator"] = htmlspecialchars($row["creator"]);
}
return $rows;
@ -399,10 +403,13 @@ SQL;
$entry = $this->blockItem;
$entry["id"] = $file->getDbId();
$entry["pos"] = $pos;
$entry["cliplength"] = $file->getDbLength();
$entry["cueout"] = $file->getDbCueout();
$entry["cuein"] = $file->getDbCuein();
$cue_out = Application_Common_DateHelper::calculateLengthInSeconds($entry['cueout']);
$cue_in = Application_Common_DateHelper::calculateLengthInSeconds($entry['cuein']);
$entry["cliplength"] = Application_Common_DateHelper::secondsToPlaylistTime($cue_out-$cue_in);
return $entry;
} else {
throw new Exception("trying to add a file that does not exist.");
@ -1299,7 +1306,7 @@ SQL;
foreach ($out as $crit) {
$criteria = $crit->getDbCriteria();
$modifier = $crit->getDbModifier();
$value = $crit->getDbValue();
$value = htmlspecialchars($crit->getDbValue());
$extra = $crit->getDbExtra();
if ($criteria == "limit") {

View file

@ -269,6 +269,10 @@ SQL;
//format original length
$formatter = new LengthFormatter($row['orig_length']);
$row['orig_length'] = $formatter->format();
// XSS exploit prevention
$row["track_title"] = htmlspecialchars($row["track_title"]);
$row["creator"] = htmlspecialchars($row["creator"]);
}
return $rows;
@ -398,6 +402,13 @@ SQL;
if ($obj instanceof CcFiles && $obj) {
$entry["cuein"] = $obj->getDbCuein();
$entry["cueout"] = $obj->getDbCueout();
$cue_out = Application_Common_DateHelper::calculateLengthInSeconds($entry['cueout']);
$cue_in = Application_Common_DateHelper::calculateLengthInSeconds($entry['cuein']);
$entry["cliplength"] = Application_Common_DateHelper::secondsToPlaylistTime($cue_out-$cue_in);
} elseif ($obj instanceof CcWebstream && $obj) {
$entry["cuein"] = "00:00:00";
$entry["cueout"] = $entry["cliplength"];
}
$entry["ftype"] = $objType;
}

View file

@ -203,9 +203,12 @@ class Application_Model_Scheduler
$file = CcFilesQuery::create()->findPk($fileId);
if (isset($file) && $file->visible()) {
$data["id"] = $file->getDbId();
$data["cliplength"] = $file->getDbLength();
$data["cuein"] = "00:00:00";
$data["cueout"] = $file->getDbLength();
$data["cuein"] = $file->getDbCuein();
$data["cueout"] = $file->getDbCueout();
$cuein = Application_Common_DateHelper::calculateLengthInSeconds($data["cuein"]);
$cueout = Application_Common_DateHelper::calculateLengthInSeconds($data["cueout"]);
$data["cliplength"] = Application_Common_DateHelper::secondsToPlaylistTime($cueout - $cuein);
$defaultFade = Application_Model_Preference::GetDefaultFade();
if (isset($defaultFade)) {
//fade is in format SS.uuuuuu
@ -261,9 +264,12 @@ class Application_Model_Scheduler
$file = CcFilesQuery::create()->findPk($fileId);
if (isset($file) && $file->visible()) {
$data["id"] = $file->getDbId();
$data["cliplength"] = $file->getDbLength();
$data["cuein"] = "00:00:00";
$data["cueout"] = $file->getDbLength();
$data["cuein"] = $file->getDbCuein();
$data["cueout"] = $file->getDbCueout();
$cuein = Application_Common_DateHelper::calculateLengthInSeconds($data["cuein"]);
$cueout = Application_Common_DateHelper::calculateLengthInSeconds($data["cueout"]);
$data["cliplength"] = Application_Common_DateHelper::secondsToPlaylistTime($cueout - $cuein);
$defaultFade = Application_Model_Preference::GetDefaultFade();
if (isset($defaultFade)) {
//fade is in format SS.uuuuuu
@ -325,6 +331,8 @@ class Application_Model_Scheduler
$filler->setDbStarts($DT)
->setDbEnds($this->nowDT)
->setDbClipLength($cliplength)
->setDbCueIn('00:00:00')
->setDbCueOut('00:00:00')
->setDbPlayoutStatus(-1)
->setDbInstanceId($instance->getDbId())
->save($this->con);

View file

@ -275,9 +275,9 @@ class Application_Model_ShowBuilder
$formatter = new LengthFormatter(Application_Common_DateHelper::ConvertMSToHHMMSSmm($run_time*1000));
$row['runtime'] = $formatter->format();
$row["title"] = $p_item["file_track_title"];
$row["creator"] = $p_item["file_artist_name"];
$row["album"] = $p_item["file_album_title"];
$row["title"] = htmlspecialchars($p_item["file_track_title"]);
$row["creator"] = htmlspecialchars($p_item["file_artist_name"]);
$row["album"] = htmlspecialchars($p_item["file_album_title"]);
$row["cuein"] = $p_item["cue_in"];
$row["cueout"] = $p_item["cue_out"];

View file

@ -1024,8 +1024,10 @@ SQL;
$LIQUIDSOAP_ERRORS = array('TagLib: MPEG::Properties::read() -- Could not find a valid last MPEG frame in the stream.');
// Ask Liquidsoap if file is playable
$command = sprintf("/usr/bin/airtime-liquidsoap -c 'output.dummy(audio_to_stereo(single(\"%s\")))' 2>&1", $audio_file);
$ls_command = sprintf('/usr/bin/airtime-liquidsoap -v -c "output.dummy(audio_to_stereo(single(%s)))" 2>&1',
escapeshellarg($audio_file));
$command = "export PATH=/usr/local/bin:/usr/bin:/bin/usr/bin/ && $ls_command";
exec($command, $output, $rv);
$isError = count($output) > 0 && in_array($output[0], $LIQUIDSOAP_ERRORS);

View file

@ -46,8 +46,8 @@ class CcScheduleTableMap extends TableMap {
$this->addColumn('CLIP_LENGTH', 'DbClipLength', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('FADE_IN', 'DbFadeIn', 'TIME', false, null, '00:00:00');
$this->addColumn('FADE_OUT', 'DbFadeOut', 'TIME', false, null, '00:00:00');
$this->addColumn('CUE_IN', 'DbCueIn', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('CUE_OUT', 'DbCueOut', 'VARCHAR', false, null, '00:00:00');
$this->addColumn('CUE_IN', 'DbCueIn', 'VARCHAR', true, null, null);
$this->addColumn('CUE_OUT', 'DbCueOut', 'VARCHAR', true, null, null);
$this->addColumn('MEDIA_ITEM_PLAYED', 'DbMediaItemPlayed', 'BOOLEAN', false, null, false);
$this->addForeignKey('INSTANCE_ID', 'DbInstanceId', 'INTEGER', 'cc_show_instances', 'ID', true, null, null);
$this->addColumn('PLAYOUT_STATUS', 'DbPlayoutStatus', 'SMALLINT', true, null, 1);

View file

@ -77,14 +77,12 @@ abstract class BaseCcSchedule extends BaseObject implements Persistent
/**
* The value for the cue_in field.
* Note: this column has a database default value of: '00:00:00'
* @var string
*/
protected $cue_in;
/**
* The value for the cue_out field.
* Note: this column has a database default value of: '00:00:00'
* @var string
*/
protected $cue_out;
@ -161,8 +159,6 @@ abstract class BaseCcSchedule extends BaseObject implements Persistent
$this->clip_length = '00:00:00';
$this->fade_in = '00:00:00';
$this->fade_out = '00:00:00';
$this->cue_in = '00:00:00';
$this->cue_out = '00:00:00';
$this->media_item_played = false;
$this->playout_status = 1;
$this->broadcasted = 0;
@ -708,7 +704,7 @@ abstract class BaseCcSchedule extends BaseObject implements Persistent
$v = (string) $v;
}
if ($this->cue_in !== $v || $this->isNew()) {
if ($this->cue_in !== $v) {
$this->cue_in = $v;
$this->modifiedColumns[] = CcSchedulePeer::CUE_IN;
}
@ -728,7 +724,7 @@ abstract class BaseCcSchedule extends BaseObject implements Persistent
$v = (string) $v;
}
if ($this->cue_out !== $v || $this->isNew()) {
if ($this->cue_out !== $v) {
$this->cue_out = $v;
$this->modifiedColumns[] = CcSchedulePeer::CUE_OUT;
}
@ -842,14 +838,6 @@ abstract class BaseCcSchedule extends BaseObject implements Persistent
return false;
}
if ($this->cue_in !== '00:00:00') {
return false;
}
if ($this->cue_out !== '00:00:00') {
return false;
}
if ($this->media_item_played !== false) {
return false;
}

View file

@ -39,7 +39,7 @@
<?php if (count($watched_dirs) > 0): ?>
<?php foreach($watched_dirs as $watched_dir): ?>
<dd class="block-display selected-item">
<?php echo ($watched_dir->getExistsFlag())?"":"<span class='ui-icon-alert'><img src='/css/images/warning-icon.png'></span>"?><span id="folderPath" style="display:block; width:350px"><?php echo $watched_dir->getDirectory();?></span></span>
<?php echo ($watched_dir->getExistsFlag())?"":"<span class='ui-icon-alert'><img src='/css/images/warning-icon.png'></span>"?><span id="folderPath" style="display:block; width:350px"><?php echo htmlspecialchars($watched_dir->getDirectory());?></span></span>
<span title="<?php echo _("Rescan watched directory (This is useful if it is network mount and may be out of sync with Airtime)")?>" class="ui-icon ui-icon-refresh"></span>
<span title="<?php echo _("Remove watched directory")?>" class="ui-icon ui-icon-close"></span>

View file

@ -1,3 +1,9 @@
<?php
//XSS exploit prevention
foreach ($this->md as $key => &$value) {
$value = $this->escape($value);
}
?>
<?php if($this->type == "audioclip") : ?>
<table class='library-track-md'>
<tr><td><? echo _("Title:"); ?></td><td><?php echo ($this->md["MDATA_KEY_TITLE"]);?></td></tr>
@ -41,9 +47,18 @@
<span class='static'>o</span> <span><? echo _("Static Smart Block"); ?></span><br />
<span>o</span> <span><? echo _("Audio Track"); ?></span>
</div>
<?php } ?>
<?php if ($this->type == "playlist" || ($this->type == "block" && $this->blType == "Static")) {?>
<?php
//XSS exploit prevention
/*foreach ($this->contents as &$item) {
foreach ($item as $key => &$value) {
$value = $this->escape($value);
}
}*/
?>
<?php if ($this->type == "playlist") { ?>
<div class='file-md-qtip-left'><span><? echo _("Playlist Contents: "); ?></span></div>
<?php } else { ?>
@ -88,9 +103,13 @@
<?php } elseif ($this->blType == "Dynamic") { ?>
<div class='file-md-qtip-left'><span><? echo _("Dynamic Smart Block Criteria: "); ?></span></div>
<table class='library-get-file-md table-small'>
<?php foreach ($this->contents["crit"] as $criterias) : ?>
<?php foreach ($criterias as $crit ) : ?>
<?php foreach ($this->contents["crit"] as &$criterias) : ?>
<?php foreach ($criterias as &$crit ) : ?>
<?php
// XSS exploit prevention
//$crit["value"] = htmlspecialchars($crit["value"]);
//$crit["extra"] = htmlspecialchars($crit["extra"]);
$valMaxStrLen = 25;
if (strlen($crit["value"]) > $valMaxStrLen) {
$crit["value"] = substr($crit["value"], 0, 24)."...";

View file

@ -42,7 +42,7 @@ if (isset($this->obj)) {
<a id="playlist_name_display" contenteditable="true">
<?php
if (isset($this->unsavedName)) echo $this->unsavedName;
else echo $this->obj->getName();
else echo $this->escape($this->obj->getName());
?>
</a>
</h3>

View file

@ -13,9 +13,9 @@
<?php foreach($this->showContent as $row): ?>
<tr id="au_<?php echo $row["item_id"] ?>" class="<?php if($i&1){echo "even";}else{echo "odd";}?>">
<td><?php echo $row["starts"] ?></td>
<td><?php echo $row["track_title"] ?></td>
<td><?php echo $row["creator"] ?></td>
<td><?php echo $row["album"] ?></td>
<td><?php echo $this->escape($row["track_title"]) ?></td>
<td><?php echo $this->escape($row["creator"]) ?></td>
<td><?php echo $this->escape($row["album"]) ?></td>
<td class="library_length"><?php echo $row["length"] ?></td>
<td><?php echo $row["genre"] ?></td>
</tr>

View file

@ -29,7 +29,7 @@
<div class="playlist_title">
<div id="name-error" class="errors" style="display:none;"></div>
<h3 id="ws_name">
<a id="playlist_name_display" contenteditable="true"><?php echo $this->obj->getName(); ?></a>
<a id="playlist_name_display" contenteditable="true"><?php echo $this->escape($this->obj->getName()); ?></a>
</h3>
<h4 id="ws_length"><?php echo $this->obj->getDefaultLength(); ?></h4>
</div>

View file

@ -316,8 +316,8 @@
<column name="clip_length" phpName="DbClipLength" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="fade_in" phpName="DbFadeIn" type="TIME" required="false" defaultValue="00:00:00"/>
<column name="fade_out" phpName="DbFadeOut" type="TIME" required="false" defaultValue="00:00:00"/>
<column name="cue_in" phpName="DbCueIn" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cue_out" phpName="DbCueOut" type="VARCHAR" sqlType="interval" required="false" defaultValue="00:00:00"/>
<column name="cue_in" phpName="DbCueIn" type="VARCHAR" sqlType="interval" required="true"/>
<column name="cue_out" phpName="DbCueOut" type="VARCHAR" sqlType="interval" required="true"/>
<column name="media_item_played" phpName="DbMediaItemPlayed" type="BOOLEAN" required="false" defaultValue="0"/>
<column name="instance_id" phpName="DbInstanceId" type="INTEGER" required="true"/>
<column name="playout_status" phpName="DbPlayoutStatus" type="SMALLINT" required="true" defaultValue="1"/>

View file

@ -332,8 +332,10 @@ INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('es_ES', 'Español');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('fr_FR', 'Français');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('it_IT', 'Italiano');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ko_KR', '한국어');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('pl_PL', 'Polski');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('pt_BR', 'Português Brasileiro');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ru_RU', 'Русский');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('zh_CN', '简体中文');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('el_GR', 'Ελληνικά');
-- end of added in 2.3

View file

@ -420,8 +420,8 @@ CREATE TABLE "cc_schedule"
"clip_length" interval default '00:00:00',
"fade_in" TIME default '00:00:00',
"fade_out" TIME default '00:00:00',
"cue_in" interval default '00:00:00',
"cue_out" interval default '00:00:00',
"cue_in" interval NOT NULL,
"cue_out" interval NOT NULL,
"media_item_played" BOOLEAN default 'f',
"instance_id" INTEGER NOT NULL,
"playout_status" INT2 default 1 NOT NULL,

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-15 10:36-0500\n"
"PO-Revision-Date: 2013-01-04 17:50+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"PO-Revision-Date: 2013-02-07 17:10-0500\n"
"Last-Translator: Denise Rigato <denise.rigato@sourcefabric.org>\n"
"Language-Team: Canadian Localization <contact@sourcefabric.org>\n"
"Language: en_CA\n"
"MIME-Version: 1.0\n"
@ -2139,7 +2139,7 @@ msgstr "60m"
#: airtime_mvc/application/controllers/LocaleController.php:207
msgid "Retreiving data from the server..."
msgstr "Retreiving data from the server..."
msgstr "Retrieving data from the server..."
#: airtime_mvc/application/controllers/LocaleController.php:213
msgid "This show has no scheduled content."
@ -3511,7 +3511,7 @@ msgstr "Limit to "
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:512
msgid "Please selection an option"
msgstr "Please selection an option"
msgstr "Please select an option"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531
msgid "No Records"

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-15 10:36-0500\n"
"PO-Revision-Date: 2013-01-04 17:47+0100\n"
"PO-Revision-Date: 2013-02-08 11:03+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: British Localization <contact@sourcefabric.org>\n"
"Language: en_GB\n"
@ -716,7 +716,7 @@ msgstr "'%value%' is not between '%min%' and '%max%', inclusively"
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:89
msgid "Passwords do not match"
msgstr ""
msgstr "Passwords do not match"
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:15
#: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:6
@ -845,7 +845,7 @@ msgstr "Password:"
#: airtime_mvc/application/forms/AddUser.php:40
#: airtime_mvc/application/forms/EditUser.php:50
msgid "Verify Password:"
msgstr ""
msgstr "Verify Password:"
#: airtime_mvc/application/forms/AddUser.php:48
#: airtime_mvc/application/forms/EditUser.php:59
@ -974,11 +974,11 @@ msgstr "Username"
#: airtime_mvc/application/forms/StreamSettingSubForm.php:195
msgid "Admin User"
msgstr ""
msgstr "Admin User"
#: airtime_mvc/application/forms/StreamSettingSubForm.php:207
msgid "Admin Password"
msgstr ""
msgstr "Admin Password"
#: airtime_mvc/application/forms/StreamSettingSubForm.php:218
#: airtime_mvc/application/controllers/LocaleController.php:173
@ -1125,15 +1125,15 @@ msgstr "Station name - Show name"
#: airtime_mvc/application/forms/StreamSetting.php:63
msgid "Off Air Metadata"
msgstr ""
msgstr "Off Air Metadata"
#: airtime_mvc/application/forms/StreamSetting.php:69
msgid "Enable Replay Gain"
msgstr ""
msgstr "Enable Replay Gain"
#: airtime_mvc/application/forms/StreamSetting.php:75
msgid "Replay Gain Modifier"
msgstr ""
msgstr "Replay Gain Modifier"
#: airtime_mvc/application/forms/PasswordRestore.php:14
msgid "E-mail"
@ -1435,7 +1435,7 @@ msgstr "All My Shows:"
#: airtime_mvc/application/forms/EditUser.php:118
msgid "Timezone:"
msgstr ""
msgstr "Timezone:"
#: airtime_mvc/application/forms/AddShowLiveStream.php:10
msgid "Use Airtime Authentication:"
@ -1484,11 +1484,11 @@ msgstr "Enabled"
#: airtime_mvc/application/forms/GeneralPreferences.php:56
msgid "Default Interface Language"
msgstr ""
msgstr "Default Interface Language"
#: airtime_mvc/application/forms/GeneralPreferences.php:64
msgid "Default Interface Timezone"
msgstr ""
msgstr "Default Interface Timezone"
#: airtime_mvc/application/forms/GeneralPreferences.php:72
msgid "Week Starts On"
@ -1722,7 +1722,7 @@ msgstr "User updated successfully!"
#: airtime_mvc/application/controllers/UserController.php:164
msgid "Settings updated successfully!"
msgstr ""
msgstr "Settings updated successfully!"
#: airtime_mvc/application/controllers/LocaleController.php:36
msgid "Recording:"
@ -1796,7 +1796,7 @@ msgstr "You can only add tracks, smart blocks, and webstreams to playlists."
#: airtime_mvc/application/controllers/LocaleController.php:57
msgid "Please select a cursor position on timeline."
msgstr ""
msgstr "Please select a cursor position on timeline."
#: airtime_mvc/application/controllers/LocaleController.php:61
#: airtime_mvc/application/controllers/LibraryController.php:190
@ -1940,7 +1940,7 @@ msgstr "Playlist saved"
#: airtime_mvc/application/controllers/LocaleController.php:121
msgid "Playlist shuffled"
msgstr ""
msgstr "Playlist shuffled"
#: airtime_mvc/application/controllers/LocaleController.php:123
msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
@ -2003,12 +2003,12 @@ msgstr "Played"
#: airtime_mvc/application/controllers/LocaleController.php:160
#, php-format
msgid "Copied %s row%s to the clipboard"
msgstr ""
msgstr "Copied %s row%s to the clipboard"
#: airtime_mvc/application/controllers/LocaleController.php:161
#, php-format
msgid "%sPrint view%sPlease use your browser's print function to print this table. Press escape when finished."
msgstr ""
msgstr "%sPrint view%sPlease use your browser's print function to print this table. Press the Escape key when finished."
#: airtime_mvc/application/controllers/LocaleController.php:163
msgid "Choose Storage Folder"
@ -2087,7 +2087,7 @@ msgstr "If you change the username or password values for an enabled stream the
#: airtime_mvc/application/controllers/LocaleController.php:186
msgid "This is the admin username and password for Icecast/SHOUTcast to get listener statistics."
msgstr ""
msgstr "This is the admin username and password for Icecast/SHOUTcast to get listener statistics."
#: airtime_mvc/application/controllers/LocaleController.php:190
msgid "No result found"
@ -2139,7 +2139,7 @@ msgstr "60m"
#: airtime_mvc/application/controllers/LocaleController.php:207
msgid "Retreiving data from the server..."
msgstr "Retreiving data from the server..."
msgstr "Retrieving data from the server..."
#: airtime_mvc/application/controllers/LocaleController.php:213
msgid "This show has no scheduled content."
@ -2147,7 +2147,7 @@ msgstr "This show has no scheduled content."
#: airtime_mvc/application/controllers/LocaleController.php:214
msgid "This show is not completely filled with content."
msgstr ""
msgstr "This show is not completely filled with content."
#: airtime_mvc/application/controllers/LocaleController.php:218
msgid "January"
@ -2389,79 +2389,79 @@ msgstr "Open"
#: airtime_mvc/application/controllers/LocaleController.php:317
msgid "Guests can do the following:"
msgstr ""
msgstr "Guests can do the following:"
#: airtime_mvc/application/controllers/LocaleController.php:318
msgid "View schedule"
msgstr ""
msgstr "View schedule"
#: airtime_mvc/application/controllers/LocaleController.php:319
msgid "View show content"
msgstr ""
msgstr "View show content"
#: airtime_mvc/application/controllers/LocaleController.php:320
msgid "DJs can do the following:"
msgstr ""
msgstr "DJs can do the following:"
#: airtime_mvc/application/controllers/LocaleController.php:321
msgid "Manage assigned show content"
msgstr ""
msgstr "Manage assigned show content"
#: airtime_mvc/application/controllers/LocaleController.php:322
msgid "Import media files"
msgstr ""
msgstr "Import media files"
#: airtime_mvc/application/controllers/LocaleController.php:323
msgid "Create playlists, smart blocks, and webstreams"
msgstr ""
msgstr "Create playlists, smart blocks, and webstreams"
#: airtime_mvc/application/controllers/LocaleController.php:324
msgid "Manage their own library content"
msgstr ""
msgstr "Manage their own library content"
#: airtime_mvc/application/controllers/LocaleController.php:325
msgid "Progam Managers can do the following:"
msgstr ""
msgstr "Progam Managers can do the following:"
#: airtime_mvc/application/controllers/LocaleController.php:326
msgid "View and manage show content"
msgstr ""
msgstr "View and manage show content"
#: airtime_mvc/application/controllers/LocaleController.php:327
msgid "Schedule shows"
msgstr ""
msgstr "Schedule shows"
#: airtime_mvc/application/controllers/LocaleController.php:328
msgid "Manage all library content"
msgstr ""
msgstr "Manage all library content"
#: airtime_mvc/application/controllers/LocaleController.php:329
msgid "Admins can do the following:"
msgstr ""
msgstr "Admins can do the following:"
#: airtime_mvc/application/controllers/LocaleController.php:330
msgid "Manage preferences"
msgstr ""
msgstr "Manage preferences"
#: airtime_mvc/application/controllers/LocaleController.php:331
msgid "Manage users"
msgstr ""
msgstr "Manage users"
#: airtime_mvc/application/controllers/LocaleController.php:332
msgid "Manage watched folders"
msgstr ""
msgstr "Manage watched folders"
#: airtime_mvc/application/controllers/LocaleController.php:334
msgid "View system status"
msgstr ""
msgstr "View system status"
#: airtime_mvc/application/controllers/LocaleController.php:335
msgid "Access playout history"
msgstr ""
msgstr "Access playout history"
#: airtime_mvc/application/controllers/LocaleController.php:336
msgid "View listener stats"
msgstr ""
msgstr "View listener stats"
#: airtime_mvc/application/controllers/LocaleController.php:338
msgid "Show / hide columns"
@ -2535,99 +2535,99 @@ msgstr "Done"
#: airtime_mvc/application/controllers/LocaleController.php:361
msgid "Select files"
msgstr ""
msgstr "Select files"
#: airtime_mvc/application/controllers/LocaleController.php:362
#: airtime_mvc/application/controllers/LocaleController.php:363
msgid "Add files to the upload queue and click the start button."
msgstr ""
msgstr "Add files to the upload queue and click the start button."
#: airtime_mvc/application/controllers/LocaleController.php:366
msgid "Add Files"
msgstr ""
msgstr "Add Files"
#: airtime_mvc/application/controllers/LocaleController.php:367
msgid "Stop Upload"
msgstr ""
msgstr "Stop Upload"
#: airtime_mvc/application/controllers/LocaleController.php:368
msgid "Start upload"
msgstr ""
msgstr "Start upload"
#: airtime_mvc/application/controllers/LocaleController.php:369
msgid "Add files"
msgstr ""
msgstr "Add files"
#: airtime_mvc/application/controllers/LocaleController.php:370
#, php-format
msgid "Uploaded %d/%d files"
msgstr ""
msgstr "Uploaded %d/%d files"
#: airtime_mvc/application/controllers/LocaleController.php:371
msgid "N/A"
msgstr ""
msgstr "N/A"
#: airtime_mvc/application/controllers/LocaleController.php:372
msgid "Drag files here."
msgstr ""
msgstr "Drag files here."
#: airtime_mvc/application/controllers/LocaleController.php:373
msgid "File extension error."
msgstr ""
msgstr "File extension error."
#: airtime_mvc/application/controllers/LocaleController.php:374
msgid "File size error."
msgstr ""
msgstr "File size error."
#: airtime_mvc/application/controllers/LocaleController.php:375
msgid "File count error."
msgstr ""
msgstr "File count error."
#: airtime_mvc/application/controllers/LocaleController.php:376
msgid "Init error."
msgstr ""
msgstr "Init error."
#: airtime_mvc/application/controllers/LocaleController.php:377
msgid "HTTP Error."
msgstr ""
msgstr "HTTP Error."
#: airtime_mvc/application/controllers/LocaleController.php:378
msgid "Security error."
msgstr ""
msgstr "Security error."
#: airtime_mvc/application/controllers/LocaleController.php:379
msgid "Generic error."
msgstr ""
msgstr "Generic error."
#: airtime_mvc/application/controllers/LocaleController.php:380
msgid "IO error."
msgstr ""
msgstr "IO error."
#: airtime_mvc/application/controllers/LocaleController.php:381
#, php-format
msgid "File: %s"
msgstr ""
msgstr "File: %s"
#: airtime_mvc/application/controllers/LocaleController.php:383
#, php-format
msgid "%d files queued"
msgstr ""
msgstr "%d files queued"
#: airtime_mvc/application/controllers/LocaleController.php:384
msgid "File: %f, size: %s, max file size: %m"
msgstr ""
msgstr "File: %f, size: %s, max file size: %m"
#: airtime_mvc/application/controllers/LocaleController.php:385
msgid "Upload URL might be wrong or doesn't exist"
msgstr ""
msgstr "Upload URL might be wrong or doesn't exist"
#: airtime_mvc/application/controllers/LocaleController.php:386
msgid "Error: File too large: "
msgstr ""
msgstr "Error: File too large: "
#: airtime_mvc/application/controllers/LocaleController.php:387
msgid "Error: Invalid file extension: "
msgstr ""
msgstr "Error: Invalid file extension: "
#: airtime_mvc/application/controllers/ShowbuilderController.php:190
#: airtime_mvc/application/controllers/LibraryController.php:161
@ -2660,7 +2660,7 @@ msgstr "show does not exist"
#: airtime_mvc/application/controllers/ListenerstatController.php:56
msgid "Please make sure admin user/password is correct on System->Streams page."
msgstr ""
msgstr "Please make sure admin user/password is correct on System->Streams page."
#: airtime_mvc/application/controllers/ApiController.php:57
#: airtime_mvc/application/controllers/ApiController.php:84
@ -2720,7 +2720,7 @@ msgstr "Download"
#: airtime_mvc/application/controllers/LibraryController.php:198
msgid "Duplicate Playlist"
msgstr ""
msgstr "Duplicate Playlist"
#: airtime_mvc/application/controllers/LibraryController.php:213
#: airtime_mvc/application/controllers/LibraryController.php:235
@ -2761,7 +2761,7 @@ msgstr "Could not delete some scheduled files."
#: airtime_mvc/application/controllers/LibraryController.php:375
#, php-format
msgid "Copy of %s"
msgstr ""
msgstr "Copy of %s"
#: airtime_mvc/application/controllers/PlaylistController.php:45
#, php-format
@ -2929,7 +2929,7 @@ msgstr "%sSourcefabric%s o.p.s. Airtime is distributed under the %sGNU GPL v.3%s
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:3
msgid "Share"
msgstr ""
msgstr "Share"
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:64
msgid "Select stream:"
@ -3375,7 +3375,7 @@ msgstr "Show Source Connection URL:"
#: airtime_mvc/application/views/scripts/form/edit-user.phtml:1
#, php-format
msgid "%s's Settings"
msgstr ""
msgstr "%s's Settings"
#: airtime_mvc/application/views/scripts/form/add-show-rebroadcast.phtml:4
msgid "Repeat Days:"
@ -3452,7 +3452,7 @@ msgstr "Global Settings"
#: airtime_mvc/application/views/scripts/preference/stream-setting.phtml:88
msgid "dB"
msgstr ""
msgstr "dB"
#: airtime_mvc/application/views/scripts/preference/stream-setting.phtml:107
msgid "Output Stream Settings"
@ -3475,7 +3475,7 @@ msgstr "Isrc Number:"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:21
msgid "File Path:"
msgstr ""
msgstr "File Path:"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:39
msgid "Web Stream"
@ -3511,7 +3511,7 @@ msgstr "Limit to "
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:512
msgid "Please selection an option"
msgstr "Please selection an option"
msgstr "Please select an option"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531
msgid "No Records"
@ -3519,9 +3519,8 @@ msgstr "No Records"
#~ msgid "Timezone"
#~ msgstr "Timezone"
#~ msgid "File"
#~ msgstr "File"
#~ msgid "Path:"
#~ msgstr "Path:"

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-15 10:36-0500\n"
"PO-Revision-Date: 2013-01-04 17:48+0100\n"
"PO-Revision-Date: 2013-02-08 11:10+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: United States Localization <contact@sourcefabric.org>\n"
"Language: en_US\n"
@ -2139,7 +2139,7 @@ msgstr "60m"
#: airtime_mvc/application/controllers/LocaleController.php:207
msgid "Retreiving data from the server..."
msgstr "Retreiving data from the server..."
msgstr "Retrieving data from the server..."
#: airtime_mvc/application/controllers/LocaleController.php:213
msgid "This show has no scheduled content."
@ -3511,7 +3511,7 @@ msgstr "Limit to "
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:512
msgid "Please selection an option"
msgstr "Please selection an option"
msgstr "Please select an option"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531
msgid "No Records"
@ -3519,9 +3519,8 @@ msgstr "No Records"
#~ msgid "Timezone"
#~ msgstr "Timezone"
#~ msgid "File"
#~ msgstr "File"
#~ msgid "Path:"
#~ msgstr "Path:"

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-15 10:36-0500\n"
"PO-Revision-Date: 2013-01-15 17:03-0500\n"
"PO-Revision-Date: 2013-02-05 11:14-0500\n"
"Last-Translator: Denise Rigato <denise.rigato@sourcefabric.org>\n"
"Language-Team: French Localization <contact@sourcefabric.org>\n"
"MIME-Version: 1.0\n"
@ -1124,7 +1124,7 @@ msgstr "Nom de la Station - Nom de l'Emission"
#: airtime_mvc/application/forms/StreamSetting.php:63
msgid "Off Air Metadata"
msgstr "Métadonnées Hors Entenne"
msgstr "Métadonnées Hors Antenne"
#: airtime_mvc/application/forms/StreamSetting.php:69
msgid "Enable Replay Gain"
@ -1745,7 +1745,7 @@ msgstr "Emission en Cours:"
#: airtime_mvc/application/controllers/LocaleController.php:41
msgid "Current"
msgstr "Courant"
msgstr "En ce moment"
#: airtime_mvc/application/controllers/LocaleController.php:43
msgid "You are running the latest version"

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Airtime 2.3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-15 10:36-0500\n"
"PO-Revision-Date: 2013-01-21 11:14+0100\n"
"PO-Revision-Date: 2013-02-07 10:20+0100\n"
"Last-Translator: Daniel James <daniel.james@sourcefabric.org>\n"
"Language-Team: Brazilian Localization <contact@sourcefabric.org>\n"
"Language: pt-BR\n"
@ -69,11 +69,11 @@ msgstr "Estado"
#: airtime_mvc/application/configs/navigation.php:83
msgid "Playout History"
msgstr "Registro"
msgstr "Histórico da Programação"
#: airtime_mvc/application/configs/navigation.php:90
msgid "Listener Stats"
msgstr "Estado de Ouvintes"
msgstr "Estatísticas de Ouvintes"
#: airtime_mvc/application/configs/navigation.php:99
#: airtime_mvc/application/views/scripts/error/error.phtml:13
@ -123,7 +123,7 @@ msgstr "Prévia da playlist"
#: airtime_mvc/application/models/StoredFile.php:815
msgid "Webstream preview"
msgstr "Prévia do fluxo"
msgstr "Prévia do fluxo web"
#: airtime_mvc/application/models/StoredFile.php:817
msgid "Smart Block"
@ -189,7 +189,7 @@ msgstr "%s não existe na lista de diretórios monitorados."
#: airtime_mvc/application/models/Playlist.php:723
#: airtime_mvc/application/models/Block.php:760
msgid "Cue in and cue out are null."
msgstr "Cue dentro e fora sugestão são nulos."
msgstr "Cue de entrada e saída são nulos."
#: airtime_mvc/application/models/Playlist.php:753
#: airtime_mvc/application/models/Playlist.php:776
@ -265,7 +265,7 @@ msgstr "Não foi possível analisar a lista M3U"
#: airtime_mvc/application/models/Webstream.php:314
msgid "Invalid webstream - This appears to be a file download."
msgstr "Fluxo inválido. Este parece tratar-se de download de arquivo."
msgstr "Fluxo web inválido. A URL parece tratar-se de download de arquivo."
#: airtime_mvc/application/models/Webstream.php:318
#, php-format
@ -274,7 +274,7 @@ msgstr "Tipo de fluxo não reconhecido: %s"
#: airtime_mvc/application/models/ShowInstance.php:245
msgid "Can't drag and drop repeating shows"
msgstr "Não é possível arrastar e soltar programas repetitivos"
msgstr "Não é possível arrastar e soltar programas repetidos"
#: airtime_mvc/application/models/ShowInstance.php:253
msgid "Can't move a past show"
@ -303,7 +303,7 @@ msgstr "O programa foi excluído porque a gravação prévia não existe!"
#: airtime_mvc/application/models/ShowInstance.php:310
msgid "Must wait 1 hour to rebroadcast."
msgstr "É necessário aguardar 1 hora para retransmitir."
msgstr "É necessário aguardar 1 hora antes de retransmitir."
#: airtime_mvc/application/models/ShowInstance.php:342
msgid "can't resize a past show"
@ -344,7 +344,7 @@ msgstr "A programação que você está vendo está desatualizada!"
#: airtime_mvc/application/models/Scheduler.php:105
#, php-format
msgid "You are not allowed to schedule show %s."
msgstr "Você não tem permissão para agendar o programa %s."
msgstr "Você não tem permissão para agendar programa %s."
#: airtime_mvc/application/models/Scheduler.php:109
msgid "You cannot add files to recording shows."
@ -363,7 +363,7 @@ msgstr "O programa %s foi previamente atualizado!"
#: airtime_mvc/application/models/Scheduler.php:141
#: airtime_mvc/application/models/Scheduler.php:223
msgid "A selected File does not exist!"
msgstr "Um arquivo selecionado não existe!"
msgstr "Um dos arquivos selecionados não existe!"
#: airtime_mvc/application/models/ShowBuilder.php:198
#, php-format
@ -385,7 +385,7 @@ msgstr "Álbum"
#: airtime_mvc/application/models/Block.php:1211
#: airtime_mvc/application/forms/SmartBlockCriteria.php:43
msgid "Bit Rate (Kbps)"
msgstr "Bitrate (Kpbs)"
msgstr "Bitrate (Kbps)"
#: airtime_mvc/application/models/Block.php:1212
#: airtime_mvc/application/forms/SmartBlockCriteria.php:44
@ -404,7 +404,7 @@ msgstr "Compositor"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:46
#: airtime_mvc/application/controllers/LocaleController.php:74
msgid "Conductor"
msgstr "Condutor"
msgstr "Maestro"
#: airtime_mvc/application/models/Block.php:1215
#: airtime_mvc/application/forms/SmartBlockCriteria.php:47
@ -551,11 +551,11 @@ msgstr "%s:%s:%s não é um horário válido"
#: airtime_mvc/application/forms/EmailServerPreferences.php:17
msgid "Enable System Emails (Password Reset)"
msgstr "Ativar Emails do Sistema (Recuperação de Senha)"
msgstr "Ativar Envio de Emails (Recuperação de Senha)"
#: airtime_mvc/application/forms/EmailServerPreferences.php:27
msgid "Reset Password 'From' Email"
msgstr "Remetente do Email de Recuperação de Senha"
msgstr "Remetente de Email para Recuperação de Senha"
#: airtime_mvc/application/forms/EmailServerPreferences.php:34
msgid "Configure Mail Server"
@ -693,7 +693,7 @@ msgstr "Data de Fim:"
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:8
#: airtime_mvc/application/forms/customvalidators/ConditionalNotEmpty.php:26
msgid "Value is required and can't be empty"
msgstr "Valor é obrigatório e não poder estar vazio."
msgstr "Valor é obrigatório e não poder estar em branco."
#: airtime_mvc/application/forms/helpers/ValidationTypes.php:19
msgid "'%value%' is no valid email address in the basic format local-part@hostname"
@ -727,21 +727,21 @@ msgstr "dias"
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:63
#: airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php:58
msgid "Day must be specified"
msgstr "Dia precisa ser informado"
msgstr "O dia precisa ser especificado"
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:68
#: airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php:63
msgid "Time must be specified"
msgstr "Horário deve ser informado"
msgstr "O horário deve ser especificado"
#: airtime_mvc/application/forms/AddShowRebroadcastDates.php:95
#: airtime_mvc/application/forms/AddShowAbsoluteRebroadcastDates.php:86
msgid "Must wait at least 1 hour to rebroadcast"
msgstr "É preciso aguardar uma hora para retransmissão"
msgstr "É preciso aguardar uma hora para retransmitir"
#: airtime_mvc/application/forms/AddShowRR.php:10
msgid "Record from Line In?"
msgstr "Gravar a partir de Line In?"
msgstr "Gravar a partir do Line In?"
#: airtime_mvc/application/forms/AddShowRR.php:16
msgid "Rebroadcast?"
@ -875,7 +875,7 @@ msgstr "Jabber:"
#: airtime_mvc/application/forms/AddUser.php:88
msgid "User Type:"
msgstr "Tipo de Usuário:"
msgstr "Perfil do Usuário:"
#: airtime_mvc/application/forms/AddUser.php:92
#: airtime_mvc/application/controllers/LocaleController.php:316
@ -908,7 +908,7 @@ msgstr "Administrador"
#: airtime_mvc/application/views/scripts/preference/index.phtml:6
#: airtime_mvc/application/views/scripts/preference/index.phtml:14
msgid "Save"
msgstr "Gravar"
msgstr "Salvar"
#: airtime_mvc/application/forms/AddUser.php:113
#: airtime_mvc/application/forms/EditUser.php:132
@ -996,11 +996,11 @@ msgstr "Porta não pode estar em branco."
#: airtime_mvc/application/forms/StreamSettingSubForm.php:243
msgid "Mount cannot be empty with Icecast server."
msgstr "Montagem não pode estar em branco com servidor Icecast."
msgstr "Ponto de montagem deve ser informada em servidor Icecast."
#: airtime_mvc/application/forms/AddShowRepeats.php:11
msgid "Repeat Type:"
msgstr "Tipo de Repetição:"
msgstr "Tipo de Reexibição:"
#: airtime_mvc/application/forms/AddShowRepeats.php:14
msgid "weekly"
@ -1055,11 +1055,11 @@ msgstr "Sab"
#: airtime_mvc/application/forms/AddShowRepeats.php:53
msgid "No End?"
msgstr "Não tem fim?"
msgstr "Sem fim?"
#: airtime_mvc/application/forms/AddShowRepeats.php:79
msgid "End date must be after start date"
msgstr "Data de fim precisa ser após de data de início"
msgstr "A data de fim deve ser posterior à data de início"
#: airtime_mvc/application/forms/AddShowWhat.php:26
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:27
@ -1168,7 +1168,7 @@ msgstr "Duração:"
#: airtime_mvc/application/forms/AddShowWhen.php:83
msgid "Repeats?"
msgstr "Repetir?"
msgstr "Reexibir?"
#: airtime_mvc/application/forms/AddShowWhen.php:103
msgid "Cannot create show in the past"
@ -1176,7 +1176,7 @@ msgstr "Não é possível criar um programa no passado."
#: airtime_mvc/application/forms/AddShowWhen.php:111
msgid "Cannot modify start date/time of the show that is already started"
msgstr "Não é possível alterar o início de um programa já em execução"
msgstr "Não é possível alterar o início de um programa que está em execução"
#: airtime_mvc/application/forms/AddShowWhen.php:130
msgid "Cannot have duration 00h 00m"
@ -1326,7 +1326,7 @@ msgstr "é menor que"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:99
#: airtime_mvc/application/controllers/LocaleController.php:151
msgid "is in the range"
msgstr "está compreendido"
msgstr "está no intervalo"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:109
msgid "hours"
@ -1342,7 +1342,7 @@ msgstr "itens"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:133
msgid "Set smart block type:"
msgstr "Definir tipo de bloco inteligente:"
msgstr "Definir tipo de bloco:"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:136
#: airtime_mvc/application/controllers/LibraryController.php:501
@ -1364,7 +1364,7 @@ msgstr "Limitar em"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:287
msgid "Generate playlist content and save criteria"
msgstr "Gerar conteúdo da lista de reprodução e salvar critério"
msgstr "Gerar conteúdo da lista e salvar critério"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:289
msgid "Generate"
@ -1372,7 +1372,7 @@ msgstr "Gerar"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:295
msgid "Shuffle playlist content"
msgstr "Embaralhar conteúdo da lista de reprodução"
msgstr "Embaralhar conteúdo da lista"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:297
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:20
@ -1394,7 +1394,7 @@ msgstr "O valor deve ser um número inteiro"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:479
msgid "500 is the max item limit value you can set"
msgstr "500 é o número máximo de itens que você pode definir"
msgstr "O número máximo de itens é 500"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:490
msgid "You must select Criteria and Modifier"
@ -1402,7 +1402,7 @@ msgstr "Você precisa selecionar Critério e Modificador "
#: airtime_mvc/application/forms/SmartBlockCriteria.php:497
msgid "'Length' should be in '00:00:00' format"
msgstr "A duração precisa ser informada no formato '00:00:00'"
msgstr "A duração deve ser informada no formato '00:00:00'"
#: airtime_mvc/application/forms/SmartBlockCriteria.php:502
#: airtime_mvc/application/forms/SmartBlockCriteria.php:515
@ -1432,7 +1432,7 @@ msgstr "Programa:"
#: airtime_mvc/application/forms/ShowBuilder.php:80
msgid "All My Shows:"
msgstr "Todos os Meus Programas:"
msgstr "Meus Programas:"
#: airtime_mvc/application/forms/EditUser.php:118
msgid "Timezone:"
@ -1448,19 +1448,19 @@ msgstr "Usar Autenticação Personalizada:"
#: airtime_mvc/application/forms/AddShowLiveStream.php:26
msgid "Custom Username"
msgstr "Usuário Personalizado:"
msgstr "Definir Usuário:"
#: airtime_mvc/application/forms/AddShowLiveStream.php:39
msgid "Custom Password"
msgstr "Senha Personalizada:"
msgstr "Definir Senha:"
#: airtime_mvc/application/forms/AddShowLiveStream.php:63
msgid "Username field cannot be empty."
msgstr "O Usuário não pode estar em branco."
msgstr "O usuário não pode estar em branco."
#: airtime_mvc/application/forms/AddShowLiveStream.php:68
msgid "Password field cannot be empty."
msgstr "A Senha não pode estar em branco."
msgstr "A senha não pode estar em branco."
#: airtime_mvc/application/forms/GeneralPreferences.php:34
msgid "Default Fade (s):"
@ -1473,7 +1473,7 @@ msgstr "informe o tempo em segundos 0{.0}"
#: airtime_mvc/application/forms/GeneralPreferences.php:48
#, php-format
msgid "Allow Remote Websites To Access \"Schedule\" Info?%s (Enable this to make front-end widgets work.)"
msgstr "Permitir que sites remotos acessem as informações \"Schedule \"%s? (Habilite para fazer com que widgets funcionem.)"
msgstr "Permitir que sites remotos acessem as informações sobre \"Programação\"?%s (Habilite para fazer com que widgets externos funcionem.)"
#: airtime_mvc/application/forms/GeneralPreferences.php:49
msgid "Disabled"
@ -1532,15 +1532,15 @@ msgstr "Sábado"
#: airtime_mvc/application/forms/SoundcloudPreferences.php:16
msgid "Automatically Upload Recorded Shows"
msgstr "Programas Gravador Adicionados Automaticamente"
msgstr "Enviar programas gravados automaticamente"
#: airtime_mvc/application/forms/SoundcloudPreferences.php:26
msgid "Enable SoundCloud Upload"
msgstr "Habilitar Envio para SoundCloud"
msgstr "Habilitar envio para SoundCloud"
#: airtime_mvc/application/forms/SoundcloudPreferences.php:36
msgid "Automatically Mark Files \"Downloadable\" on SoundCloud"
msgstr "Definir Arquivos como \"Downloadable\" no SoundCloud"
msgstr "Permitir download dos arquivos no SoundCloud"
#: airtime_mvc/application/forms/SoundcloudPreferences.php:47
msgid "SoundCloud Email"
@ -1711,7 +1711,7 @@ msgstr "Erro na aplicação"
#: airtime_mvc/application/controllers/UserController.php:55
#: airtime_mvc/application/controllers/UserController.php:137
msgid "Specific action is not allowed in demo version!"
msgstr "Ação específica não permitida na versão de demonstração!"
msgstr "Esta ação não é permitida na versão de demonstração!"
#: airtime_mvc/application/controllers/UserController.php:87
msgid "User added successfully!"
@ -1747,11 +1747,11 @@ msgstr "Programa em Exibição:"
#: airtime_mvc/application/controllers/LocaleController.php:41
msgid "Current"
msgstr "Em Exibição"
msgstr "Agora"
#: airtime_mvc/application/controllers/LocaleController.php:43
msgid "You are running the latest version"
msgstr "Você está executando a última versão"
msgstr "Você está executando a versão mais recente"
#: airtime_mvc/application/controllers/LocaleController.php:44
msgid "New version available: "
@ -1775,7 +1775,7 @@ msgstr "Adicionar a esta lista de reprodução"
#: airtime_mvc/application/controllers/LocaleController.php:50
msgid "Add to current smart block"
msgstr "Adiconar a este bloco inteligente"
msgstr "Adiconar a este bloco"
#: airtime_mvc/application/controllers/LocaleController.php:51
msgid "Adding 1 Item"
@ -1793,11 +1793,11 @@ msgstr "Você pode adicionar somente faixas a um bloco inteligente."
#: airtime_mvc/application/controllers/LocaleController.php:54
#: airtime_mvc/application/controllers/PlaylistController.php:160
msgid "You can only add tracks, smart blocks, and webstreams to playlists."
msgstr "Você pode adicionar somente faixas, blocos inteligentes e fluxos às listas de reprodução"
msgstr "Você pode adicionar apenas faixas, blocos e fluxos às listas de reprodução"
#: airtime_mvc/application/controllers/LocaleController.php:57
msgid "Please select a cursor position on timeline."
msgstr "Por favor seleccione um posição do cursor na linha do tempo."
msgstr "Por favor selecione um posição do cursor na linha do tempo."
#: airtime_mvc/application/controllers/LocaleController.php:61
#: airtime_mvc/application/controllers/LibraryController.php:190
@ -1851,11 +1851,11 @@ msgstr "Arquivos"
#: airtime_mvc/application/controllers/LocaleController.php:96
msgid "Playlists"
msgstr "Listas de Reprodução"
msgstr "Listas"
#: airtime_mvc/application/controllers/LocaleController.php:97
msgid "Smart Blocks"
msgstr "Blocos Inteligentes"
msgstr "Blocos"
#: airtime_mvc/application/controllers/LocaleController.php:98
msgid "Web Streams"
@ -1880,7 +1880,7 @@ msgstr "Obtendo dados do servidor..."
#: airtime_mvc/application/controllers/LocaleController.php:103
msgid "The soundcloud id for this file is: "
msgstr "O id do SoundCloud para este arquivo é:"
msgstr "O id no SoundCloud para este arquivo é:"
#: airtime_mvc/application/controllers/LocaleController.php:104
msgid "There was an error while uploading to soundcloud."
@ -1925,7 +1925,7 @@ msgstr "por favor informe o tempo em segundos '00 (.0)'"
#: airtime_mvc/application/controllers/LocaleController.php:117
msgid "Your browser does not support playing this file type: "
msgstr "Seu navegador não suporta a execução deste formato de arquivo:"
msgstr "Seu navegador não suporta a execução deste tipo de arquivo:"
#: airtime_mvc/application/controllers/LocaleController.php:118
msgid "Dynamic block is not previewable"
@ -1937,11 +1937,11 @@ msgstr "Limitar em:"
#: airtime_mvc/application/controllers/LocaleController.php:120
msgid "Playlist saved"
msgstr "Lista de Reprodução salva"
msgstr "A lista foi salva"
#: airtime_mvc/application/controllers/LocaleController.php:121
msgid "Playlist shuffled"
msgstr "Lista de Reprodução embaralhada"
msgstr "A lista foi embaralhada"
#: airtime_mvc/application/controllers/LocaleController.php:123
msgid "Airtime is unsure about the status of this file. This can happen when the file is on a remote drive that is unaccessible or the file is in a directory that isn't 'watched' anymore."
@ -1967,15 +1967,15 @@ msgstr "Sim, quero colaborar com o Airtime"
#: airtime_mvc/application/controllers/LocaleController.php:130
#: airtime_mvc/application/controllers/LocaleController.php:188
msgid "Image must be one of jpg, jpeg, png, or gif"
msgstr "A imagem precisa ter extensão a jpg, jpeg, png ou gif"
msgstr "A imagem precisa conter extensão jpg, jpeg, png ou gif"
#: airtime_mvc/application/controllers/LocaleController.php:133
msgid "A static smart block will save the criteria and generate the block content immediately. This allows you to edit and view it in the Library before adding it to a show."
msgstr "Um bloco inteligente estático salvará os critérios e gerará o conteúdo imediatamente. Isso permite que você edite e visualize-o na Biblioteca antes de adicioná-lo a um programa."
msgstr "Um bloco estático salvará os critérios e gerará o conteúdo imediatamente. Isso permite que você edite e visualize-o na Biblioteca antes de adicioná-lo a um programa."
#: airtime_mvc/application/controllers/LocaleController.php:135
msgid "A dynamic smart block will only save the criteria. The block content will get generated upon adding it to a show. You will not be able to view and edit the content in the Library."
msgstr "Um bloco inteligente dinâmico apenas conterá critérios. O conteúdo do bloco será gerado após adicioná-lo a um programa. Você não será capaz de ver ou editar o conteúdo na Biblioteca."
msgstr "Um bloco dinâmico apenas conterá critérios. O conteúdo do bloco será gerado após adicioná-lo a um programa. Você não será capaz de ver ou editar o conteúdo na Biblioteca."
#: airtime_mvc/application/controllers/LocaleController.php:137
msgid "The desired block length will not be reached if Airtime cannot find enough unique tracks to match your criteria. Enable this option if you wish to allow tracks to be added multiple times to the smart block."
@ -1983,15 +1983,15 @@ msgstr "A duração desejada do bloco não será completada se o Airtime não lo
#: airtime_mvc/application/controllers/LocaleController.php:138
msgid "Smart block shuffled"
msgstr "Bloco inteligente embaralhado"
msgstr "O bloco foi embaralhado"
#: airtime_mvc/application/controllers/LocaleController.php:139
msgid "Smart block generated and criteria saved"
msgstr "Bloco inteligente gerado e criterio salvo"
msgstr "O bloco foi gerado e o criterio foi salvo"
#: airtime_mvc/application/controllers/LocaleController.php:140
msgid "Smart block saved"
msgstr "Bloco inteligente salvo"
msgstr "O bloco foi salvo"
#: airtime_mvc/application/controllers/LocaleController.php:141
msgid "Processing..."
@ -2050,7 +2050,7 @@ msgstr "O fluxo está desabilitado"
#: airtime_mvc/application/controllers/LocaleController.php:174
msgid "Can not connect to the streaming server"
msgstr "Não é possível conectar ao servidor de fluxo"
msgstr "Não é possível conectar ao servidor de streaming"
#: airtime_mvc/application/controllers/LocaleController.php:176
msgid "If Airtime is behind a router or firewall, you may need to configure port forwarding and this field information will be incorrect. In this case you will need to manually update this field so it shows the correct host/port/mount that your DJ's need to connect to. The allowed range is between 1024 and 49151."
@ -2075,7 +2075,7 @@ msgstr "Marque esta caixa para ligar automaticamente as fontes Mestre / Programa
#: airtime_mvc/application/controllers/LocaleController.php:182
msgid "If your Icecast server expects a username of 'source', this field can be left blank."
msgstr "Se o servidor Icecast esperar por um usuário de 'source', este campo poderá permanecer em branco."
msgstr "Se o servidor Icecast esperar por um usuário 'source', este campo poderá permanecer em branco."
#: airtime_mvc/application/controllers/LocaleController.php:183
#: airtime_mvc/application/controllers/LocaleController.php:193
@ -2088,7 +2088,7 @@ msgstr "Se você alterar os campos de usuário ou senha de um fluxo ativo, o mec
#: airtime_mvc/application/controllers/LocaleController.php:186
msgid "This is the admin username and password for Icecast/SHOUTcast to get listener statistics."
msgstr "Este é o usuário e senha de servidores Icecast / SHOUTcast, para obter estatísticas de ouvinte."
msgstr "Este é o usuário e senha de servidores Icecast / SHOUTcast, para obter estatísticas de ouvintes."
#: airtime_mvc/application/controllers/LocaleController.php:190
msgid "No result found"
@ -2100,7 +2100,7 @@ msgstr "Este segue o mesmo padrão de segurança para os programas: apenas usuá
#: airtime_mvc/application/controllers/LocaleController.php:192
msgid "Specify custom authentication which will work only for this show."
msgstr "Especifique a autenticação personalizada que funcionará apenas para este programa."
msgstr "Defina uma autenticação personalizada que funcionará apenas neste programa."
#: airtime_mvc/application/controllers/LocaleController.php:194
msgid "The show instance doesn't exist anymore!"
@ -2112,7 +2112,7 @@ msgstr "Programa"
#: airtime_mvc/application/controllers/LocaleController.php:199
msgid "Show is empty"
msgstr "O Programa está sem conteúdo"
msgstr "O programa está vazio"
#: airtime_mvc/application/controllers/LocaleController.php:200
msgid "1m"
@ -2261,7 +2261,7 @@ msgstr "mês"
#: airtime_mvc/application/controllers/LocaleController.php:260
msgid "Shows longer than their scheduled time will be cut off by a following show."
msgstr "Um programa com duração maior que o tempo programado será cortado pelo programa seguinte."
msgstr "Um programa com tempo maior que a duração programada será cortado pelo programa seguinte."
#: airtime_mvc/application/controllers/LocaleController.php:261
msgid "Cancel Current Show?"
@ -2319,11 +2319,11 @@ msgstr "Fade Saída"
#: airtime_mvc/application/controllers/LocaleController.php:282
msgid "Show Empty"
msgstr "Programa sem conteúdo"
msgstr "Programa vazio"
#: airtime_mvc/application/controllers/LocaleController.php:283
msgid "Recording From Line In"
msgstr "Gravando a partir de Line In"
msgstr "Gravando a partir do Line In"
#: airtime_mvc/application/controllers/LocaleController.php:288
msgid "Cannot schedule outside a show."
@ -2390,7 +2390,7 @@ msgstr "Abrir"
#: airtime_mvc/application/controllers/LocaleController.php:317
msgid "Guests can do the following:"
msgstr "Visitantes poderm fazer o seguinte:"
msgstr "Visitantes podem fazer o seguinte:"
#: airtime_mvc/application/controllers/LocaleController.php:318
msgid "View schedule"
@ -2406,7 +2406,7 @@ msgstr "DJs podem fazer o seguinte:"
#: airtime_mvc/application/controllers/LocaleController.php:321
msgid "Manage assigned show content"
msgstr "Gerenciar o conteúdo de programas a ele delegados"
msgstr "Gerenciar o conteúdo de programas delegados a ele"
#: airtime_mvc/application/controllers/LocaleController.php:322
msgid "Import media files"
@ -2454,11 +2454,11 @@ msgstr "Gerenciar diretórios monitorados"
#: airtime_mvc/application/controllers/LocaleController.php:334
msgid "View system status"
msgstr "Visualizar estado so sistema"
msgstr "Visualizar estado do sistema"
#: airtime_mvc/application/controllers/LocaleController.php:335
msgid "Access playout history"
msgstr "Acessar histórico de programação"
msgstr "Acessar o histórico da programação"
#: airtime_mvc/application/controllers/LocaleController.php:336
msgid "View listener stats"
@ -2470,7 +2470,7 @@ msgstr "Exibir / ocultar colunas"
#: airtime_mvc/application/controllers/LocaleController.php:340
msgid "From {from} to {to}"
msgstr "De {from} para {to}"
msgstr "De {from} até {to}"
#: airtime_mvc/application/controllers/LocaleController.php:341
msgid "kbps"
@ -2478,7 +2478,7 @@ msgstr "kbps"
#: airtime_mvc/application/controllers/LocaleController.php:342
msgid "yyyy-mm-dd"
msgstr "dd-mm-yyyy"
msgstr "yyy-mm-dd"
#: airtime_mvc/application/controllers/LocaleController.php:343
msgid "hh:mm:ss.t"
@ -2532,7 +2532,7 @@ msgstr "Minuto"
#: airtime_mvc/application/controllers/LocaleController.php:358
msgid "Done"
msgstr "Feito"
msgstr "Concluído"
#: airtime_mvc/application/controllers/LocaleController.php:361
msgid "Select files"
@ -2570,7 +2570,7 @@ msgstr "N/A"
#: airtime_mvc/application/controllers/LocaleController.php:372
msgid "Drag files here."
msgstr "Arraste arquivos aqui."
msgstr "Arraste arquivos nesta área."
#: airtime_mvc/application/controllers/LocaleController.php:373
msgid "File extension error."
@ -2602,7 +2602,7 @@ msgstr "Erro genérico."
#: airtime_mvc/application/controllers/LocaleController.php:380
msgid "IO error."
msgstr "Erro de IO."
msgstr "Erro de I/O."
#: airtime_mvc/application/controllers/LocaleController.php:381
#, php-format
@ -2620,7 +2620,7 @@ msgstr "Arquivo: %f, tamanho: %s, tamanho máximo: %m"
#: airtime_mvc/application/controllers/LocaleController.php:385
msgid "Upload URL might be wrong or doesn't exist"
msgstr "URL de upload pode estar errada ou não existe."
msgstr "URL de upload pode estar incorreta ou inexiste."
#: airtime_mvc/application/controllers/LocaleController.php:386
msgid "Error: File too large: "
@ -2657,7 +2657,7 @@ msgstr "Excluir"
#: airtime_mvc/application/controllers/ShowbuilderController.php:212
msgid "show does not exist"
msgstr "programa não existe"
msgstr "programa inexistente"
#: airtime_mvc/application/controllers/ListenerstatController.php:56
msgid "Please make sure admin user/password is correct on System->Streams page."
@ -2702,17 +2702,17 @@ msgstr "%s não encontrado"
#: airtime_mvc/application/controllers/LibraryController.php:104
#: airtime_mvc/application/controllers/PlaylistController.php:148
msgid "Something went wrong."
msgstr "Algum errado ocorreu."
msgstr "Ocorreu algo errado."
#: airtime_mvc/application/controllers/LibraryController.php:182
#: airtime_mvc/application/controllers/LibraryController.php:206
#: airtime_mvc/application/controllers/LibraryController.php:229
msgid "Add to Playlist"
msgstr "Adicionar a Lista de Reprodução"
msgstr "Adicionar à Lista"
#: airtime_mvc/application/controllers/LibraryController.php:184
msgid "Add to Smart Block"
msgstr "Adicionar a Bloco Inteligente"
msgstr "Adicionar ao Bloco"
#: airtime_mvc/application/controllers/LibraryController.php:194
#: airtime_mvc/application/controllers/ScheduleController.php:897
@ -2721,7 +2721,7 @@ msgstr "Download"
#: airtime_mvc/application/controllers/LibraryController.php:198
msgid "Duplicate Playlist"
msgstr "Duplicar Lista de Reprodução"
msgstr "Duplicar Lista"
#: airtime_mvc/application/controllers/LibraryController.php:213
#: airtime_mvc/application/controllers/LibraryController.php:235
@ -2836,7 +2836,7 @@ msgstr "Fluxo Sem Título"
#: airtime_mvc/application/controllers/WebstreamController.php:138
msgid "Webstream saved."
msgstr "Fluxo salvo."
msgstr "Fluxo gravado."
#: airtime_mvc/application/controllers/WebstreamController.php:146
msgid "Invalid form values."
@ -2844,7 +2844,7 @@ msgstr "Valores do formulário inválidos."
#: airtime_mvc/application/views/scripts/listenerstat/index.phtml:2
msgid "Listener Count Over Time"
msgstr "Número de Ouvintes ao Longo da Exibição"
msgstr "Número de ouvintes durante a exibição"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:3
msgid "Previous:"
@ -2860,15 +2860,15 @@ msgstr "Fontes de Fluxo"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:29
msgid "Master Source"
msgstr "Fonte Master"
msgstr "Master"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:38
msgid "Show Source"
msgstr "Fonte Programa"
msgstr "Programa"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:45
msgid "Scheduled Play"
msgstr "Reprodução Agendada"
msgstr "Programação"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:54
msgid "ON AIR"
@ -2880,15 +2880,15 @@ msgstr "Ouvir"
#: airtime_mvc/application/views/scripts/partialviews/header.phtml:59
msgid "Station time"
msgstr "Horário da Estação"
msgstr "Hora Local"
#: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:3
msgid "Your trial expires in"
msgstr "Seu período de teste expira em"
msgstr "Seu período de teste termina em"
#: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:9
msgid "Purchase your copy of Airtime"
msgstr "Compre sua cópia do Airtime"
msgstr "Adquira sua cópia do Airtime"
#: airtime_mvc/application/views/scripts/partialviews/trialBox.phtml:9
msgid "My Account"
@ -2904,7 +2904,7 @@ msgstr "Novo Usuário"
#: airtime_mvc/application/views/scripts/user/add-user.phtml:17
msgid "id"
msgstr "is"
msgstr "id"
#: airtime_mvc/application/views/scripts/user/add-user.phtml:19
msgid "First Name"
@ -2921,7 +2921,7 @@ msgstr "Tipo de Usuário"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:5
#, php-format
msgid "%sAirtime%s %s, the open radio software for scheduling and remote station management. %s"
msgstr "%sAirtime%s %s, um software de rádio aberto para programação e gestão remota de estação. % s"
msgstr "%sAirtime%s %s, um software livre para automação e gestão remota de estação de rádio. % s"
#: airtime_mvc/application/views/scripts/dashboard/about.phtml:13
#, php-format
@ -2934,7 +2934,7 @@ msgstr "Compartilhar"
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:64
msgid "Select stream:"
msgstr "Selecione o fluxo:"
msgstr "Selecionar fluxo:"
#: airtime_mvc/application/views/scripts/dashboard/stream-player.phtml:90
#: airtime_mvc/application/views/scripts/audiopreview/audio-preview.phtml:50
@ -2952,27 +2952,27 @@ msgstr "Benvindo ao Airtime!"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:4
msgid "Here's how you can get started using Airtime to automate your broadcasts: "
msgstr "Veja aqui como você pode começar a usar o Airtime para automatizar suas transmissões:"
msgstr "Saiba como utilizar o Airtime para automatizar suas transmissões:"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:7
msgid "Begin by adding your files to the library using the 'Add Media' menu button. You can drag and drop your files to this window too."
msgstr "Comece adicionando seus arquivos À biblioteca usando o botão \"Adicionar Mídia\" no menu. Você pode arrastar e soltar os arquivos para esta janela também."
msgstr "Comece adicionando seus arquivos à biblioteca usando o botão \"Adicionar Mídia\" . Você também pode arrastar e soltar os arquivos dentro da página."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:8
msgid "Create a show by going to 'Calendar' in the menu bar, and then clicking the '+ Show' icon. This can be either a one-time or repeating show. Only admins and program managers can add shows."
msgstr "Crie um programa, indo até 'Calendário' na barra de menu e, em seguida, clicando no ícone '+Programa'. Este pode ser um programa inédito ou retransmitido. Apenas administradores e gerentes de programação podem adicionar programas."
msgstr "Crie um programa, através do 'Calendário' , clicando no ícone '+Programa'. Este pode ser um programa inédito ou retransmitido. Apenas administradores e gerentes de programação podem adicionar programas."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:9
msgid "Add media to the show by going to your show in the Schedule calendar, left-clicking on it and selecting 'Add / Remove Content'"
msgstr "Adicione conteúdo ao programa, indo para o seu programa no calendário, clique com o botão esquerdo do mouse sobre o programa e selecione \"Adicionar / Remover Conteúdo\""
msgstr "Adicione conteúdos ao seu programa, através do link Calendário, clique com o botão esquerdo do mouse sobre o programa e selecione \"Adicionar / Remover Conteúdo\""
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:10
msgid "Select your media from the left pane and drag them to your show in the right pane."
msgstr "Selecione seu conteúdo a partir do painel esquerdo e arraste-o para o seu programa no painel da direita."
msgstr "Selecione seu conteúdo a partir da lista , no painel esquerdo, e arraste-o para o seu programa, no painel da direita."
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:12
msgid "Then you're good to go!"
msgstr "Então você está pronto para começar!"
msgstr "Você já está pronto para começar!"
#: airtime_mvc/application/views/scripts/dashboard/help.phtml:13
#, php-format
@ -2989,11 +2989,11 @@ msgstr "Expandir Bloco Dinâmico"
#: airtime_mvc/application/views/scripts/playlist/update.phtml:98
msgid "Empty smart block"
msgstr "Bloco inteligente vazio"
msgstr "Bloco vazio"
#: airtime_mvc/application/views/scripts/playlist/update.phtml:100
msgid "Empty playlist"
msgstr "Lista de reprodução vazia"
msgstr "Lista vazia"
#: airtime_mvc/application/views/scripts/playlist/set-fade.phtml:3
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:66
@ -3024,27 +3024,27 @@ msgstr "Novo"
#: airtime_mvc/application/views/scripts/playlist/smart-block.phtml:13
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:7
msgid "New Playlist"
msgstr "Nova Lista de Reprodução"
msgstr "Nova Lista"
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:14
#: airtime_mvc/application/views/scripts/playlist/smart-block.phtml:14
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:8
msgid "New Smart Block"
msgstr "Novo Bloco Inteligente"
msgstr "Novo Bloco"
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:15
#: airtime_mvc/application/views/scripts/playlist/smart-block.phtml:15
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:9
msgid "New Webstream"
msgstr "Novo Fluxo"
msgstr "Novo Fluxo Web"
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:20
msgid "Shuffle playlist"
msgstr "Embaralhar Lista de Reprodução"
msgstr "Embaralhar Lista"
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:23
msgid "Save playlist"
msgstr "Salvar Lista de Reprodução"
msgstr "Salvar Lista"
#: airtime_mvc/application/views/scripts/playlist/playlist.phtml:30
#: airtime_mvc/application/views/scripts/playlist/smart-block.phtml:27
@ -3114,7 +3114,7 @@ msgstr "Quem"
#: airtime_mvc/application/views/scripts/schedule/add-show-form.phtml:33
msgid "Style"
msgstr "Estilo"
msgstr "Aparência"
#: airtime_mvc/application/views/scripts/login/password-restore-after.phtml:3
msgid "Email sent"
@ -3130,7 +3130,7 @@ msgstr "Voltar à tela de login"
#: airtime_mvc/application/views/scripts/login/index.phtml:7
msgid "Welcome to the online Airtime demo! You can log in using the username 'admin' and the password 'admin'."
msgstr "Bem-vindo à demonstração online do Airtime! Você pode fazer login com usuário usando 'admin' e senha \"admin\"."
msgstr "Bem-vindo à demonstração online do Airtime! Autentique-se com usuário 'admin' e senha \"admin\"."
#: airtime_mvc/application/views/scripts/login/password-restore.phtml:3
#: airtime_mvc/application/views/scripts/form/login.phtml:34
@ -3216,7 +3216,7 @@ msgstr "Duração Padrão:"
#: airtime_mvc/application/views/scripts/webstream/webstream.phtml:63
msgid "No webstream"
msgstr "Nenhum fluxo"
msgstr "Nenhum fluxo web"
#: airtime_mvc/application/views/scripts/error/error.phtml:6
msgid "Zend Framework Default Application"
@ -3274,7 +3274,7 @@ msgstr "Definir"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:19
msgid "Current Import Folder:"
msgstr "Diretório Import Atual:"
msgstr "Diretório de Importação Atual:"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:28
#: airtime_mvc/application/views/scripts/form/add-show-rebroadcast-absolute.phtml:40
@ -3292,7 +3292,7 @@ msgstr "Remover diretório monitorado"
#: airtime_mvc/application/views/scripts/form/preferences_watched_dirs.phtml:50
msgid "You are not watching any media folders."
msgstr "Você não está monitorando nenhum diretório de mídia."
msgstr "Você não está monitorando nenhum diretório."
#: airtime_mvc/application/views/scripts/form/add-show-rebroadcast-absolute.phtml:4
msgid "Choose Days:"
@ -3332,7 +3332,7 @@ msgstr "Nota: qualquer arquivo maior que 600x600 será redimensionado"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:164
#: airtime_mvc/application/views/scripts/form/support-setting.phtml:164
msgid "Show me what I am sending "
msgstr "Mostrar o que estou enviando"
msgstr "Mostrar quais informações estou enviando"
#: airtime_mvc/application/views/scripts/form/register-dialog.phtml:178
msgid "Terms and Conditions"
@ -3380,7 +3380,7 @@ msgstr "Configurações de %s"
#: airtime_mvc/application/views/scripts/form/add-show-rebroadcast.phtml:4
msgid "Repeat Days:"
msgstr "Dias para repetir:"
msgstr "Dias para reexibir:"
#: airtime_mvc/application/views/scripts/form/daterange.phtml:6
msgid "Filter History"
@ -3418,7 +3418,7 @@ msgstr "URL de Conexão:"
#: airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml:3
msgid "Smart Block Options"
msgstr "Opções de Bloco Inteligente"
msgstr "Opções de Bloco"
#: airtime_mvc/application/views/scripts/form/smart-block-criteria.phtml:63
msgid " to "
@ -3453,7 +3453,7 @@ msgstr "Configurações Globais"
#: airtime_mvc/application/views/scripts/preference/stream-setting.phtml:88
msgid "dB"
msgstr "db"
msgstr "dB"
#: airtime_mvc/application/views/scripts/preference/stream-setting.phtml:107
msgid "Output Stream Settings"
@ -3472,7 +3472,7 @@ msgstr "Taxa de Amostragem:"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:18
msgid "Isrc Number:"
msgstr "Número do Isrc:"
msgstr "Número Isrc:"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:21
msgid "File Path:"
@ -3480,7 +3480,7 @@ msgstr "Caminho do Arquivo:"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:39
msgid "Web Stream"
msgstr "Fluxo"
msgstr "Fluxo Web"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:40
msgid "Dynamic Smart Block"
@ -3508,7 +3508,7 @@ msgstr "Critério para Bloco Inteligente Dinâmico:"
#: airtime_mvc/application/views/scripts/library/get-file-metadata.ajax.phtml:118
msgid "Limit to "
msgstr "Limite em"
msgstr "Limitar em"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:512
msgid "Please selection an option"
@ -3516,5 +3516,5 @@ msgstr "Por favor selecione uma opção"
#: airtime_mvc/library/propel/contrib/pear/HTML_QuickForm_Propel/Propel.php:531
msgid "No Records"
msgstr "Nenhum programa gravado"
msgstr "Não há gravações"

View file

@ -24,7 +24,7 @@ $(document).ready(function(){
cssSelectorAncestor: "#jp_container_1"
},[], //array of songs will be filled with below's json call
{
swfPath: "/js/jplayer",
swfPath: baseUrl+"js/jplayer",
supplied:"oga, mp3, m4v, m4a, wav",
size: {
width: "0px",

View file

@ -776,8 +776,19 @@ var AIRTIME = (function(AIRTIME) {
$simpleSearch.addClass("sp-invisible");
}
else {
//clear the advanced search fields and reset datatable
$(".filter_column input").val("").keyup();
// clear the advanced search fields
var divs = $("div#advanced_search").children(':visible');
$.each(divs, function(i, div){
fields = $(div).children().find('input');
$.each(fields, function(i, field){
if ($(field).val() !== "") {
$(field).val("");
// we need to reset the results when removing
// an advanced search field
$(field).keyup();
}
});
});
//reset datatable with previous simple search results (if any)
$(".dataTables_filter input").val(simpleSearchText).keyup();

View file

@ -1,3 +1,3 @@
function redirectToLogin(){
window.location = baseUrl+"/Login"
window.location = baseUrl+"Login"
}

View file

@ -233,28 +233,33 @@ function eventRender(event, element, view) {
}
//add the record/rebroadcast/soundcloud icons if needed
if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id === -1) {
if (event.record === 1) {
if (view.name === 'agendaDay' || view.name === 'agendaWeek') {
if (event.soundcloud_id === -1) {
$(element).find(".fc-event-time").before('<span id="'+event.id+'" class="small-icon recording"></span>');
} else if ((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id > 0) {
} else if ( event.soundcloud_id > 0) {
$(element).find(".fc-event-time").before('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon soundcloud"></span>');
} else if ((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id === -2) {
} else if (event.soundcloud_id === -2) {
$(element).find(".fc-event-time").before('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon progress"></span>');
} else if ((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.record === 1 && event.soundcloud_id === -3) {
} else if (event.soundcloud_id === -3) {
$(element).find(".fc-event-time").before('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon sc-error"></span>');
}
if(view.name === 'month' && event.record === 1 && event.soundcloud_id === -1) {
} else if (view.name === 'month') {
if(event.soundcloud_id === -1) {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span>');
} else if (view.name === 'month' && event.record === 1 && event.soundcloud_id > 0) {
} else if (event.soundcloud_id > 0) {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon soundcloud"></span>');
} else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -2) {
} else if (event.soundcloud_id === -2) {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon progress"></span>');
} else if (view.name === 'month' && event.record === 1 && event.soundcloud_id === -3) {
} else if (event.soundcloud_id === -3) {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon recording"></span><span id="'+event.id+'" class="small-icon sc-error"></span>');
}
}
}
if (event.record === 0 && event.rebroadcast === 0) {
if (view.name === 'agendaDay' || view.name === 'agendaWeek') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
if (event.show_empty === 1) {
$(element)
.find(".fc-event-time")
.before('<span id="'+event.id+'" class="small-icon show-empty"></span>');
@ -264,7 +269,7 @@ function eventRender(event, element, view) {
.before('<span id="'+event.id+'" class="small-icon show-partial-filled"></span>');
}
} else if (view.name === 'month') {
if (event.show_empty === 1 && event.record === 0 && event.rebroadcast === 0) {
if (event.show_empty === 1) {
$(element)
.find(".fc-event-title")
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is empty")+'" class="small-icon show-empty"></span>');
@ -274,16 +279,17 @@ function eventRender(event, element, view) {
.after('<span id="'+event.id+'" title="'+$.i18n._("Show is partially filled")+'" class="small-icon show-partial-filled"></span>');
}
}
//rebroadcast icon
if((view.name === 'agendaDay' || view.name === 'agendaWeek') && event.rebroadcast === 1) {
$(element).find(".fc-event-time").before('<span id="'+event.id+'" class="small-icon rebroadcast"></span>');
}
if(view.name === 'month' && event.rebroadcast === 1) {
//rebroadcast icon
if (event.rebroadcast === 1) {
if (view.name === 'agendaDay' || view.name === 'agendaWeek') {
$(element).find(".fc-event-time").before('<span id="'+event.id+'" class="small-icon rebroadcast"></span>');
} else if (view.name === 'month') {
$(element).find(".fc-event-title").after('<span id="'+event.id+'" class="small-icon rebroadcast"></span>');
}
}
}
function eventAfterRender( event, element, view ) {

View file

@ -0,0 +1,18 @@
// Greek
{
"sProcessing": "Επεξεργασία...",
"sLengthMenu": "Δείξε _MENU_ εγγραφές",
"sZeroRecords": "Δεν βρέθηκαν εγγραφές που να ταιριάζουν",
"sInfo": "Δείχνοντας _START_ εως _END_ από _TOTAL_ εγγραφές",
"sInfoEmpty": "Δείχνοντας 0 εως 0 από 0 εγγραφές",
"sInfoFiltered": "(φιλτραρισμένες από _MAX_ συνολικά εγγραφές)",
"sInfoPostFix": "",
"sSearch": "",
"sUrl": "",
"oPaginate": {
"sFirst": "Πρώτη",
"sPrevious": "Προηγούμενη",
"sNext": "Επόμενη",
"sLast": "Τελευταία"
}
}

View file

@ -0,0 +1,18 @@
//Polish
{
"sProcessing": "Proszę czekać...",
"sLengthMenu": "Pokaż _MENU_ pozycji",
"sZeroRecords": "Nie znaleziono żadnych pasujących indeksów",
"sInfo": "Pozycje od _START_ do _END_ z _TOTAL_ łącznie",
"sInfoEmpty": "Pozycji 0 z 0 dostępnych",
"sInfoFiltered": "(filtrowanie spośród _MAX_ dostępnych pozycji)",
"sInfoPostFix": "",
"sSearch": "",
"sUrl": "",
"oPaginate": {
"sFirst": "Pierwsza",
"sPrevious": "Poprzednia",
"sNext": "Następna",
"sLast": "Ostatnia"
}
}

View file

@ -0,0 +1,27 @@
//Greek
plupload.addI18n({
'Select files' : $.i18n._('Select files'),
'Add files to the upload queue and click the start button.' : $.i18n._('Add files to the upload queue and click the start button.'),
'Filename' : $.i18n._('Filename'),
'Status' : $.i18n._('Status'),
'Size' : $.i18n._('Size'),
'Add files' : $.i18n._('Add files'),
'Stop current upload' : $.i18n._('Stop current upload'),
'Start uploading queue' : $.i18n._('Start uploading queue'),
'Uploaded %d/%d files': $.i18n._('Uploaded %d/%d files'),
'N/A' : $.i18n._('N/A'),
'Drag files here.' : $.i18n._('Drag files here.'),
'File extension error.': $.i18n._('File extension error.'),
'File size error.': $.i18n._('File size error.'),
'Init error.': $.i18n._('Init error.'),
'HTTP Error.': $.i18n._('HTTP Error.'),
'Security error.': $.i18n._('Security error.'),
'Generic error.': $.i18n._('Generic error.'),
'IO error.': $.i18n._('IO error.'),
'Stop Upload': $.i18n._('Stop Upload'),
'Add Files': $.i18n._('Add Files'),
'Start Upload': $.i18n._('Start Upload'),
'Start upload': $.i18n._('Start upload'),
'%d files queued': $.i18n._('%d files queued'),
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View file

@ -0,0 +1,27 @@
//Polish
plupload.addI18n({
'Select files' : $.i18n._('Select files'),
'Add files to the upload queue and click the start button.' : $.i18n._('Add files to the upload queue and click the start button.'),
'Filename' : $.i18n._('Filename'),
'Status' : $.i18n._('Status'),
'Size' : $.i18n._('Size'),
'Add files' : $.i18n._('Add files'),
'Stop current upload' : $.i18n._('Stop current upload'),
'Start uploading queue' : $.i18n._('Start uploading queue'),
'Uploaded %d/%d files': $.i18n._('Uploaded %d/%d files'),
'N/A' : $.i18n._('N/A'),
'Drag files here.' : $.i18n._('Drag files here.'),
'File extension error.': $.i18n._('File extension error.'),
'File size error.': $.i18n._('File size error.'),
'Init error.': $.i18n._('Init error.'),
'HTTP Error.': $.i18n._('HTTP Error.'),
'Security error.': $.i18n._('Security error.'),
'Generic error.': $.i18n._('Generic error.'),
'IO error.': $.i18n._('IO error.'),
'Stop Upload': $.i18n._('Stop Upload'),
'Add Files': $.i18n._('Add Files'),
'Start Upload': $.i18n._('Start Upload'),
'Start upload': $.i18n._('Start upload'),
'%d files queued': $.i18n._('%d files queued'),
"Error: Invalid file extension: " : $.i18n._("Error: Invalid file extension: ")
});

View file

@ -1,3 +1,4 @@
CREATE SEQUENCE cc_listener_count_id_seq
START WITH 1
INCREMENT BY 1
@ -55,6 +56,24 @@ ALTER TABLE cc_files
ADD COLUMN silan_check boolean DEFAULT false,
ADD COLUMN hidden boolean DEFAULT false;
ALTER TABLE cc_schedule
ALTER COLUMN cue_in DROP DEFAULT,
ALTER COLUMN cue_in SET NOT NULL,
ALTER COLUMN cue_out DROP DEFAULT,
ALTER COLUMN cue_out SET NOT NULL;
ALTER SEQUENCE cc_listener_count_id_seq
OWNED BY cc_listener_count.id;
ALTER SEQUENCE cc_locale_id_seq
OWNED BY cc_locale.id;
ALTER SEQUENCE cc_mount_name_id_seq
OWNED BY cc_mount_name.id;
ALTER SEQUENCE cc_timestamp_id_seq
OWNED BY cc_timestamp.id;
ALTER TABLE cc_listener_count
ADD CONSTRAINT cc_listener_count_pkey PRIMARY KEY (id);
@ -72,5 +91,3 @@ ALTER TABLE cc_listener_count
ALTER TABLE cc_listener_count
ADD CONSTRAINT cc_timestamp_inst_fkey FOREIGN KEY (timestamp_id) REFERENCES cc_timestamp(id) ON DELETE CASCADE;

View file

@ -17,6 +17,15 @@ UPDATE cc_files SET filepath = substring(filepath from 2) where id in (select id
UPDATE cc_files SET cueout = length where cueout = '00:00:00';
UPDATE cc_schedule SET cue_out = clip_length WHERE cue_out = '00:00:00';
UPDATE cc_schedule SET fade_out = '00:00:59.9' WHERE fade_out > '00:00:59.9';
UPDATE cc_schedule SET fade_in = '00:00:59.9' WHERE fade_in > '00:00:59.9';
UPDATE cc_playlistcontents SET fadeout = '00:00:59.9' WHERE fadeout > '00:00:59.9';
UPDATE cc_playlistcontents SET fadein = '00:00:59.9' WHERE fadein > '00:00:59.9';
UPDATE cc_blockcontents SET fadeout = '00:00:59.9' WHERE fadeout > '00:00:59.9';
UPDATE cc_blockcontents SET fadein = '00:00:59.9' WHERE fadein > '00:00:59.9';
INSERT INTO cc_pref("keystr", "valstr") VALUES('locale', 'en_CA');
INSERT INTO cc_pref("subjid", "keystr", "valstr") VALUES(1, 'user_locale', 'en_CA');
@ -28,6 +37,8 @@ INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('es_ES', 'Español');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('fr_FR', 'Français');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('it_IT', 'Italiano');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ko_KR', '한국어');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('pl_PL', 'Polski');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('pt_BR', 'Português Brasileiro');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('ru_RU', 'Русский');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('zh_CN', '简体中文');
INSERT INTO cc_locale (locale_code, locale_lang) VALUES ('el_GR', 'Ελληνικά');

View file

@ -80,23 +80,19 @@ class ApiRequest(object):
if logger is None: self.logger = logging
else: self.logger = logger
def __call__(self,_post_data=None, **kwargs):
# TODO : get rid of god damn urllib and replace everything with
# grequests or requests at least
final_url = self.url.params(**kwargs).url()
if _post_data is not None: _post_data = urllib.urlencode(_post_data)
try:
req = urllib2.Request(final_url, _post_data)
response = urllib2.urlopen(req).read()
except Exception, e:
self.logger.error('Exception: %s', e)
import traceback
top = traceback.format_exc()
self.logger.error("traceback: %s", top)
response = ""
self.logger.error('Exception: %s', e)
self.logger.error("traceback: %s", traceback.format_exc())
raise
# Ghetto hack for now because we don't the content type we are getting
# (Pointless to look at mime since it's not being set correctly always)
try: return json.loads(response)
except ValueError: return response
return json.loads(response)
def req(self, *args, **kwargs):
self.__req = lambda : self(*args, **kwargs)
@ -150,7 +146,6 @@ class AirtimeApiClient(object):
sys.exit(1)
def __get_airtime_version(self):
# TODO : maybe fix this function to drop an exception?
try: return self.services.version_url()[u'version']
except Exception: return -1
@ -158,18 +153,18 @@ class AirtimeApiClient(object):
logger = self.logger
version = self.__get_airtime_version()
# logger.info('Airtime version found: ' + str(version))
if (version == -1):
if version == -1:
if (verbose):
logger.info('Unable to get Airtime version number.\n')
return False
elif (version[0:3] != AIRTIME_VERSION[0:3]):
if (verbose):
elif version[0:3] != AIRTIME_VERSION[0:3]:
if verbose:
logger.info('Airtime version found: ' + str(version))
logger.info('pypo is at version ' + AIRTIME_VERSION +
' and is not compatible with this version of Airtime.\n')
return False
else:
if (verbose):
if verbose:
logger.info('Airtime version: ' + str(version))
logger.info('pypo is at version ' + AIRTIME_VERSION + ' and is compatible with this version of Airtime.')
return True
@ -182,24 +177,27 @@ class AirtimeApiClient(object):
except: return (False, None)
def notify_liquidsoap_started(self):
return self.services.notify_liquidsoap_started()
try:
self.services.notify_liquidsoap_started()
except Exception, e:
self.logger.error(str(e))
def notify_media_item_start_playing(self, media_id):
""" This is a callback from liquidsoap, we use this to notify
about the currently playing *song*. We get passed a JSON string
which we handed to liquidsoap in get_liquidsoap_data(). """
try:
return self.services.update_start_playing_url(media_id=media_id)
# TODO : get this routine out of here it doesn't belong at all here
def get_liquidsoap_data(self, pkey, schedule):
playlist = schedule[pkey]
data = dict()
try: data["schedule_id"] = playlist['id']
except Exception: data["schedule_id"] = 0
return data
except Exception, e:
self.logger.error(str(e))
return None
def get_shows_to_record(self):
try:
return self.services.show_schedule_url()
except Exception, e:
self.logger.error(str(e))
return None
def upload_recorded_show(self, data, headers):
logger = self.logger
@ -235,8 +233,12 @@ class AirtimeApiClient(object):
return response
def check_live_stream_auth(self, username, password, dj_type):
try:
return self.services.check_live_stream_auth(
username=username, password=password, djtype=dj_type)
except Exception, e:
self.logger.error(str(e))
return {}
def construct_url(self,config_action_key):
"""Constructs the base url for every request"""
@ -248,6 +250,10 @@ class AirtimeApiClient(object):
url = url.replace("%%api_key%%", self.config["api_key"])
return url
"""
Caller of this method needs to catch any exceptions such as
ValueError thrown by json.loads or URLError by urllib2.urlopen
"""
def setup_media_monitor(self):
return self.services.media_setup_url()
@ -308,25 +314,40 @@ class AirtimeApiClient(object):
self.logger.error("Could not find index 'files' in dictionary: %s",
str(response))
return []
"""
Caller of this method needs to catch any exceptions such as
ValueError thrown by json.loads or URLError by urllib2.urlopen
"""
def list_all_watched_dirs(self):
return self.services.list_all_watched_dirs()
"""
Caller of this method needs to catch any exceptions such as
ValueError thrown by json.loads or URLError by urllib2.urlopen
"""
def add_watched_dir(self, path):
return self.services.add_watched_dir(path=base64.b64encode(path))
"""
Caller of this method needs to catch any exceptions such as
ValueError thrown by json.loads or URLError by urllib2.urlopen
"""
def remove_watched_dir(self, path):
return self.services.remove_watched_dir(path=base64.b64encode(path))
"""
Caller of this method needs to catch any exceptions such as
ValueError thrown by json.loads or URLError by urllib2.urlopen
"""
def set_storage_dir(self, path):
return self.services.set_storage_dir(path=base64.b64encode(path))
"""
Caller of this method needs to catch any exceptions such as
ValueError thrown by json.loads or URLError by urllib2.urlopen
"""
def get_stream_setting(self):
logger = self.logger
try: return self.services.get_stream_setting()
except Exception, e:
logger.error("Exception: %s", e)
return None
return self.services.get_stream_setting()
def register_component(self, component):
""" Purpose of this method is to contact the server with a "Hey its
@ -343,6 +364,7 @@ class AirtimeApiClient(object):
self.services.update_liquidsoap_status.req(msg=encoded_msg, stream_id=stream_id,
boot_time=time).retry(5)
except Exception, e:
#TODO
logger.error("Exception: %s", e)
def notify_source_status(self, sourcename, status):
@ -351,10 +373,11 @@ class AirtimeApiClient(object):
return self.services.update_source_status.req(sourcename=sourcename,
status=status).retry(5)
except Exception, e:
#TODO
logger.error("Exception: %s", e)
def get_bootstrap_info(self):
""" Retrive infomations needed on bootstrap time """
""" Retrieve infomations needed on bootstrap time """
return self.services.get_bootstrap_info()
def get_files_without_replay_gain_value(self, dir_id):
@ -364,7 +387,11 @@ class AirtimeApiClient(object):
to this file is the return value.
"""
#http://localhost/api/get-files-without-replay-gain/dir_id/1
try:
return self.services.get_files_without_replay_gain(dir_id=dir_id)
except Exception, e:
self.logger.error(str(e))
return []
def get_files_without_silan_value(self):
"""
@ -372,7 +399,11 @@ class AirtimeApiClient(object):
calculated. This list of files is downloaded into a file and the path
to this file is the return value.
"""
try:
return self.services.get_files_without_silan_value()
except Exception, e:
self.logger.error(str(e))
return []
def update_replay_gain_values(self, pairs):
"""
@ -382,12 +413,13 @@ class AirtimeApiClient(object):
self.logger.debug(self.services.update_replay_gain_value(
_post_data={'data': json.dumps(pairs)}))
def update_cue_values_by_silan(self, pairs):
"""
'pairs' is a list of pairs in (x, y), where x is the file's database
row id and y is the file's cue values in dB
"""
print self.services.update_cue_values_by_silan(_post_data={'data': json.dumps(pairs)})
return self.services.update_cue_values_by_silan(_post_data={'data': json.dumps(pairs)})
def notify_webstream_data(self, data, media_id):
@ -409,5 +441,9 @@ class AirtimeApiClient(object):
return response
def update_stream_setting_table(self, data):
try:
response = self.services.update_stream_setting_table(_post_data={'data': json.dumps(data)})
return response
except Exception, e:
#TODO
self.logger.error(str(e))

View file

@ -69,7 +69,7 @@ class AirtimeMediaMonitorBootstrap():
return json["dirs"]
except KeyError as e:
self.logger.error("Could not find index 'dirs' in dictionary: %s", str(json))
self.logger.error(e)
self.logger.error(str(e))
return {}
"""

View file

@ -19,6 +19,7 @@ class AirtimeDB(Loggable):
saas = user().root_path
try:
# dirs_setup is a dict with keys:
# u'watched_dirs' and u'stor' which point to lists of corresponding
# dirs
@ -44,6 +45,9 @@ class AirtimeDB(Loggable):
# store...
self.watched_directories = set([ os.path.normpath(p) for p in
dirs_setup[u'watched_dirs'] ])
except Exception, e:
self.logger.info(str(e))
def to_id(self, directory):
""" directory path -> id """

View file

@ -85,7 +85,15 @@ class MM2(InstanceThread, Loggable):
ToucherThread(path=user().touch_file_path(),
interval=int(config['touch_interval']))
success = False
while not success:
try:
apiclient.register_component('media-monitor')
success = True
except Exception, e:
self.logger.error(str(e))
import time
time.sleep(10)
manager.loop()

View file

@ -26,13 +26,10 @@ def generate_liquidsoap_config(ss):
logging.basicConfig(format='%(message)s')
ac = AirtimeApiClient(logging.getLogger())
ss = ac.get_stream_setting()
if ss is not None:
try:
ss = ac.get_stream_setting()
generate_liquidsoap_config(ss)
except Exception, e:
logging.error(e)
else:
logging.error(str(e))
print "Unable to connect to the Airtime server."
sys.exit(1)

View file

@ -15,4 +15,7 @@ elif dj_type == '--dj':
response = api_clients.check_live_stream_auth(username, password, source_type)
if 'msg' in response:
print response['msg']
else:
print False

View file

@ -103,7 +103,10 @@ class ListenerStat(Thread):
self.update_listener_stat_error(v["mount"], 'OK')
except Exception, e:
self.logger.error('Exception: %s', e)
try:
self.update_listener_stat_error(v["mount"], str(e))
except Exception, e:
self.logger.error('Exception: %s', e)
return stats

View file

@ -67,15 +67,15 @@ class ReplayGainUpdater(Thread):
self.logger.error(e)
self.logger.debug(traceback.format_exc())
def run(self):
try:
while True:
self.logger.info("Runnning replaygain updater")
try:
self.logger.info("Running replaygain updater")
self.main()
# Sleep for 5 minutes in case new files have been added
time.sleep(60 * 5)
except Exception, e:
self.logger.error('ReplayGainUpdater Exception: %s', traceback.format_exc())
self.logger.error(e)
time.sleep(60 * 5)
if __name__ == "__main__":
rgu = ReplayGainUpdater()

View file

@ -179,7 +179,14 @@ if __name__ == '__main__':
ReplayGainUpdater.start_reply_gain(api_client)
api_client.register_component("pypo")
success = False
while not success:
try:
api_client.register_component('pypo')
success = True
except Exception, e:
logger.error(str(e))
time.sleep(10)
pypoFetch_q = Queue()
recorder_q = Queue()

View file

@ -206,10 +206,12 @@ class PypoFetch(Thread):
"""
def set_bootstrap_variables(self):
self.logger.debug('Getting information needed on bootstrap from Airtime')
try:
info = self.api_client.get_bootstrap_info()
if info is None:
except Exception, e:
self.logger.error('Unable to get bootstrap info.. Exiting pypo...')
else:
self.logger.error(str(e))
self.logger.debug('info:%s', info)
commands = []
for k, v in info['switch_status'].iteritems():

View file

@ -189,9 +189,17 @@ class Recorder(Thread):
self.server_timezone = ''
self.queue = q
self.loops = 0
self.api_client.register_component("show-recorder")
self.logger.info("RecorderFetch: init complete")
success = False
while not success:
try:
self.api_client.register_component('show-recorder')
success = True
except Exception, e:
self.logger.error(str(e))
time.sleep(10)
def handle_message(self):
if not self.queue.empty():
message = self.queue.get()

View file

@ -75,10 +75,11 @@ def format_dir_string(path):
return path
def helper_get_stor_dir():
try:
res = api_client.list_all_watched_dirs()
if(res is None):
except Exception, e:
return res
else:
if(res['dirs']['1'][-1] != '/'):
out = res['dirs']['1']+'/'
return out
@ -162,8 +163,9 @@ def WatchAddAction(option, opt, value, parser):
path = apc.encode_to(path, 'utf-8')
if(os.path.isdir(path)):
#os.chmod(path, 0765)
try:
res = api_client.add_watched_dir(path)
if(res is None):
except Exception, e:
exit("Unable to connect to the server.")
# sucess
if(res['msg']['code'] == 0):
@ -179,8 +181,9 @@ def WatchListAction(option, opt, value, parser):
errorIfMultipleOption(parser.rargs)
if(len(parser.rargs) > 0):
raise OptionValueError("This option doesn't take any arguments.")
try:
res = api_client.list_all_watched_dirs()
if(res is None):
except Exception, e:
exit("Unable to connect to the Airtime server.")
dirs = res["dirs"].items()
# there will be always 1 which is storage folder
@ -204,8 +207,9 @@ def WatchRemoveAction(option, opt, value, parser):
path = currentDir+path
path = apc.encode_to(path, 'utf-8')
if(os.path.isdir(path)):
try:
res = api_client.remove_watched_dir(path)
if(res is None):
except Exception, e:
exit("Unable to connect to the Airtime server.")
# sucess
if(res['msg']['code'] == 0):
@ -249,10 +253,11 @@ def StorageSetAction(option, opt, value, parser):
path = currentDir+path
path = apc.encode_to(path, 'utf-8')
if(os.path.isdir(path)):
try:
res = api_client.set_storage_dir(path)
if(res is None):
except Exception, e:
exit("Unable to connect to the Airtime server.")
# sucess
# success
if(res['msg']['code'] == 0):
print "Successfully set storage folder to %s" % path
else:

View file

@ -68,7 +68,7 @@ try:
subtotal += total
total = 0
try:
api_client.update_cue_values_by_silan(processed_data)
print api_client.update_cue_values_by_silan(processed_data)
except Exception ,e:
print e
print traceback.format_exc()