verify uploads and playout

check if attributes for uploaded audio match expected ranges and mark
them by colors to help finding issues with duration, channels, RMS, mode
(CBR, ABR), bitrate.

increase upload limit to 400 MB for audio
This commit is contained in:
Milan
2019-06-30 01:26:06 +02:00
parent 667d6c715f
commit 60aa3387f0
12 changed files with 485 additions and 188 deletions

View File

@@ -29,6 +29,7 @@ use work_dates();
use playout();
use user_settings();
use audio_recordings();
use audio();
binmode STDOUT, ":utf8";
@@ -93,7 +94,8 @@ if (
#process header
my $headerParams = uac::set_template_permissions( $request->{permissions}, $params );
$headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } );
template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams );
template::process( $config, 'print', template::check( $config, 'default.html' ),
$headerParams );
print q{
<link href="css/jquery-ui-timepicker.css" type="text/css" rel="stylesheet" />
<link rel="stylesheet" href="css/calendar.css" type="text/css" />
@@ -167,7 +169,7 @@ sub showCalendar {
my $start_of_day = $cal_options->{start_of_day};
my $end_of_day = $cal_options->{end_of_day};
my $params = $request->{params}->{checked};
my $params = $request->{params}->{checked};
my $permissions = $request->{permissions} || {};
unless ( $permissions->{read_series} == 1 ) {
uac::permissions_denied('read_series');
@@ -180,9 +182,11 @@ sub showCalendar {
$params->{range} = 28 unless defined $params->{range};
#get colors from user settings
print user_settings::getColorCss( $config, { user => $params->{presets}->{user} } ) if $params->{part} == 0;
print user_settings::getColorCss( $config, { user => $params->{presets}->{user} } )
if $params->{part} == 0;
$params->{loc} = localization::get( $config, { user => $params->{presets}->{user}, file => 'all,calendar' } );
$params->{loc} =
localization::get( $config, { user => $params->{presets}->{user}, file => 'all,calendar' } );
my $language = $user_settings->{language} || 'en';
$params->{language} = $language;
print localization::getJavascript( $params->{loc} ) if $params->{part} == 0;
@@ -367,7 +371,7 @@ sub showCalendar {
#get playout
delete $options->{exclude};
my $playout_dates = playout::get( $config, $options );
my $playout_dates = playout::get_scheduled( $config, $options );
$id = 0;
for my $date (@$playout_dates) {
my $format = undef;
@@ -377,7 +381,8 @@ sub showCalendar {
. ( $date->{'format_version'} || '' ) . " "
. ( $date->{'format_profile'} || '' );
$format =~ s/MPEG Audio Version 1 Layer 3/MP3/g;
$format .= ' ' . ( $date->{'format_settings'} || '' ) if defined $date->{'format_settings'};
$format .= ' ' . ( $date->{'format_settings'} || '' )
if defined $date->{'format_settings'};
$format .= '<br>';
}
@@ -386,32 +391,44 @@ sub showCalendar {
$date->{series_id} = -1;
$date->{event_id} = $id;
$date->{title} = '';
$date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>' if defined $date->{errors};
$date->{title} .= formatDuration( $date->{duration} ) . "<br>" if defined $date->{duration};
$date->{title} .= formatLoudness( "L:", $date->{rms_left} ) . ', ' if defined $date->{rms_left};
$date->{title} .= formatLoudness( "R:", $date->{rms_right} ) . '<br>' if defined $date->{rms_right};
$date->{title} .= formatBitrate( $date->{bitrate} ) . ' ' . $date->{bitrate_mode} . '<br>'
if defined $date->{bitrate};
$date->{title} .= '<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>'
$date->{title} .= '<b>errors</b>: ' . $date->{errors} . '<br>'
if defined $date->{errors};
$date->{title} .= audio::formatDuration(
$date->{duration},
$date->{event_duration},
sprintf( "duration: %.1g h", $date->{duration} / 3600 ) . "<br>"
) if defined $date->{duration};
$date->{title} .= "L:" . audio::formatLoudness( $date->{rms_left} ) . ', '
if defined $date->{rms_left};
$date->{title} .= "R:" . audio::formatLoudness( $date->{rms_right} ) . '<br>'
if defined $date->{rms_right};
$date->{title} .= audio::formatBitrate( $date->{bitrate} ) if defined $date->{bitrate};
$date->{title} .= ' ' . audio::formatBitrateMode( $date->{bitrate_mode} ) . '<br>'
if defined $date->{bitrate_mode};
$date->{title} .=
'<b>replay gain</b> ' . sprintf( "%.1f", $date->{replay_gain} ) . '<br>'
if defined $date->{replay_gain};
$date->{title} .= ( ( $date->{sampling_rate} || '0' ) / 1000 ) . ' kHz<br>'
$date->{title} .= audio::formatSamplingRate( $date->{sampling_rate} )
if defined $date->{sampling_rate};
$date->{title} .= ( $date->{channels} || '' ) . ' channels<br>' if defined $date->{channels};
$date->{title} .= audio::formatChannels( $date->{channels} ) . '<br>'
if defined $date->{channels};
$date->{title} .= int( ( $date->{'stream_size'} || '0' ) / ( 1024 * 1024 ) ) . 'MB<br>'
if defined $date->{'stream_size'};
$date->{title} .= $format if defined $format;
$date->{title} .= '<b>library</b>: ' . ( $date->{writing_library} || '' ) . '<br>'
if defined $date->{'writing_library'};
$date->{title} .= '<b>path</b>: ' . ( $date->{file} || '' ) . '<br>' if defined $date->{file};
$date->{title} .= '<b>path</b>: ' . ( $date->{file} || '' ) . '<br>'
if defined $date->{file};
$date->{title} .= '<b>updated_at</b>: ' . ( $date->{updated_at} || '' ) . '<br>'
if defined $date->{updated_at};
$date->{title} .= '<b>modified_at</b>: ' . ( $date->{modified_at} || '' ) . '<br>'
if defined $date->{modified_at};
#print STDERR Dumper($date) if $date->{file}=~/180503/;
#$date->{title}.= '<b>rms_image</b>: ' .($date->{rms_image}||'').'<br>' if defined $date->{rms_image};
#print STDERR Dumper($date) if $date->{file}=~/180503/;
#$date->{title}.= '<b>rms_image</b>: ' .($date->{rms_image}||'').'<br>' if defined $date->{rms_image};
$date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} ) if defined $date->{rms_image};
$date->{rms_image} = URI::Escape::uri_unescape( $date->{rms_image} )
if defined $date->{rms_image};
$date->{origStart} = $date->{start};
@@ -431,6 +448,7 @@ sub showCalendar {
$date = events::calc_dates( $config, $date );
if ( defined $events_by_start->{ $date->{start} } ) {
$events_by_start->{ $date->{start} }->{duration} = $date->{duration} || 0;
$events_by_start->{ $date->{start} }->{event_duration} = $date->{event_duration} || 0;
$events_by_start->{ $date->{start} }->{rms_left} = $date->{rms_left} || 0;
$events_by_start->{ $date->{start} }->{rms_right} = $date->{rms_right} || 0;
$events_by_start->{ $date->{start} }->{playout_modified_at} = $date->{modified_at};
@@ -468,7 +486,8 @@ sub showCalendar {
#separate by day (e.g. to 6 pm)
my $events_by_day = {};
for my $event (@$events) {
my $day = time::datetime_to_date( time::add_hours_to_datetime( $event->{start}, -$start_of_day ) );
my $day =
time::datetime_to_date( time::add_hours_to_datetime( $event->{start}, -$start_of_day ) );
push @{ $events_by_day->{$day} }, $event;
}
@@ -506,7 +525,9 @@ sub showCalendar {
next unless defined $event->{uploaded_at};
#print STDERR "uploadAt=$event->{uploaded_at}, playoutModified:$event->{playout_modified_at}, playoutUpdatedAt:$event->{playout_updated_at}\n";
next if ( defined $event->{playout_updated_at} ) && ( $event->{uploaded_at} lt $event->{playout_updated_at} );
next
if ( defined $event->{playout_updated_at} )
&& ( $event->{uploaded_at} lt $event->{playout_updated_at} );
#print STDERR Dumper($event);
#$event->{upload} ='pending' ;
@@ -520,7 +541,8 @@ sub showCalendar {
print qq{<div id="calendarTable"> </div>};
}
if ( $params->{part} == 1 ) {
calcCalendarTable( $config, $permissions, $params, $calendar, $events_by_day, $cal_options );
calcCalendarTable( $config, $permissions, $params, $calendar, $events_by_day,
$cal_options );
printTableHeader( $config, $permissions, $params, $cal_options );
printTableBody( $config, $permissions, $params, $cal_options );
}
@@ -542,46 +564,6 @@ sub showCalendar {
}
}
sub formatLoudness {
my $label = shift;
my $value = shift;
return '' unless defined $value;
return '' if $value == 0;
return '' if $value eq '';
#print STDERR "'$value'\n";
$value = sprintf( "%d", $value + 0.5 );
my $class = 'ok';
$class = 'warn' if $value > -18.5;
$class = 'error' if $value > -16.0;
$class = 'warn' if $value < -24.0;
$class = 'error' if $value < -27.0;
return qq{<span class="$class">$label} . $value . qq{dB</span>};
}
sub formatDuration {
my $duration = shift;
return '' unless defined $duration;
return '' if $duration eq '';
my $result = int( ( $duration + 30.5 ) % 60 ) - 30;
my $class = "ok";
$class = "warn" if abs($result) > 1;
$class = "error" if abs($result) > 2;
return sprintf( qq{<span class="%s">%ds</span>}, $class, $duration );
}
sub formatBitrate {
my $bitrate = shift;
return '' if $bitrate eq '';
if ( $bitrate >= 200 ) {
return qq{<span class="warn">$bitrate</span>};
} elsif ( $bitrate < 190 ) {
return qq{<span class="error">$bitrate</span>};
} else {
return qq{<span class="ok">$bitrate</span>};
}
}
sub debugDate {
my $date = shift;
$date->{program} = '' unless defined $date->{program};
@@ -592,7 +574,7 @@ sub debugDate {
my $da = ( $date->{start_date} || '' ) . " " . ( $date->{end_date} || '' );
my $type = "schedule:" . ( $date->{schedule} || "" ) . " grid:" . ( $date->{grid} || "" );
#print STDERR "$dt $da count:$date->{splitCount} $type $date->{program}-$date->{series_name}-$date->{title}\n";
#print STDERR "$dt $da count:$date->{splitCount} $type $date->{program}-$date->{series_name}-$date->{title}\n";
}
# break dates at start_of_day
@@ -730,9 +712,9 @@ sub showEventList {
my $events_by_day = shift;
my $language = $params->{language};
my $rerunIcon = '<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>';
my $liveIcon = '<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>';
my $draftIcon = '<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>';
my $rerunIcon = '<i class="fas fa-redo" title="$params->{loc}->{label_rerun}"></i>';
my $liveIcon = '<i class="fas fa-microphone-alt" title="$params->{loc}->{label_live}"></i>';
my $draftIcon = '<i class="fas fa-drafting-compass" title="$params->{loc}->{label_draft}"></i>';
my $archiveIcon = '<i class="fas fa-archive" title="$params->{loc}->{label_archived}"></i>';
my $out = '';
@@ -785,14 +767,23 @@ sub showEventList {
if ( $class =~ /(event|schedule)/ ) {
$class .= ' scheduled' if defined $event->{scheduled};
$class .= ' error' if defined $event->{error};
$class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) );
$class .= ' no_series'
if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) );
for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) {
$class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) );
for my $filter (
'rerun', 'archived', 'playout', 'published',
'live', 'disable_event_sync', 'draft'
)
{
$class .= ' ' . $filter
if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) );
}
$class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) );
$class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) );
$class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) );
$class .= ' preproduced'
unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) );
$class .= ' no_playout'
unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) );
$class .= ' no_rerun'
unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) );
}
$event->{start} ||= '';
@@ -874,7 +865,8 @@ sub showEventList {
);
$out .= q{<div id="event_no_series" style="display:none">};
$out .= addEventsToSeries( $series, $params )
if ( defined $permissions->{assign_series_events} ) && ( $permissions->{assign_series_events} eq '1' );
if ( defined $permissions->{assign_series_events} )
&& ( $permissions->{assign_series_events} eq '1' );
$out .= createSeries($params)
if ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' );
$out .= q{</div>};
@@ -1140,20 +1132,29 @@ sub printTableBody {
$content = $event->{start} if $day eq '0';
$event->{project_id} = $project_id unless defined $event->{project_id};
$event->{studio_id} = $studio_id unless defined $event->{studio_id};
$event->{content} = $content unless ( ( defined $event->{class} ) && ( $event->{class} eq 'time now' ) );
$event->{class} = 'event' if $day ne '0';
$event->{class} = 'grid' if ( ( defined $event->{grid} ) && ( $event->{grid} == 1 ) );
$event->{class} = 'schedule' if ( ( defined $event->{schedule} ) && ( $event->{schedule} == 1 ) );
$event->{class} = 'work' if ( ( defined $event->{work} ) && ( $event->{work} == 1 ) );
$event->{class} = 'play' if ( ( defined $event->{play} ) && ( $event->{play} == 1 ) );
$event->{content} = $content
unless ( ( defined $event->{class} ) && ( $event->{class} eq 'time now' ) );
$event->{class} = 'event' if $day ne '0';
$event->{class} = 'grid' if ( ( defined $event->{grid} ) && ( $event->{grid} == 1 ) );
$event->{class} = 'schedule'
if ( ( defined $event->{schedule} ) && ( $event->{schedule} == 1 ) );
$event->{class} = 'work' if ( ( defined $event->{work} ) && ( $event->{work} == 1 ) );
$event->{class} = 'play' if ( ( defined $event->{play} ) && ( $event->{play} == 1 ) );
if ( $event->{class} eq 'event' ) {
$event->{content} .= '<br><span class="weak">';
$event->{content} .= formatDuration( $event->{duration} ) . ' ' if defined $event->{duration};
$event->{content} .= formatLoudness( 'L', $event->{rms_left} ) . ' ' if defined $event->{rms_left};
$event->{content} .= formatLoudness( 'R', $event->{rms_right} ) if defined $event->{rms_right};
$event->{content} .=
audio::formatDuration( $event->{duration}, $event->{event_duration},
sprintf("%d min", (($event->{duration}+0.5)/60)) )
. ' '
if defined $event->{duration};
$event->{content} .= 'L' . audio::formatLoudness( $event->{rms_left} ) . ' '
if defined $event->{rms_left};
$event->{content} .=
'R' . audio::formatLoudness( $event->{rms_right} )
if defined $event->{rms_right};
#$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate};
#$event->{content} .= formatBitrate( $event->{bitrate} ) if defined $event->{bitrate};
$event->{content} .= '</span>';
}
@@ -1205,9 +1206,11 @@ sub printSeries {
if ( ( $params->{studio_id} ne '' ) && ( $params->{studio_id} ne '-1' ) ) {
$out .= q{<div id="event_no_series" style="display:none">};
$out .= addEventsToSeries( $series, $params )
if ( ( defined $permissions->{assign_series_events} ) && ( $permissions->{assign_series_events} eq '1' ) );
if ( ( defined $permissions->{assign_series_events} )
&& ( $permissions->{assign_series_events} eq '1' ) );
$out .= createSeries($params)
if ( ( defined $permissions->{create_series} ) && ( $permissions->{create_series} eq '1' ) );
if ( ( defined $permissions->{create_series} )
&& ( $permissions->{create_series} eq '1' ) );
$out .= q{</div>};
}
@@ -1283,7 +1286,14 @@ sub addSeries {
$name = $params->{loc}->{single_events} if $serie->{has_single_events} eq '1';
$title = ' - ' . $title if $title ne '';
$out .= '<option value="' . $id . '" duration="' . $duration . '">' . $name . $title . '</option>' . "\n";
$out .=
'<option value="'
. $id
. '" duration="'
. $duration . '">'
. $name
. $title
. '</option>' . "\n";
}
#print Dumper($series);
@@ -1338,7 +1348,14 @@ sub addEventsToSeries {
my $title = $serie->{title} || '';
$name = $params->{loc}->{single_events} if $serie->{has_single_events} == 1;
$title = ' - ' . $title if $title ne '';
$out .= '<option value="' . $id . '" duration="' . $duration . '">' . $name . $title . '</option>' . "\n";
$out .=
'<option value="'
. $id
. '" duration="'
. $duration . '">'
. $name
. $title
. '</option>' . "\n";
}
#print Dumper($series);
@@ -1416,16 +1433,22 @@ sub print_event {
my $class = $event->{class} || '';
my $showIcons = 0;
if ( $class =~ /(event|schedule)/ ) {
$class .= ' scheduled' if defined $event->{scheduled};
$class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) );
$class .= ' scheduled' if defined $event->{scheduled};
$class .= ' no_series' if ( ( $class eq 'event' ) && ( $event->{series_id} eq '-1' ) );
$class .= " error x$event->{error}" if defined $event->{error};
for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync', 'draft' ) {
$class .= ' ' . $filter if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) );
for my $filter ( 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync',
'draft' )
{
$class .= ' ' . $filter
if ( ( defined $event->{$filter} ) && ( $event->{$filter} eq '1' ) );
}
$class .= ' preproduced' unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) );
$class .= ' no_playout' unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) );
$class .= ' no_rerun' unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) );
$class .= ' preproduced'
unless ( ( defined $event->{'live'} ) && ( $event->{'live'} eq '1' ) );
$class .= ' no_playout'
unless ( ( defined $event->{'playout'} ) && ( $event->{'playout'} eq '1' ) );
$class .= ' no_rerun'
unless ( ( defined $event->{'rerun'} ) && ( $event->{'rerun'} eq '1' ) );
$showIcons = 1;
}
@@ -1626,8 +1649,9 @@ sub printToolbar {
# my $options=[];
for my $range (
$params->{loc}->{label_month}, $params->{loc}->{label_4_weeks}, $params->{loc}->{label_2_weeks},
$params->{loc}->{label_1_week}, $params->{loc}->{label_day}
$params->{loc}->{label_month}, $params->{loc}->{label_4_weeks},
$params->{loc}->{label_2_weeks}, $params->{loc}->{label_1_week},
$params->{loc}->{label_day}
)
{
my $value = $ranges->{$range} || '';
@@ -1657,14 +1681,17 @@ sub printToolbar {
<select id="filter" name="filter" onchange="reloadCalendar()">
};
for
my $filter ( 'no markup', 'conflicts', 'rerun', 'archived', 'playout', 'published', 'live', 'disable_event_sync',
'draft' )
for my $filter (
'no markup', 'conflicts', 'rerun', 'archived',
'playout', 'published', 'live', 'disable_event_sync',
'draft'
)
{
my $key = $filter;
$key =~ s/ /_/g;
$toolbar .= qq{<option value="$filter">} . $params->{loc}->{ 'label_' . $key } . '</option>';
$toolbar .=
qq{<option value="$filter">} . $params->{loc}->{ 'label_' . $key } . '</option>';
}
$toolbar .= q{
@@ -1680,7 +1707,8 @@ sub printToolbar {
<input type="hidden" name="list" value="1">
<input class="search" name="search" value="$params->{search}" placeholder="}
. $params->{loc}->{button_search} . qq{">
<button type="submit" name="action" value="search">} . $params->{loc}->{button_search} . qq{</button>
<button type="submit" name="action" value="search">}
. $params->{loc}->{button_search} . qq{</button>
</form>
};
@@ -1717,11 +1745,16 @@ sub getCalendar {
my $next = '';
if ( $range eq 'month' ) {
$previous =
time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )->set_day(1)->date();
$next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 )->set_day(1)->date();
time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( months => 1 )
->set_day(1)->date();
$next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( months => 1 )
->set_day(1)->date();
} else {
$previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )->subtract( days => $range )->date();
$next = time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range )->date();
$previous = time::get_datetime( $from_date, $config->{date}->{time_zone} )
->subtract( days => $range )->date();
$next =
time::get_datetime( $from_date, $config->{date}->{time_zone} )->add( days => $range )
->date();
}
my ( $year, $month, $day ) = split( /\-/, $from_date );
my $monthName = time::getMonthNamesShort($language)->[ $month - 1 ] || '';
@@ -1752,7 +1785,8 @@ sub getFromDate {
if ( $params->{range} eq '28' ) {
#get start of 4 week period
$date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd();
$date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )
->ymd();
}
if ( $params->{range} eq 'month' ) {
@@ -1775,17 +1809,19 @@ sub getTillDate {
$date = DateTime->now( time_zone => $config->{date}->{time_zone} )->date();
}
if ( $params->{range} eq '28' ) {
$date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )->ymd();
$date = time::get_datetime( $date, $config->{date}->{time_zone} )->truncate( to => 'week' )
->ymd();
}
if ( $params->{range} eq 'month' ) {
#get last day of month
return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)->add( months => 1 )
->subtract( days => 1 )->date();
return time::get_datetime( $date, $config->{date}->{time_zone} )->set_day(1)
->add( months => 1 )->subtract( days => 1 )->date();
}
#add range to date
return time::get_datetime( $date, $config->{date}->{time_zone} )->add( days => $params->{range} )->date();
return time::get_datetime( $date, $config->{date}->{time_zone} )
->add( days => $params->{range} )->date();
}
sub getSeriesEvents {
@@ -1816,8 +1852,8 @@ sub getSeriesEvents {
$request2->{params}->{checked}->{published} = 'all';
$request2->{params}->{checked}->{draft} = '1' if $params->{list} == 1;
#delete $request2->{params}->{checked}->{locations_to_exclude}
# if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) );
#delete $request2->{params}->{checked}->{locations_to_exclude}
# if ( ( $params->{studio_id} == -1 ) && ( defined $request2->{params}->{checked}->{locations_to_exclude} ) );
my $events = events::get( $config, $request2 );
@@ -1838,7 +1874,8 @@ sub getSeriesEvents {
for my $event (@$events) {
$event->{project_id} = $options->{project_id} unless defined $event->{project_id};
$event->{studio_id} = $studio_id_by_location->{ $event->{location} } unless defined $event->{studio_id};
$event->{studio_id} = $studio_id_by_location->{ $event->{location} }
unless defined $event->{studio_id};
}
return $events;
@@ -1862,8 +1899,9 @@ sub check_params {
$checked->{part} = 0;
$checked->{list} = 0;
for my $param (
'id', 'project_id', 'studio_id', 'default_studio_id', 'user_id', 'series_id',
'event_id', 'part', 'list', 'day_start'
'id', 'project_id', 'studio_id', 'default_studio_id',
'user_id', 'series_id', 'event_id', 'part',
'list', 'day_start'
)
{
if ( ( defined $params->{$param} ) && ( $params->{$param} =~ /^\d+$/ ) ) {
@@ -1871,7 +1909,8 @@ sub check_params {
}
}
$checked->{day_start} = $config->{date}->{day_starting_hour} unless defined $checked->{day_start};
$checked->{day_start} = $config->{date}->{day_starting_hour}
unless defined $checked->{day_start};
$checked->{day_start} %= 24;
if ( defined $checked->{studio_id} ) {
@@ -1916,7 +1955,11 @@ sub check_params {
$checked->{$param} = time::check_date( $params->{$param} );
}
for my $param ( 'series_name', 'title', 'excerpt', 'content', 'program', 'category', 'image', 'user_content' ) {
for my $param (
'series_name', 'title', 'excerpt', 'content',
'program', 'category', 'image', 'user_content'
)
{
if ( defined $params->{$param} ) {
#$checked->{$param}=uri_unescape();
@@ -1928,7 +1971,9 @@ sub check_params {
#actions and roles
if ( defined $params->{action} ) {
if ( $params->{action} =~ /^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ ) {
if ( $params->{action} =~
/^(add_user|remove_user|delete|save|details|show|edit_event|save_event)$/ )
{
$checked->{action} = $params->{action};
}
}
@@ -1936,3 +1981,43 @@ sub check_params {
return $checked;
}
__DATA__
sub formatLoudness {
my $label = shift;
my $value = shift;
return '' unless defined $value;
return '' if $value == 0;
return '' if $value eq '';
#print STDERR "'$value'\n";
$value = sprintf( "%d", $value + 0.5 );
my $class = 'ok';
$class = 'warn' if $value > -18.5;
$class = 'error' if $value > -16.0;
$class = 'warn' if $value < -24.0;
$class = 'error' if $value < -27.0;
return qq{<span class="$class">$label} . $value . qq{dB</span>};
}
sub formatDuration {
my $duration = shift;
return '' unless defined $duration;
return '' if $duration eq '';
my $result = int( ( $duration + 30.5 ) % 60 ) - 30;
my $class = "ok";
$class = "warn" if abs($result) > 1;
$class = "error" if abs($result) > 2;
return sprintf( qq{<span class="%s">%ds</span>}, $class, $duration );
}
sub formatBitrate {
my $bitrate = shift;
return '' if $bitrate eq '';
if ( $bitrate >= 200 ) {
return qq{<span class="warn">$bitrate</span>};
} elsif ( $bitrate < 190 ) {
return qq{<span class="error">$bitrate</span>};
} else {
return qq{<span class="ok">$bitrate</span>};
}
}