Implement Unarchive action
parent
1b2ab6cce9
commit
4f5948cba0
|
@ -58,6 +58,7 @@ Id
|
||||||
Name
|
Name
|
||||||
Query_json
|
Query_json
|
||||||
AutoArchive
|
AutoArchive
|
||||||
|
AutoUnarchive
|
||||||
AutoVideo
|
AutoVideo
|
||||||
AutoUpload
|
AutoUpload
|
||||||
AutoEmail
|
AutoEmail
|
||||||
|
@ -348,6 +349,9 @@ sub Sql {
|
||||||
if ( $self->{AutoArchive} ) {
|
if ( $self->{AutoArchive} ) {
|
||||||
push @auto_terms, 'E.Archived = 0';
|
push @auto_terms, 'E.Archived = 0';
|
||||||
}
|
}
|
||||||
|
if ( $self->{AutoUnarchive} ) {
|
||||||
|
push @auto_terms, 'E.Archived = 1';
|
||||||
|
}
|
||||||
# Don't do this, it prevents re-generation and concatenation.
|
# Don't do this, it prevents re-generation and concatenation.
|
||||||
# If the file already exists, then the video won't be re-recreated
|
# If the file already exists, then the video won't be re-recreated
|
||||||
if ( $self->{AutoVideo} ) {
|
if ( $self->{AutoVideo} ) {
|
||||||
|
|
|
@ -98,6 +98,7 @@ use constant EVENT_PATH => ($Config{ZM_DIR_EVENTS}=~m|/|)
|
||||||
;
|
;
|
||||||
|
|
||||||
logInit($filter_id?(id=>'zmfilter_'.$filter_id):());
|
logInit($filter_id?(id=>'zmfilter_'.$filter_id):());
|
||||||
|
|
||||||
sub HupHandler {
|
sub HupHandler {
|
||||||
# This idea at this time is to just exit, freeing up the memory.
|
# This idea at this time is to just exit, freeing up the memory.
|
||||||
# zmfilter.pl will be respawned by zmdc.
|
# zmfilter.pl will be respawned by zmdc.
|
||||||
|
@ -236,6 +237,7 @@ sub getFilters {
|
||||||
$sql .= ' `Background` = 1 AND';
|
$sql .= ' `Background` = 1 AND';
|
||||||
}
|
}
|
||||||
$sql .= '( `AutoArchive` = 1
|
$sql .= '( `AutoArchive` = 1
|
||||||
|
or `AutoUnarchive` = 1
|
||||||
or `AutoVideo` = 1
|
or `AutoVideo` = 1
|
||||||
or `AutoUpload` = 1
|
or `AutoUpload` = 1
|
||||||
or `AutoEmail` = 1
|
or `AutoEmail` = 1
|
||||||
|
@ -282,6 +284,7 @@ sub checkFilter {
|
||||||
join(', ',
|
join(', ',
|
||||||
($filter->{AutoDelete}?'delete':()),
|
($filter->{AutoDelete}?'delete':()),
|
||||||
($filter->{AutoArchive}?'archive':()),
|
($filter->{AutoArchive}?'archive':()),
|
||||||
|
($filter->{AutoUnarchive}?'unarchive':()),
|
||||||
($filter->{AutoVideo}?'video':()),
|
($filter->{AutoVideo}?'video':()),
|
||||||
($filter->{AutoUpload}?'upload':()),
|
($filter->{AutoUpload}?'upload':()),
|
||||||
($filter->{AutoEmail}?'email':()),
|
($filter->{AutoEmail}?'email':()),
|
||||||
|
@ -299,7 +302,7 @@ sub checkFilter {
|
||||||
last if $zm_terminate;
|
last if $zm_terminate;
|
||||||
my $Event = new ZoneMinder::Event($$event{Id}, $event);
|
my $Event = new ZoneMinder::Event($$event{Id}, $event);
|
||||||
|
|
||||||
Debug("Checking event $Event->{Id}");
|
Debug('Checking event '.$Event->{Id});
|
||||||
my $delete_ok = !undef;
|
my $delete_ok = !undef;
|
||||||
$dbh->ping();
|
$dbh->ping();
|
||||||
if ( $filter->{AutoArchive} ) {
|
if ( $filter->{AutoArchive} ) {
|
||||||
|
@ -311,6 +314,15 @@ sub checkFilter {
|
||||||
my $res = $sth->execute($Event->{Id})
|
my $res = $sth->execute($Event->{Id})
|
||||||
or Error("Unable to execute '$sql': ".$dbh->errstr());
|
or Error("Unable to execute '$sql': ".$dbh->errstr());
|
||||||
}
|
}
|
||||||
|
if ( $filter->{AutoUnarchive} ) {
|
||||||
|
Info("Unarchiving event $Event->{Id}");
|
||||||
|
# Do it individually to avoid locking up the table for new events
|
||||||
|
my $sql = 'UPDATE `Events` SET `Archived` = 0 WHERE `Id` = ?';
|
||||||
|
my $sth = $dbh->prepare_cached($sql)
|
||||||
|
or Fatal("Unable to prepare '$sql': ".$dbh->errstr());
|
||||||
|
my $res = $sth->execute($Event->{Id})
|
||||||
|
or Error("Unable to execute '$sql': ".$dbh->errstr());
|
||||||
|
}
|
||||||
if ( $Config{ZM_OPT_FFMPEG} && $filter->{AutoVideo} ) {
|
if ( $Config{ZM_OPT_FFMPEG} && $filter->{AutoVideo} ) {
|
||||||
if ( !$Event->{Videoed} ) {
|
if ( !$Event->{Videoed} ) {
|
||||||
$delete_ok = undef if !generateVideo($filter, $Event);
|
$delete_ok = undef if !generateVideo($filter, $Event);
|
||||||
|
|
Loading…
Reference in New Issue