mirror of
https://github.com/AzuraCast/AzuraCast.git
synced 2024-06-13 20:56:36 +00:00
Unify mount form config; make mounts/remotes selectable on public page.
This commit is contained in:
parent
14cf4da86b
commit
748ade0089
149
config/forms/mount/generic.php
Normal file
149
config/forms/mount/generic.php
Normal file
|
@ -0,0 +1,149 @@
|
|||
<?php
|
||||
return [
|
||||
'method' => 'post',
|
||||
'enctype' => 'multipart/form-data',
|
||||
|
||||
'groups' => [
|
||||
|
||||
'basic_info' => [
|
||||
'elements' => [
|
||||
|
||||
'name' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Mount Point URL'),
|
||||
'description' => __('This name should always begin with a slash (/), and must be a valid URL, such as /autodj.mp3'),
|
||||
'required' => true,
|
||||
]
|
||||
],
|
||||
|
||||
'display_name' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Display Name'),
|
||||
'description' => __('The display name assigned to this mount point when viewing it on administrative or public pages. Leave blank to automatically generate one.'),
|
||||
]
|
||||
],
|
||||
|
||||
'is_visible_on_public_pages' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Show on Public Pages'),
|
||||
'description' => __('Enable to allow listeners to select this mount point on this station\'s public pages.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => true,
|
||||
]
|
||||
],
|
||||
|
||||
'is_default' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Set as Default Mount Point'),
|
||||
'description' => __('If this mount is the default, it will be played on the radio preview and the public radio page in this system.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => false,
|
||||
]
|
||||
],
|
||||
|
||||
'relay_url' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Relay Stream URL'),
|
||||
'description' => __('Enter the full URL of another stream to relay its broadcast through this mount point.'),
|
||||
'default' => '',
|
||||
]
|
||||
],
|
||||
|
||||
'is_public' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Publish to "Yellow Pages" Directories'),
|
||||
'description' => __('Enable to advertise this mount point on "Yellow Pages" public radio directories.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => false,
|
||||
]
|
||||
],
|
||||
|
||||
'enable_autodj' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Enable AutoDJ'),
|
||||
'description' => __('If enabled, the AutoDJ will automatically play music to this mount point.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => true,
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'autodj' => [
|
||||
'legend' => __('Configure AutoDJ Broadcasting'),
|
||||
'class' => 'fieldset_autodj',
|
||||
'elements' => [
|
||||
|
||||
'autodj_format' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('AutoDJ Format'),
|
||||
'choices' => [],
|
||||
]
|
||||
],
|
||||
|
||||
'autodj_bitrate' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('AutoDJ Bitrate (kbps)'),
|
||||
'choices' => [
|
||||
32 => '32',
|
||||
48 => '48',
|
||||
64 => '64',
|
||||
96 => '96',
|
||||
128 => '128',
|
||||
192 => '192',
|
||||
256 => '256',
|
||||
320 => '320',
|
||||
],
|
||||
'default' => 128,
|
||||
]
|
||||
],
|
||||
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'advanced_items' => [
|
||||
'legend' => __('Advanced Configuration'),
|
||||
'elements' => [
|
||||
|
||||
'custom_listen_url' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Custom Stream URL'),
|
||||
'label_class' => 'advanced',
|
||||
'description' => __('You can set a custom URL for this stream that AzuraCast will use when referring to it. Leave empty to use the default value.')
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'grp_submit' => [
|
||||
'elements' => [
|
||||
|
||||
'submit' => [
|
||||
'submit',
|
||||
[
|
||||
'type' => 'submit',
|
||||
'label' => __('Save Changes'),
|
||||
'class' => 'ui-button btn-lg btn-primary',
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
|
@ -1,155 +1,32 @@
|
|||
<?php
|
||||
use App\Entity\StationMount;
|
||||
|
||||
return [
|
||||
'method' => 'post',
|
||||
'enctype' => 'multipart/form-data',
|
||||
$form_config = require __DIR__.'/generic.php';
|
||||
|
||||
'groups' => [
|
||||
|
||||
'basic_info' => [
|
||||
'elements' => [
|
||||
|
||||
'name' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Mount Point Name/URL'),
|
||||
'description' => __('This name should always begin with a slash (/), and must be a valid URL, such as /autodj.mp3'),
|
||||
'required' => true,
|
||||
]
|
||||
],
|
||||
|
||||
'is_default' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Set as Default Mount Point'),
|
||||
'description' => __('If this mount is the default, it will be played on the radio preview and the public radio page in this system.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => false,
|
||||
]
|
||||
],
|
||||
|
||||
'fallback_mount' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Fallback Mount'),
|
||||
'description' => __('If this mount point is not playing audio, listeners will automatically be redirected to this mount point. The default is /error.mp3, a repeating error message.'),
|
||||
'default' => '/error.mp3',
|
||||
]
|
||||
],
|
||||
|
||||
'relay_url' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Relay Stream URL'),
|
||||
'description' => __('Enter the full URL of another stream to relay its broadcast through this mount point.'),
|
||||
'default' => '',
|
||||
]
|
||||
],
|
||||
|
||||
'is_public' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('Advertise to YP Directories (Public Station)'),
|
||||
'description' => __('Set to "yes" to advertise this stream on the YP public radio directories.'),
|
||||
'choices' => [0 => __('No'), 1 => __('Yes')],
|
||||
'default' => 0,
|
||||
]
|
||||
],
|
||||
|
||||
'enable_autodj' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Enable AutoDJ'),
|
||||
'description' => __('If enabled, the AutoDJ will automatically play music to this mount point.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => true,
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
'autodj' => [
|
||||
'legend' => __('Configure AutoDJ Broadcasting'),
|
||||
'class' => 'fieldset_autodj',
|
||||
'elements' => [
|
||||
|
||||
'autodj_format' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('AutoDJ Format'),
|
||||
'choices' => [
|
||||
StationMount::FORMAT_MP3 => 'MP3',
|
||||
StationMount::FORMAT_OGG => 'OGG Vorbis',
|
||||
StationMount::FORMAT_OPUS => 'OGG Opus',
|
||||
StationMount::FORMAT_AAC => 'AAC+ (MPEG4 HE-AAC v2)',
|
||||
],
|
||||
'default' => StationMount::FORMAT_MP3,
|
||||
]
|
||||
],
|
||||
|
||||
'autodj_bitrate' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('AutoDJ Bitrate (kbps)'),
|
||||
'choices' => [
|
||||
32 => '32',
|
||||
48 => '48',
|
||||
64 => '64',
|
||||
96 => '96',
|
||||
128 => '128',
|
||||
192 => '192',
|
||||
256 => '256',
|
||||
320 => '320',
|
||||
],
|
||||
'default' => 128,
|
||||
]
|
||||
],
|
||||
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'advanced_items' => [
|
||||
'legend' => __('Advanced Configuration'),
|
||||
'elements' => [
|
||||
|
||||
'custom_listen_url' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Custom Stream URL'),
|
||||
'label_class' => 'advanced',
|
||||
'description' => __('You can set a custom URL for this stream that AzuraCast will use when referring to it. Leave empty to use the default value.')
|
||||
]
|
||||
],
|
||||
|
||||
'frontend_config' => [
|
||||
'textarea',
|
||||
[
|
||||
'label' => __('Custom Frontend Configuration'),
|
||||
'label_class' => 'advanced',
|
||||
'description' => __('You can include any special mount point settings here, in either JSON { key: \'value\' } format or XML <key>value</key>'),
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'grp_submit' => [
|
||||
'elements' => [
|
||||
|
||||
'submit' => [
|
||||
'submit',
|
||||
[
|
||||
'type' => 'submit',
|
||||
'label' => __('Save Changes'),
|
||||
'class' => 'ui-button btn-lg btn-primary',
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
],
|
||||
$form_config['groups']['basic_info']['elements']['fallback_mount'] = [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Fallback Mount'),
|
||||
'description' => __('If this mount point is not playing audio, listeners will automatically be redirected to this mount point. The default is /error.mp3, a repeating error message.'),
|
||||
'default' => '/error.mp3',
|
||||
]
|
||||
];
|
||||
|
||||
$form_config['groups']['autodj']['elements']['autodj_format'][1]['choices'] = [
|
||||
StationMount::FORMAT_MP3 => 'MP3',
|
||||
StationMount::FORMAT_OGG => 'OGG Vorbis',
|
||||
StationMount::FORMAT_OPUS => 'OGG Opus',
|
||||
StationMount::FORMAT_AAC => 'AAC+ (MPEG4 HE-AAC v2)',
|
||||
];
|
||||
$form_config['groups']['autodj']['elements']['autodj_format'][1]['default'] = StationMount::FORMAT_MP3;
|
||||
|
||||
$form_config['groups']['advanced_items']['elements']['frontend_config'] = [
|
||||
'textarea',
|
||||
[
|
||||
'label' => __('Custom Frontend Configuration'),
|
||||
'label_class' => 'advanced',
|
||||
'description' => __('You can include any special mount point settings here, in either JSON { key: \'value\' } format or XML <key>value</key>'),
|
||||
]
|
||||
];
|
||||
|
||||
return $form_config;
|
||||
|
|
|
@ -1,157 +1,35 @@
|
|||
<?php
|
||||
use App\Entity\StationMount;
|
||||
|
||||
return [
|
||||
'method' => 'post',
|
||||
'enctype' => 'multipart/form-data',
|
||||
$form_config = require __DIR__.'/generic.php';
|
||||
|
||||
'groups' => [
|
||||
$form_config['groups']['basic_info']['elements']['name'][1]['validator'] = function($text) {
|
||||
$forbidden_paths = ['listen', 'admin', 'statistics', '7.html'];
|
||||
|
||||
'basic_info' => [
|
||||
'elements' => [
|
||||
foreach($forbidden_paths as $forbidden_path) {
|
||||
if (stripos($text, $forbidden_path) !== false) {
|
||||
return __('Stream path cannot include reserved keywords: %s', implode(', ', $forbidden_paths));
|
||||
}
|
||||
}
|
||||
|
||||
'name' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Mount Point Name/URL'),
|
||||
'description' => __('This name should always begin with a slash (/), and must be a valid URL, such as /autodj.mp3'),
|
||||
'required' => true,
|
||||
'validator' => function($text) {
|
||||
$forbidden_paths = ['listen', 'admin', 'statistics', '7.html'];
|
||||
return true;
|
||||
};
|
||||
|
||||
foreach($forbidden_paths as $forbidden_path) {
|
||||
if (stripos($text, $forbidden_path) !== false) {
|
||||
return __('Stream path cannot include reserved keywords: %s', implode(', ', $forbidden_paths));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
]
|
||||
],
|
||||
|
||||
'is_default' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Is Default Mount'),
|
||||
'description' => __('If this mount is the default, it will be played on the radio preview and the public radio page in this system.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => false,
|
||||
]
|
||||
],
|
||||
|
||||
'relay_url' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Relay Stream URL'),
|
||||
'description' => __('Enter the full URL of another stream to relay its broadcast through this mount point.'),
|
||||
'default' => '',
|
||||
]
|
||||
],
|
||||
|
||||
'is_public' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Advertise to YP Directories (Public Station)'),
|
||||
'description' => __('Set to "yes" to advertise this stream on the YP public radio directories.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => false,
|
||||
]
|
||||
],
|
||||
|
||||
'authhash' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('YP Directory Authorization Hash'),
|
||||
'description' => sprintf(__('If your stream is set to advertise to YP directories above, you must specify an authorization hash. You can manage authhashes <a href="%s" target="_blank">on the SHOUTcast web site</a>.'),
|
||||
'https://rmo.shoutcast.com'),
|
||||
'default' => '',
|
||||
]
|
||||
],
|
||||
|
||||
'enable_autodj' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Enable AutoDJ'),
|
||||
'description' => __('If set to "Yes", the AutoDJ will automatically play music to this mount point.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => true,
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'autodj' => [
|
||||
'legend' => __('Configure AutoDJ Broadcasting'),
|
||||
'class' => 'fieldset_autodj',
|
||||
'elements' => [
|
||||
|
||||
'autodj_format' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('AutoDJ Format'),
|
||||
'choices' => [
|
||||
StationMount::FORMAT_MP3 => 'MP3',
|
||||
StationMount::FORMAT_AAC => 'AAC+ (MPEG4 HE-AAC v2)',
|
||||
],
|
||||
'default' => StationMount::FORMAT_MP3,
|
||||
]
|
||||
],
|
||||
|
||||
'autodj_bitrate' => [
|
||||
'radio',
|
||||
[
|
||||
'label' => __('AutoDJ Bitrate (kbps)'),
|
||||
'choices' => [
|
||||
32 => '32',
|
||||
48 => '48',
|
||||
64 => '64',
|
||||
96 => '96',
|
||||
128 => '128',
|
||||
192 => '192',
|
||||
256 => '256',
|
||||
320 => '320',
|
||||
],
|
||||
'default' => 128,
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'advanced_items' => [
|
||||
'legend' => __('Advanced Configuration'),
|
||||
'elements' => [
|
||||
|
||||
'custom_listen_url' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Custom Stream URL'),
|
||||
'label_class' => 'advanced',
|
||||
'description' => __('You can set a custom URL for this stream that AzuraCast will use when referring to it. Leave empty to use the default value.')
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
|
||||
'grp_submit' => [
|
||||
'elements' => [
|
||||
|
||||
'submit' => [
|
||||
'submit',
|
||||
[
|
||||
'type' => 'submit',
|
||||
'label' => __('Save Changes'),
|
||||
'class' => 'ui-button btn-lg btn-primary',
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
],
|
||||
],
|
||||
$form_config['groups']['basic_info']['elements']['authhash'] = [
|
||||
'text',
|
||||
[
|
||||
'label' => __('YP Directory Authorization Hash'),
|
||||
'description' => sprintf(__('If your stream is set to advertise to YP directories above, you must specify an authorization hash. You can manage authhashes <a href="%s" target="_blank">on the SHOUTcast web site</a>.'),
|
||||
'https://rmo.shoutcast.com'),
|
||||
'default' => '',
|
||||
]
|
||||
];
|
||||
|
||||
$form_config['groups']['autodj']['elements']['autodj_format'][1]['choices'] = [
|
||||
StationMount::FORMAT_MP3 => 'MP3',
|
||||
StationMount::FORMAT_AAC => 'AAC+ (MPEG4 HE-AAC v2)',
|
||||
];
|
||||
|
||||
$form_config['groups']['autodj']['elements']['autodj_format'][1]['default'] = StationMount::FORMAT_MP3;
|
||||
|
||||
return $form_config;
|
||||
|
|
|
@ -7,6 +7,25 @@ return [
|
|||
'basic_info' => [
|
||||
'elements' => [
|
||||
|
||||
'display_name' => [
|
||||
'text',
|
||||
[
|
||||
'label' => __('Display Name'),
|
||||
'description' => __('The display name assigned to this relay when viewing it on administrative or public pages. Leave blank to automatically generate one.'),
|
||||
]
|
||||
],
|
||||
|
||||
'is_visible_on_public_pages' => [
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Show on Public Pages'),
|
||||
'description' => __('Enable to allow listeners to select this relay on this station\'s public pages.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => true,
|
||||
]
|
||||
],
|
||||
|
||||
'type' => [
|
||||
'radio',
|
||||
[
|
||||
|
@ -49,7 +68,7 @@ return [
|
|||
'toggle',
|
||||
[
|
||||
'label' => __('Broadcast AutoDJ to Remote Station'),
|
||||
'description' => __('If set to "Yes", the AutoDJ on this installation will automatically play music to this mount point.'),
|
||||
'description' => __('If enabled, the AutoDJ on this installation will automatically play music to this mount point.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => 0,
|
||||
|
@ -127,12 +146,13 @@ return [
|
|||
],
|
||||
|
||||
'is_public' => [
|
||||
'radio',
|
||||
'toggle',
|
||||
[
|
||||
'label' => __('Advertise to YP Directories (Public Station)'),
|
||||
'description' => __('Set to "yes" to advertise this stream on the YP public radio directories.'),
|
||||
'choices' => [0 => __('No'), 1 => __('Yes')],
|
||||
'default' => 0,
|
||||
'label' => __('Publish to "Yellow Pages" Directories'),
|
||||
'description' => __('Enable to advertise this mount point on "Yellow Pages" public radio directories.'),
|
||||
'selected_text' => __('Yes'),
|
||||
'deselected_text' => __('No'),
|
||||
'default' => false,
|
||||
]
|
||||
],
|
||||
|
||||
|
|
|
@ -7,8 +7,8 @@ msgstr ""
|
|||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"POT-Creation-Date: 2019-03-23T04:31:53+00:00\n"
|
||||
"PO-Revision-Date: 2019-03-23T04:31:53+00:00\n"
|
||||
"POT-Creation-Date: 2019-03-24T05:46:26+00:00\n"
|
||||
"PO-Revision-Date: 2019-03-24T05:46:26+00:00\n"
|
||||
"Language: \n"
|
||||
|
||||
#: /var/azuracast/www/src/Form/StationForm.php:79
|
||||
|
@ -125,7 +125,7 @@ msgstr ""
|
|||
|
||||
#: /var/azuracast/www/src/Acl.php:191
|
||||
#: /var/azuracast/www/config/menus/station.php:81
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:247
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:248
|
||||
#: /var/azuracast/www/templates/stations/remotes/index.phtml:1
|
||||
#: /var/azuracast/www/templates/stations/remotes/index.phtml:5
|
||||
msgid "Remote Relays"
|
||||
|
@ -406,10 +406,10 @@ msgid "Supervisord Log"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/CustomFieldsController.php:71
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:69
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:73
|
||||
#: /var/azuracast/www/src/Controller/Admin/StationsController.php:49
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:68
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:79
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:69
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:83
|
||||
#: /var/azuracast/www/src/Controller/Stations/Files/EditController.php:136
|
||||
#: /var/azuracast/www/src/Controller/Stations/MountsController.php:100
|
||||
#: /var/azuracast/www/src/Controller/Stations/StreamersController.php:108
|
||||
|
@ -421,9 +421,9 @@ msgid "%s updated."
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/CustomFieldsController.php:71
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:69
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:73
|
||||
#: /var/azuracast/www/src/Controller/Admin/StationsController.php:49
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:79
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:83
|
||||
#: /var/azuracast/www/src/Controller/Stations/MountsController.php:100
|
||||
#: /var/azuracast/www/src/Controller/Stations/StreamersController.php:108
|
||||
#: /var/azuracast/www/src/Controller/Stations/RemotesController.php:82
|
||||
|
@ -440,10 +440,10 @@ msgid "Custom Field"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/CustomFieldsController.php:79
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:81
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:85
|
||||
#: /var/azuracast/www/src/Controller/Admin/StationsController.php:55
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:76
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:87
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:77
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:91
|
||||
#: /var/azuracast/www/src/Controller/Stations/Files/EditController.php:145
|
||||
#: /var/azuracast/www/src/Controller/Stations/MountsController.php:108
|
||||
#: /var/azuracast/www/src/Controller/Stations/StreamersController.php:116
|
||||
|
@ -455,9 +455,9 @@ msgid "Edit %s"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/CustomFieldsController.php:79
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:81
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:85
|
||||
#: /var/azuracast/www/src/Controller/Admin/StationsController.php:55
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:87
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:91
|
||||
#: /var/azuracast/www/src/Controller/Stations/MountsController.php:108
|
||||
#: /var/azuracast/www/src/Controller/Stations/StreamersController.php:116
|
||||
#: /var/azuracast/www/src/Controller/Stations/RemotesController.php:90
|
||||
|
@ -481,10 +481,10 @@ msgid "Add %s"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/CustomFieldsController.php:95
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:99
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:103
|
||||
#: /var/azuracast/www/src/Controller/Admin/StationsController.php:69
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:92
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:105
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:93
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:109
|
||||
#: /var/azuracast/www/src/Controller/Stations/MountsController.php:133
|
||||
#: /var/azuracast/www/src/Controller/Stations/StreamersController.php:139
|
||||
#: /var/azuracast/www/src/Controller/Stations/RemotesController.php:115
|
||||
|
@ -494,25 +494,25 @@ msgstr ""
|
|||
msgid "%s deleted."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:69
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:81
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:99
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:112
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:73
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:85
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:103
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:116
|
||||
#: /var/azuracast/www/templates/admin/users/index.phtml:10
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:75
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:79
|
||||
msgid "Another user already exists with this e-mail address. Please update the e-mail address."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:94
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:98
|
||||
msgid "You cannot delete your own account."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:112
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:116
|
||||
#: /var/azuracast/www/src/Controller/Admin/Stations/CloneController.php:52
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:55
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:56
|
||||
#: /var/azuracast/www/src/Controller/Stations/Files/EditController.php:57
|
||||
#: /var/azuracast/www/src/Controller/Stations/WebhooksController.php:80
|
||||
#: /var/azuracast/www/src/Controller/Stations/WebhooksController.php:125
|
||||
|
@ -524,7 +524,7 @@ msgstr ""
|
|||
msgid "%s not found."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:117
|
||||
#: /var/azuracast/www/src/Controller/Admin/UsersController.php:121
|
||||
#: /var/azuracast/www/src/Controller/Frontend/AccountController.php:97
|
||||
#: /var/azuracast/www/src/Controller/Frontend/AccountController.php:126
|
||||
msgid "Logged in successfully."
|
||||
|
@ -549,10 +549,10 @@ msgstr ""
|
|||
msgid "Install SHOUTcast"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:55
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:68
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:76
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:92
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:56
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:69
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:77
|
||||
#: /var/azuracast/www/src/Controller/Admin/ApiController.php:93
|
||||
#: /var/azuracast/www/src/Controller/Frontend/ApiKeysController.php:60
|
||||
#: /var/azuracast/www/src/Controller/Frontend/ApiKeysController.php:95
|
||||
#: /var/azuracast/www/src/Controller/Frontend/ApiKeysController.php:102
|
||||
|
@ -566,9 +566,9 @@ msgstr ""
|
|||
msgid "Sync Task Output"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:79
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:87
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:105
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:83
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:91
|
||||
#: /var/azuracast/www/src/Controller/Admin/PermissionsController.php:109
|
||||
#: /var/azuracast/www/templates/admin/permissions/index.phtml:10
|
||||
msgid "Permission"
|
||||
msgstr ""
|
||||
|
@ -641,7 +641,7 @@ msgstr ""
|
|||
msgid "Remote Relay"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Stations/Reports/SoundExchangeController.php:173
|
||||
#: /var/azuracast/www/src/Controller/Stations/Reports/SoundExchangeController.php:174
|
||||
msgid "SoundExchange Report"
|
||||
msgstr ""
|
||||
|
||||
|
@ -717,43 +717,30 @@ msgstr ""
|
|||
#: /var/azuracast/www/templates/stations/profile/index.phtml:69
|
||||
#: /var/azuracast/www/templates/stations/playlists/index.phtml:32
|
||||
#: /var/azuracast/www/templates/stations/playlists/index.phtml:45
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:38
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:51
|
||||
msgid "Playlist"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:80
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:98
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:92
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:110
|
||||
#: /var/azuracast/www/config/forms/song.php:33
|
||||
#: /var/azuracast/www/config/forms/media.php:21
|
||||
#: /var/azuracast/www/templates/stations/reports/timeline.phtml:35
|
||||
#: /var/azuracast/www/templates/stations/reports/requests.phtml:26
|
||||
#: /var/azuracast/www/templates/stations/queue/index.phtml:26
|
||||
#: /var/azuracast/www/templates/frontend/public/player_component.js.phtml:7
|
||||
#: /var/azuracast/www/templates/frontend/public/index.js.phtml:8
|
||||
#: /var/azuracast/www/templates/frontend/public/index.js.phtml:28
|
||||
msgid "Song Title"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:81
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:99
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:93
|
||||
#: /var/azuracast/www/src/Controller/Stations/ProfileController.php:111
|
||||
#: /var/azuracast/www/config/forms/media.php:28
|
||||
#: /var/azuracast/www/templates/frontend/public/player_component.js.phtml:8
|
||||
#: /var/azuracast/www/templates/frontend/public/index.js.phtml:9
|
||||
#: /var/azuracast/www/templates/frontend/public/index.js.phtml:29
|
||||
msgid "Song Artist"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Frontend/PublicController.php:37
|
||||
#: /var/azuracast/www/src/Controller/Frontend/PublicController.php:99
|
||||
msgid "Station not found!"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Frontend/PublicController.php:103
|
||||
msgid "Live streaming is not enabled on this station."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Frontend/PublicController.php:109
|
||||
msgid "This station does not support live streaming."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/src/Controller/Frontend/AccountController.php:73
|
||||
msgid "Too many login attempts"
|
||||
msgstr ""
|
||||
|
@ -844,14 +831,14 @@ msgid "Public Page"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/menus/station.php:46
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:368
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:370
|
||||
#: /var/azuracast/www/templates/stations/files/index.phtml:1
|
||||
#: /var/azuracast/www/templates/stations/files/index.phtml:24
|
||||
msgid "Music Files"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/menus/station.php:53
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:369
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:371
|
||||
#: /var/azuracast/www/templates/stations/files/index.phtml:109
|
||||
#: /var/azuracast/www/templates/stations/playlists/index.phtml:4
|
||||
#: /var/azuracast/www/templates/stations/playlists/index.phtml:16
|
||||
|
@ -1024,31 +1011,37 @@ msgstr ""
|
|||
msgid "Any time a live streamer/DJ disconnects from the stream"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:16
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:16
|
||||
msgid "Mount Point Name/URL"
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:14
|
||||
msgid "Mount Point URL"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:17
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:17
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:15
|
||||
msgid "This name should always begin with a slash (/), and must be a valid URL, such as /autodj.mp3"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:25
|
||||
msgid "Set as Default Mount Point"
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:23
|
||||
#: /var/azuracast/www/config/forms/remote.php:13
|
||||
#: /var/azuracast/www/templates/stations/streamers/index.phtml:27
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:26
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:37
|
||||
msgid "If this mount is the default, it will be played on the radio preview and the public radio page in this system."
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:24
|
||||
msgid "The display name assigned to this mount point when viewing it on administrative or public pages. Leave blank to automatically generate one."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:27
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:56
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:66
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:38
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:58
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:79
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:31
|
||||
#: /var/azuracast/www/config/forms/remote.php:21
|
||||
msgid "Show on Public Pages"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:32
|
||||
msgid "Enable to allow listeners to select this mount point on this station's public pages."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:33
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:44
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:64
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:75
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:56
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:68
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:81
|
||||
|
@ -1070,17 +1063,16 @@ msgstr ""
|
|||
#: /var/azuracast/www/config/forms/station.php:370
|
||||
#: /var/azuracast/www/config/forms/station.php:400
|
||||
#: /var/azuracast/www/config/forms/streamer.php:48
|
||||
#: /var/azuracast/www/config/forms/remote.php:53
|
||||
#: /var/azuracast/www/config/forms/remote.php:134
|
||||
#: /var/azuracast/www/config/forms/remote.php:23
|
||||
#: /var/azuracast/www/config/forms/remote.php:72
|
||||
#: /var/azuracast/www/config/forms/remote.php:153
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:28
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:56
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:67
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:39
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:59
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:80
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:34
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:45
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:65
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:76
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:55
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:67
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:80
|
||||
|
@ -1102,93 +1094,74 @@ msgstr ""
|
|||
#: /var/azuracast/www/config/forms/station.php:371
|
||||
#: /var/azuracast/www/config/forms/station.php:401
|
||||
#: /var/azuracast/www/config/forms/streamer.php:49
|
||||
#: /var/azuracast/www/config/forms/remote.php:54
|
||||
#: /var/azuracast/www/config/forms/remote.php:134
|
||||
#: /var/azuracast/www/config/forms/remote.php:24
|
||||
#: /var/azuracast/www/config/forms/remote.php:73
|
||||
#: /var/azuracast/www/config/forms/remote.php:154
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:36
|
||||
msgid "Fallback Mount"
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:42
|
||||
msgid "Set as Default Mount Point"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:37
|
||||
msgid "If this mount point is not playing audio, listeners will automatically be redirected to this mount point. The default is /error.mp3, a repeating error message."
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:43
|
||||
msgid "If this mount is the default, it will be played on the radio preview and the public radio page in this system."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:45
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:47
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:53
|
||||
msgid "Relay Stream URL"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:46
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:48
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:54
|
||||
msgid "Enter the full URL of another stream to relay its broadcast through this mount point."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:54
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:56
|
||||
#: /var/azuracast/www/config/forms/remote.php:132
|
||||
msgid "Advertise to YP Directories (Public Station)"
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:62
|
||||
#: /var/azuracast/www/config/forms/remote.php:151
|
||||
msgid "Publish to \"Yellow Pages\" Directories"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:55
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:57
|
||||
#: /var/azuracast/www/config/forms/remote.php:133
|
||||
msgid "Set to \"yes\" to advertise this stream on the YP public radio directories."
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:63
|
||||
#: /var/azuracast/www/config/forms/remote.php:152
|
||||
msgid "Enable to advertise this mount point on \"Yellow Pages\" public radio directories."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:64
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:77
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:73
|
||||
msgid "Enable AutoDJ"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:65
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:74
|
||||
msgid "If enabled, the AutoDJ will automatically play music to this mount point."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:75
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:89
|
||||
#: /var/azuracast/www/config/forms/remote.php:63
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:84
|
||||
#: /var/azuracast/www/config/forms/remote.php:82
|
||||
msgid "Configure AutoDJ Broadcasting"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:82
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:96
|
||||
#: /var/azuracast/www/config/forms/remote.php:69
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:91
|
||||
#: /var/azuracast/www/config/forms/remote.php:88
|
||||
msgid "AutoDJ Format"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:96
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:108
|
||||
#: /var/azuracast/www/config/forms/remote.php:82
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:99
|
||||
#: /var/azuracast/www/config/forms/remote.php:101
|
||||
msgid "AutoDJ Bitrate (kbps)"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:116
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:127
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:119
|
||||
msgid "Advanced Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:122
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:133
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:125
|
||||
msgid "Custom Stream URL"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:124
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:135
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:127
|
||||
msgid "You can set a custom URL for this stream that AzuraCast will use when referring to it. Leave empty to use the default value."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:131
|
||||
msgid "Custom Frontend Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:133
|
||||
msgid "You can include any special mount point settings here, in either JSON { key: 'value' } format or XML <key>value</key>"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:147
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:149
|
||||
#: /var/azuracast/www/config/forms/mount/generic.php:141
|
||||
#: /var/azuracast/www/config/forms/custom_field.php:27
|
||||
#: /var/azuracast/www/config/forms/playlist.php:367
|
||||
#: /var/azuracast/www/config/forms/api_key.php:20
|
||||
|
@ -1206,32 +1179,40 @@ msgstr ""
|
|||
#: /var/azuracast/www/config/forms/webhook/discord.php:125
|
||||
#: /var/azuracast/www/config/forms/station.php:441
|
||||
#: /var/azuracast/www/config/forms/streamer.php:58
|
||||
#: /var/azuracast/www/config/forms/remote.php:149
|
||||
#: /var/azuracast/www/config/forms/remote.php:169
|
||||
#: /var/azuracast/www/config/forms/song.php:47
|
||||
#: /var/azuracast/www/config/forms/media.php:139
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:24
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:9
|
||||
msgid "Fallback Mount"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:10
|
||||
msgid "If this mount point is not playing audio, listeners will automatically be redirected to this mount point. The default is /error.mp3, a repeating error message."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:26
|
||||
msgid "Custom Frontend Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/icecast.php:28
|
||||
msgid "You can include any special mount point settings here, in either JSON { key: 'value' } format or XML <key>value</key>"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:11
|
||||
msgid "Stream path cannot include reserved keywords: %s"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:36
|
||||
msgid "Is Default Mount"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:67
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:21
|
||||
msgid "YP Directory Authorization Hash"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:68
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:22
|
||||
msgid "If your stream is set to advertise to YP directories above, you must specify an authorization hash. You can manage authhashes <a href=\"%s\" target=\"_blank\">on the SHOUTcast web site</a>."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/mount/shoutcast2.php:78
|
||||
msgid "If set to \"Yes\", the AutoDJ will automatically play music to this mount point."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/station_clone.php:9
|
||||
msgid "New Station Details"
|
||||
msgstr ""
|
||||
|
@ -1891,7 +1872,7 @@ msgstr ""
|
|||
#: /var/azuracast/www/config/forms/station.php:82
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:169
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:185
|
||||
#: /var/azuracast/www/templates/stations/mounts/index.phtml:46
|
||||
#: /var/azuracast/www/templates/stations/mounts/index.phtml:48
|
||||
#: /var/azuracast/www/templates/stations/remotes/index.phtml:43
|
||||
#: /var/azuracast/www/templates/stations/playlists/index.phtml:91
|
||||
#: /var/azuracast/www/templates/stations/webhooks/index.phtml:40
|
||||
|
@ -1902,7 +1883,7 @@ msgstr ""
|
|||
#: /var/azuracast/www/config/forms/automation.php:15
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:162
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:182
|
||||
#: /var/azuracast/www/templates/stations/mounts/index.phtml:44
|
||||
#: /var/azuracast/www/templates/stations/mounts/index.phtml:46
|
||||
#: /var/azuracast/www/templates/stations/remotes/index.phtml:41
|
||||
#: /var/azuracast/www/templates/frontend/profile/index.phtml:67
|
||||
msgid "Enabled"
|
||||
|
@ -2267,7 +2248,7 @@ msgstr ""
|
|||
#: /var/azuracast/www/templates/stations/files/index.phtml:100
|
||||
#: /var/azuracast/www/templates/stations/playlists/reorder.phtml:23
|
||||
#: /var/azuracast/www/templates/stations/reports/performance.phtml:28
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:76
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:89
|
||||
#: /var/azuracast/www/templates/frontend/public/dj.js.phtml:27
|
||||
#: /var/azuracast/www/templates/frontend/public/embedrequests.phtml:20
|
||||
msgid "Title"
|
||||
|
@ -2632,63 +2613,71 @@ msgstr ""
|
|||
msgid "Enable to allow this account to log in and stream."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:13
|
||||
#: /var/azuracast/www/config/forms/remote.php:14
|
||||
msgid "The display name assigned to this relay when viewing it on administrative or public pages. Leave blank to automatically generate one."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:22
|
||||
msgid "Enable to allow listeners to select this relay on this station's public pages."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:32
|
||||
msgid "Remote Station Type"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:26
|
||||
#: /var/azuracast/www/config/forms/remote.php:45
|
||||
msgid "Remote Station Listening URL"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:27
|
||||
#: /var/azuracast/www/config/forms/remote.php:46
|
||||
msgid "Example: if the remote radio URL is %s, enter <code>%s</code>."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:39
|
||||
#: /var/azuracast/www/config/forms/remote.php:58
|
||||
msgid "Remote Station Listening Mountpoint/SID"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:40
|
||||
#: /var/azuracast/www/config/forms/remote.php:59
|
||||
msgid "Specify a mountpoint (i.e. <code>%s</code>) or a Shoutcast SID (i.e. <code>%s</code>) to specify a specific stream to use for statistics or broadcasting."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:51
|
||||
#: /var/azuracast/www/config/forms/remote.php:70
|
||||
msgid "Broadcast AutoDJ to Remote Station"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:52
|
||||
msgid "If set to \"Yes\", the AutoDJ on this installation will automatically play music to this mount point."
|
||||
#: /var/azuracast/www/config/forms/remote.php:71
|
||||
msgid "If enabled, the AutoDJ on this installation will automatically play music to this mount point."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:100
|
||||
#: /var/azuracast/www/config/forms/remote.php:119
|
||||
msgid "Remote Station Source Port"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:101
|
||||
#: /var/azuracast/www/config/forms/remote.php:120
|
||||
msgid "If the port you broadcast to is different from the one you listed in the URL above, specify the source port here."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:108
|
||||
#: /var/azuracast/www/config/forms/remote.php:127
|
||||
msgid "Remote Station Source Mountpoint/SID"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:109
|
||||
#: /var/azuracast/www/config/forms/remote.php:128
|
||||
msgid "If the mountpoint (i.e. <code>/radio.mp3</code>) or Shoutcast SID (i.e. <code>2</code>) you broadcast to is different from the one listed above, specify the source mount point here."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:116
|
||||
#: /var/azuracast/www/config/forms/remote.php:135
|
||||
msgid "Remote Station Source Username"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:117
|
||||
#: /var/azuracast/www/config/forms/remote.php:136
|
||||
msgid "If you are broadcasting using AutoDJ, enter the source username here. This may be blank."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:124
|
||||
#: /var/azuracast/www/config/forms/remote.php:143
|
||||
msgid "Remote Station Source Password"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/config/forms/remote.php:125
|
||||
#: /var/azuracast/www/config/forms/remote.php:144
|
||||
msgid "If you are broadcasting using AutoDJ, enter the source password here."
|
||||
msgstr ""
|
||||
|
||||
|
@ -2894,7 +2883,7 @@ msgstr ""
|
|||
#: /var/azuracast/www/templates/stations/reports/duplicates.phtml:24
|
||||
#: /var/azuracast/www/templates/stations/reports/requests.phtml:28
|
||||
#: /var/azuracast/www/templates/stations/queue/index.phtml:28
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:79
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:92
|
||||
#: /var/azuracast/www/templates/frontend/public/embedrequests.phtml:23
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
@ -3023,10 +3012,6 @@ msgstr ""
|
|||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/streamers/index.phtml:27
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/streamers/index.phtml:28
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
@ -3117,9 +3102,9 @@ msgstr ""
|
|||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:167
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:205
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:306
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:313
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:321
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:308
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:315
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:323
|
||||
#: /var/azuracast/www/templates/frontend/api_keys/new_key.phtml:20
|
||||
#: /var/azuracast/www/templates/frontend/profile/enable_two_factor.phtml:39
|
||||
msgid "Copy to Clipboard"
|
||||
|
@ -3159,74 +3144,74 @@ msgid "Local Streams"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:233
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:254
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:255
|
||||
#: /var/azuracast/www/templates/frontend/index/index.phtml:81
|
||||
#: /var/azuracast/www/templates/frontend/public/player_component.phtml:32
|
||||
msgid "Play/Pause"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:269
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:273
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:271
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:275
|
||||
msgid "Download %s"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:284
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:286
|
||||
msgid "Icecast (Broadcasting Service)"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:286
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:288
|
||||
msgid "SHOUTcast DNAS 2 (Broadcasting Service)"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:289
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:362
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:291
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:364
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:299
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:301
|
||||
msgid "Administration URL"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:303
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:305
|
||||
msgid "Administrator Password"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:310
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:312
|
||||
msgid "Source Password"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:318
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:320
|
||||
msgid "Relay Password"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:332
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:377
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:334
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:379
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:336
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:381
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:338
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:383
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:340
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:385
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:342
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:387
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:350
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:352
|
||||
msgid "AutoDJ Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:351
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:353
|
||||
msgid "AutoDJ has been disabled for this station. No music will automatically be played when a source is not live."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:359
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:361
|
||||
msgid "Liquidsoap (AutoDJ Service)"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:364
|
||||
#: /var/azuracast/www/templates/stations/profile/index.phtml:366
|
||||
msgid "LiquidSoap is currently shuffling from <b>%d uploaded songs</b> in <b>%d playlists</b>."
|
||||
msgstr ""
|
||||
|
||||
|
@ -3275,7 +3260,7 @@ msgstr ""
|
|||
msgid "Delete mount point \"%s\"?"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/stations/mounts/index.phtml:39
|
||||
#: /var/azuracast/www/templates/stations/mounts/index.phtml:40
|
||||
msgid "Default Mount"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3318,7 +3303,7 @@ msgstr ""
|
|||
#: /var/azuracast/www/templates/stations/files/index.phtml:101
|
||||
#: /var/azuracast/www/templates/stations/playlists/reorder.phtml:24
|
||||
#: /var/azuracast/www/templates/stations/reports/performance.phtml:29
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:77
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:90
|
||||
#: /var/azuracast/www/templates/frontend/public/dj.js.phtml:28
|
||||
#: /var/azuracast/www/templates/frontend/public/embedrequests.phtml:21
|
||||
msgid "Artist"
|
||||
|
@ -3326,7 +3311,7 @@ msgstr ""
|
|||
|
||||
#: /var/azuracast/www/templates/stations/files/index.phtml:102
|
||||
#: /var/azuracast/www/templates/stations/playlists/reorder.phtml:25
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:78
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:91
|
||||
#: /var/azuracast/www/templates/frontend/public/embedrequests.phtml:22
|
||||
msgid "Album"
|
||||
msgstr ""
|
||||
|
@ -3876,16 +3861,16 @@ msgstr ""
|
|||
msgid "To verify that the code was set up correctly, enter the 6-digit code the app shows you."
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:30
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:48
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:43
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:61
|
||||
msgid "Song History"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:34
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:47
|
||||
msgid "Request Song"
|
||||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:67
|
||||
#: /var/azuracast/www/templates/frontend/public/index.phtml:80
|
||||
msgid "Request a Song"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3902,7 +3887,7 @@ msgid "Full Volume"
|
|||
msgstr ""
|
||||
|
||||
#: /var/azuracast/www/templates/frontend/public/embedrequests.js.phtml:13
|
||||
#: /var/azuracast/www/templates/frontend/public/index.js.phtml:59
|
||||
#: /var/azuracast/www/templates/frontend/public/index.js.phtml:80
|
||||
msgid "Request"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -34,14 +34,53 @@ class PublicController
|
|||
$station = $request->getStation();
|
||||
|
||||
if (!$station->getEnablePublicPage()) {
|
||||
throw new \Azura\Exception(__('Station not found!'));
|
||||
throw new \App\Exception\StationNotFound;
|
||||
}
|
||||
|
||||
$frontend_adapter = $request->getStationFrontend();
|
||||
$frontend = $request->getStationFrontend();
|
||||
|
||||
// List all publicly available streams.
|
||||
$current_stream = null;
|
||||
$streams = [];
|
||||
foreach ($station->getMounts() as $mount) {
|
||||
/** @var Entity\StationMount $mount */
|
||||
if ($mount->isVisibleOnPublicPages()) {
|
||||
$stream = [
|
||||
'name' => $mount->getDisplayName(),
|
||||
'url' => (string)$frontend->getUrlForMount($station, $mount),
|
||||
];
|
||||
|
||||
$streams[] = $stream;
|
||||
if ($mount->getIsDefault()) {
|
||||
$current_stream = $stream;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$remotes = $request->getStationRemotes();
|
||||
foreach($remotes as $ra_proxy) {
|
||||
$remote = $ra_proxy->getRemote();
|
||||
|
||||
if ($remote->isVisibleOnPublicPages()) {
|
||||
$streams[] = [
|
||||
'name' => $remote->getDisplayName(),
|
||||
'url' => (string)$ra_proxy->getAdapter()->getPublicUrl($remote)
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (0 === count($streams)) {
|
||||
throw new \App\Exception\StationUnsupported;
|
||||
}
|
||||
|
||||
if (null === $current_stream) {
|
||||
$current_stream = reset($streams);
|
||||
}
|
||||
|
||||
return $request->getView()->renderToResponse($response, $template_name, $template_vars + [
|
||||
'station' => $station,
|
||||
'stream_url' => $frontend_adapter->getStreamUrl($station),
|
||||
'streams' => $streams,
|
||||
'current_stream' => $current_stream,
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -96,17 +135,17 @@ class PublicController
|
|||
$station = $request->getStation();
|
||||
|
||||
if (!$station->getEnablePublicPage()) {
|
||||
throw new \Azura\Exception(__('Station not found!'));
|
||||
throw new \App\Exception\StationNotFound;
|
||||
}
|
||||
|
||||
if (!$station->getEnableStreamers()) {
|
||||
throw new \Azura\Exception(__('Live streaming is not enabled on this station.'));
|
||||
throw new \App\Exception\StationUnsupported;
|
||||
}
|
||||
|
||||
$backend = $request->getStationBackend();
|
||||
|
||||
if (!($backend instanceof Liquidsoap)) {
|
||||
throw new \Azura\Exception(__('This station does not support live streaming.'));
|
||||
throw new \App\Exception\StationUnsupported;
|
||||
}
|
||||
|
||||
$wss_url = (string)$backend->getWebStreamingUrl($station, $request->getRouter()->getBaseUrl());
|
||||
|
|
|
@ -49,12 +49,24 @@ class ProfileController
|
|||
$remotes = $request->getStationRemotes();
|
||||
|
||||
$stream_urls = [
|
||||
'local' => $frontend->getStreamUrls($station),
|
||||
'local' => [],
|
||||
'remote' => [],
|
||||
];
|
||||
|
||||
foreach ($station->getMounts() as $mount) {
|
||||
$stream_urls['local'][] = [
|
||||
$mount->getDisplayName(),
|
||||
(string)$frontend->getUrlForMount($station, $mount),
|
||||
];
|
||||
}
|
||||
|
||||
foreach($remotes as $ra_proxy) {
|
||||
$stream_urls['remote'][] = $ra_proxy->getAdapter()->getPublicUrl($ra_proxy->getRemote());
|
||||
$remote = $ra_proxy->getRemote();
|
||||
|
||||
$stream_urls['remote'][] = [
|
||||
$remote->getDisplayName(),
|
||||
(string)$ra_proxy->getAdapter()->getPublicUrl($remote)
|
||||
];
|
||||
}
|
||||
|
||||
// Statistics about backend playback.
|
||||
|
|
33
src/Entity/Migration/Version20190324040155.php
Normal file
33
src/Entity/Migration/Version20190324040155.php
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
namespace App\Entity\Migration;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Auto-generated Migration: Please modify to your needs!
|
||||
*/
|
||||
final class Version20190324040155 extends AbstractMigration
|
||||
{
|
||||
public function up(Schema $schema) : void
|
||||
{
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE station_remotes ADD display_name VARCHAR(255) DEFAULT NULL, ADD is_visible_on_public_pages TINYINT(1) NOT NULL');
|
||||
$this->addSql('ALTER TABLE station_mounts ADD display_name VARCHAR(255) DEFAULT NULL, ADD is_visible_on_public_pages TINYINT(1) NOT NULL');
|
||||
|
||||
$this->addSql('UPDATE station_remotes SET is_visible_on_public_pages=1');
|
||||
$this->addSql('UPDATE station_mounts SET is_visible_on_public_pages=1');
|
||||
}
|
||||
|
||||
public function down(Schema $schema) : void
|
||||
{
|
||||
// this down() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||
|
||||
$this->addSql('ALTER TABLE station_mounts DROP display_name, DROP is_visible_on_public_pages');
|
||||
$this->addSql('ALTER TABLE station_remotes DROP display_name, DROP is_visible_on_public_pages');
|
||||
}
|
||||
}
|
|
@ -45,6 +45,18 @@ class StationMount implements StationMountInterface
|
|||
*/
|
||||
protected $name = '';
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="display_name", type="string", length=255, nullable=true)
|
||||
* @var string|null
|
||||
*/
|
||||
protected $display_name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="is_visible_on_public_pages", type="boolean")
|
||||
* @var bool
|
||||
*/
|
||||
protected $is_visible_on_public_pages = true;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="is_default", type="boolean")
|
||||
* @var bool
|
||||
|
@ -143,6 +155,50 @@ class StationMount implements StationMountInterface
|
|||
$this->name = $this->_truncateString('/' . ltrim($new_name, '/'), 100);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
if (!empty($this->display_name)) {
|
||||
return $this->display_name;
|
||||
}
|
||||
|
||||
if ($this->enable_autodj) {
|
||||
return $this->autodj_bitrate.'kbps '.strtoupper($this->autodj_format);
|
||||
}
|
||||
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $display_name
|
||||
*/
|
||||
public function setDisplayName(?string $display_name): void
|
||||
{
|
||||
$this->display_name = $this->_truncateString($display_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isVisibleOnPublicPages(): bool
|
||||
{
|
||||
if ($this->is_default) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return $this->is_visible_on_public_pages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $is_visible_on_public_pages
|
||||
*/
|
||||
public function setIsVisibleOnPublicPages(bool $is_visible_on_public_pages): void
|
||||
{
|
||||
$this->is_visible_on_public_pages = $is_visible_on_public_pages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
|
|
|
@ -38,6 +38,18 @@ class StationRemote implements StationMountInterface
|
|||
*/
|
||||
protected $station;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="display_name", type="string", length=255, nullable=true)
|
||||
* @var string|null
|
||||
*/
|
||||
protected $display_name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="is_visible_on_public_pages", type="boolean")
|
||||
* @var bool
|
||||
*/
|
||||
protected $is_visible_on_public_pages = true;
|
||||
|
||||
/**
|
||||
* @ORM\Column(name="type", type="string", length=50)
|
||||
* @var string
|
||||
|
@ -131,6 +143,46 @@ class StationRemote implements StationMountInterface
|
|||
return $this->station;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDisplayName(): string
|
||||
{
|
||||
if (!empty($this->display_name)) {
|
||||
return $this->display_name;
|
||||
}
|
||||
|
||||
if ($this->enable_autodj) {
|
||||
return $this->autodj_bitrate.'kbps '.strtoupper($this->autodj_format);
|
||||
}
|
||||
|
||||
return \App\Utilities::truncateUrl($this->url);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $display_name
|
||||
*/
|
||||
public function setDisplayName(?string $display_name): void
|
||||
{
|
||||
$this->display_name = $this->_truncateString($display_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function isVisibleOnPublicPages(): bool
|
||||
{
|
||||
return $this->is_visible_on_public_pages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $is_visible_on_public_pages
|
||||
*/
|
||||
public function setIsVisibleOnPublicPages(bool $is_visible_on_public_pages): void
|
||||
{
|
||||
$this->is_visible_on_public_pages = $is_visible_on_public_pages;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
|
18
src/Exception/StationUnsupported.php
Normal file
18
src/Exception/StationUnsupported.php
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
namespace App\Exception;
|
||||
|
||||
use Monolog\Logger;
|
||||
|
||||
class StationUnsupported extends \Azura\Exception
|
||||
{
|
||||
protected $logger_level = Logger::INFO;
|
||||
|
||||
public function __construct(string $message = '', int $code = 0, \Throwable $previous = null)
|
||||
{
|
||||
if (empty($message)) {
|
||||
$message = 'This feature is not currently supported on this station.';
|
||||
}
|
||||
|
||||
parent::__construct($message, $code, $previous);
|
||||
}
|
||||
}
|
|
@ -16,7 +16,7 @@ $assets
|
|||
|
||||
<div class="stations nowplaying">
|
||||
<?=$this->fetch('frontend/public/player_component', [
|
||||
'stream_url' => $stream_url,
|
||||
'current_stream' => $current_stream,
|
||||
'autoplay' => $autoplay
|
||||
]) ?>
|
||||
</div>
|
||||
|
|
|
@ -1,12 +1,32 @@
|
|||
$(function() {
|
||||
|
||||
// Handle multi-stream selection
|
||||
$('#stream-selector a.dropdown-item').on('click', function(e) {
|
||||
var stream_url = $(this).data('url');
|
||||
var stream_name = $(this).text();
|
||||
|
||||
var main_play_btn = $('#main-play-btn');
|
||||
var is_playing = main_play_btn.hasClass('playing');
|
||||
|
||||
stopAllPlayers();
|
||||
|
||||
$('#stream-selector button').text(stream_name);
|
||||
main_play_btn.attr('data-url', stream_url).data('url', stream_url);
|
||||
|
||||
if (is_playing) {
|
||||
handlePlayClick(stream_url);
|
||||
}
|
||||
});
|
||||
|
||||
// Song history Vue component
|
||||
songHistory = new Vue({
|
||||
el: '#station-history',
|
||||
data: {
|
||||
history: [
|
||||
{
|
||||
song: {
|
||||
title: '<?= __('Song Title') ?>',
|
||||
artist: '<?= __('Song Artist') ?>'
|
||||
title: '<?=__('Song Title') ?>',
|
||||
artist: '<?=__('Song Artist') ?>'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -39,6 +59,7 @@ $(function() {
|
|||
buttons: ['close']
|
||||
});
|
||||
|
||||
// Song request modal dialog component
|
||||
var request_dialog = $('#modal-request');
|
||||
|
||||
request_dialog.on('show.bs.modal', function (event) {
|
||||
|
|
|
@ -18,10 +18,23 @@ $assets
|
|||
<div class="public-page">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php if (count($streams) > 1): ?>
|
||||
<div id="stream-selector" class="dropdown float-right">
|
||||
<button class="btn btn-sm btn-outline-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<?=$this->e($current_stream['name']) ?>
|
||||
</button>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<?php foreach($streams as $stream_row): ?>
|
||||
<a class="dropdown-item" href="javascript:;" data-url="<?=$this->e($stream_row['url']) ?>"><?=$this->e($stream_row['name']) ?></a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h2 class="card-title"><?=$this->e($station->getName()) ?></h2>
|
||||
|
||||
<div class="stations nowplaying">
|
||||
<?=$this->fetch('frontend/public/player_component', ['stream_url' => $stream_url, 'autoplay' => $autoplay]) ?>
|
||||
<?=$this->fetch('frontend/public/player_component', ['current_stream' => $current_stream, 'autoplay' => $autoplay]) ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ $assets->addInlineJs($this->fetch('frontend/public/player_component.js'), 95);
|
|||
|
||||
<div class="d-flex flex-row align-items-center mt-2 pt-1 border-top border-black-divider">
|
||||
<div class="">
|
||||
<a class="btn-audio" role="button" title="<?=__('Play/Pause') ?>" href="#" data-url="<?=$this->e($stream_url) ?>" <?php if ($autoplay): ?>data-autoplay="true"<?php endif; ?>>
|
||||
<a id="main-play-btn" class="btn-audio" role="button" title="<?=__('Play/Pause') ?>" href="#" data-url="<?=$this->e($current_stream['url']) ?>" <?php if ($autoplay): ?>data-autoplay="true"<?php endif; ?>>
|
||||
<i class="material-icons lg" style="line-height: 1">play_circle_filled</i>
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
@ -34,10 +34,12 @@
|
|||
<a class="btn btn-sm btn-danger" data-confirm-title="<?=$this->e(__('Delete mount point "%s"?', $row->getName())) ?>" href="<?=$router->named('stations:mounts:delete', ['station' => $station->getId(), 'id' => $row->getId(), 'csrf' => $csrf]) ?>"><?=__('Delete') ?></a>
|
||||
</td>
|
||||
<td>
|
||||
<big><a href="<?=$this->e($frontend->getUrlForMount($station, $row)) ?>" target="_blank"><?=$this->e($row->getName()) ?></a></big>
|
||||
<?php if ($row->getIsDefault()): ?>
|
||||
<br><span class="label label-success"><?=__('Default Mount') ?></span>
|
||||
<?php endif; ?>
|
||||
<h5 class="m-0"><a href="<?=$this->e($frontend->getUrlForMount($station, $row)) ?>" target="_blank"><?=$this->e($row->getDisplayName()) ?></a></h5>
|
||||
<div>
|
||||
<?php if ($row->getIsDefault()): ?>
|
||||
<span class="badge badge-success"><?=__('Default Mount') ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($row->getEnableAutodj()): ?>
|
||||
|
|
|
@ -227,7 +227,7 @@ $user = $request->getUser();
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($stream_urls['local'] as $stream_url): ?>
|
||||
<?php foreach($stream_urls['local'] as [$stream_name, $stream_url]): ?>
|
||||
<tr class="align-middle">
|
||||
<td>
|
||||
<a class="btn-audio" href="#" data-url="<?=$this->e((string)$stream_url) ?>" title="<?=__('Play/Pause') ?>">
|
||||
|
@ -235,7 +235,8 @@ $user = $request->getUser();
|
|||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?=$this->e((string)$stream_url) ?>"><?=$this->e((string)$stream_url) ?></a>
|
||||
<h6 class="mb-0"><?=$this->e($stream_name) ?></h6>
|
||||
<a href="<?=$this->e($stream_url) ?>"><?=$this->truncateUrl($stream_url) ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
@ -248,7 +249,7 @@ $user = $request->getUser();
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach($stream_urls['remote'] as $stream_url): ?>
|
||||
<?php foreach($stream_urls['remote'] as [$stream_name, $stream_url]): ?>
|
||||
<tr class="align-middle">
|
||||
<td>
|
||||
<a class="btn-audio" href="#" data-url="<?=$this->e((string)$stream_url) ?>" title="<?=__('Play/Pause') ?>">
|
||||
|
@ -256,7 +257,8 @@ $user = $request->getUser();
|
|||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="<?=$this->e((string)$stream_url) ?>"><?=$this->e((string)$stream_url) ?></a>
|
||||
<h6 class="mb-0"><?=$this->e($stream_name) ?></h6>
|
||||
<a href="<?=$this->e($stream_url) ?>"><?=$this->truncateUrl($stream_url) ?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<a class="btn btn-sm btn-danger" data-confirm-title="<?=$this->e(__('Delete remote relay "%s"?', $row->getUrl())) ?>" href="<?=$router->fromHere('stations:remotes:delete', ['id' => $row->getId(), 'csrf' => $csrf]) ?>"><?=__('Delete') ?></a>
|
||||
</td>
|
||||
<td>
|
||||
<big><a href="<?=$this->e($row->getUrl()) ?>" target="_blank"><?=$this->e($row->getUrl()) ?></a> # <?=$row->getMount() ?></big>
|
||||
<h5 class="m-0"><a href="<?=$this->e($row->getUrl()) ?>" target="_blank"><?=$this->e($row->getDisplayName()) ?></a></h5>
|
||||
</td>
|
||||
<td>
|
||||
<?php if ($row->getEnableAutodj()): ?>
|
||||
|
|
Loading…
Reference in New Issue
Block a user