our
$VERSION
=
'0.02'
;
__PACKAGE__->table(
'recording_schedule'
);
__PACKAGE__->columns(
Primary
=>
qw/oid/
);
__PACKAGE__->columns(
All
=>
qw/
oid
programme_oid
capture_source_oid
filename
status
recording_type
recording_group
manual_start_time
manual_end_time
manual_channel_oid
quality_level
pre_pad_minutes
post_pad_minutes
/
,
);
sub
parse_manual_time {
my
$self
=
shift
;
my
$time
=
shift
;
return
unless
$time
=~ /^(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)$/;
return
($1, $2, $3, $4, $5, $6);
}
sub
start_time {
my
$self
=
shift
;
my
$time
=
$self
->manual_start_time or
return
;
return
sprintf
(
"%02d:%02d"
, (
$self
->parse_manual_time(
$time
))[3,4] );
}
sub
end_time {
my
$self
=
shift
;
my
$time
=
$self
->manual_end_time or
return
;
return
sprintf
(
"%02d:%02d"
, (
$self
->parse_manual_time(
$time
))[3,4] );
}
sub
start_date {
my
$self
=
shift
;
my
$time
=
$self
->manual_start_time or
return
;
return
sprintf
(
"%04d-%02d-%02d"
, (
$self
->parse_manual_time(
$time
))[0,1,2] );
}
sub
end_date {
my
$self
=
shift
;
my
$time
=
$self
->manual_end_time or
return
;
return
sprintf
(
"%04d-%02d-%02d"
, (
$self
->parse_manual_time(
$time
))[0,1,2] );
}
__PACKAGE__->has_a(
programme_oid
=>
'GBPVR::CDBI::Programme'
);
__PACKAGE__->has_a(
capture_source_oid
=>
'GBPVR::CDBI::CaptureSource'
);
__PACKAGE__->has_a(
manual_channel_oid
=>
'GBPVR::CDBI::Channel'
);
__PACKAGE__->columns(
Stringify
=>
qw/ programme_oid /
);
sub
last_position {
my
$obj
=
shift
;
my
(
$pp
) = GBPVR::CDBI::PlaybackPosition->find_or_create( {
filename
=>
$obj
->filename } );
if
(
@_
){
$pp
->last_position(
shift
);
$pp
->update;
}
return
$pp
->last_position;
}
sub
archivetable {
my
$obj
=
shift
;
my
(
$at
) = GBPVR::CDBI::VideoArchive::ArchiveTable->search(
UniqueID
=>
$obj
->programme_oid->unique_identifier );
return
$at
;
}
sub
status_string {
my
$obj
=
shift
;
my
%mapping
= (
0
=>
'Pending'
,
2
=>
'Compeleted'
,
);
return
$mapping
{
$obj
->status };
}
1;