Fix Event count subsitutions in emails because they are no longer in Monitor_Status. They are in Event_Summaries. So create a new object for them and use it.
This commit is contained in:
parent
a74b785d08
commit
6478999ecf
|
@ -0,0 +1,99 @@
|
||||||
|
# ==========================================================================
|
||||||
|
#
|
||||||
|
# ZoneMinder Event_Summary Module
|
||||||
|
# Copyright (C) 2020 ZoneMinder
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or
|
||||||
|
# modify it under the terms of the GNU General Public License
|
||||||
|
# as published by the Free Software Foundation; either version 2
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# ==========================================================================
|
||||||
|
#
|
||||||
|
# This module contains the common definitions and functions used by the rest
|
||||||
|
# of the ZoneMinder scripts
|
||||||
|
#
|
||||||
|
package ZoneMinder::Event_Summary;
|
||||||
|
|
||||||
|
use 5.006;
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
require ZoneMinder::Base;
|
||||||
|
require ZoneMinder::Object;
|
||||||
|
|
||||||
|
#our @ISA = qw(Exporter ZoneMinder::Base);
|
||||||
|
use parent qw(ZoneMinder::Object);
|
||||||
|
|
||||||
|
use vars qw/ $table $primary_key %fields $serial %defaults $debug/;
|
||||||
|
$table = 'Event_Summaries';
|
||||||
|
$serial = $primary_key = 'MonitorId';
|
||||||
|
%fields = map { $_ => $_ } qw(
|
||||||
|
MonitorId
|
||||||
|
TotalEvents
|
||||||
|
TotalEventDiskSpace
|
||||||
|
HourEvents
|
||||||
|
HourEventDiskSpace
|
||||||
|
DayEvents
|
||||||
|
DayEventDiskSpace
|
||||||
|
WeekEvents
|
||||||
|
WeekEventDiskSpace
|
||||||
|
MonthEvents
|
||||||
|
MonthEventDiskSpace
|
||||||
|
ArchivedEvents
|
||||||
|
ArchivedEventDiskSpace
|
||||||
|
);
|
||||||
|
|
||||||
|
%defaults = (
|
||||||
|
TotalEvents => undef,
|
||||||
|
TotalEventDiskSpace => undef,
|
||||||
|
HourEvents => undef,
|
||||||
|
HourEventDiskSpace => undef,
|
||||||
|
DayEvents => undef,
|
||||||
|
DayEventDiskSpace => undef,
|
||||||
|
WeekEvents => undef,
|
||||||
|
WeekEventDiskSpace => undef,
|
||||||
|
MonthEvents => undef,
|
||||||
|
MonthEventDiskSpace => undef,
|
||||||
|
ArchivedEvents => undef,
|
||||||
|
ArchivedEventDiskSpace => undef,
|
||||||
|
);
|
||||||
|
|
||||||
|
sub Monitor {
|
||||||
|
return new ZoneMinder::Monitor( $_[0]{MonitorId} );
|
||||||
|
} # end sub Monitor
|
||||||
|
|
||||||
|
1;
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
ZoneMinder::Event_Summary - Perl Class for Event Summaries
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
use ZoneMinder::Event_Summary;
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
Isaac Connor, E<lt>isaac@zoneminder.comE<gt>
|
||||||
|
|
||||||
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
|
Copyright (C) 2001-2017 ZoneMinder LLC
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or modify
|
||||||
|
it under the same terms as Perl itself, either Perl version 5.8.3 or,
|
||||||
|
at your option, any later version of Perl 5 you may have available.
|
||||||
|
|
||||||
|
|
||||||
|
=cut
|
|
@ -35,6 +35,7 @@ require ZoneMinder::Storage;
|
||||||
require ZoneMinder::Server;
|
require ZoneMinder::Server;
|
||||||
require ZoneMinder::Memory;
|
require ZoneMinder::Memory;
|
||||||
require ZoneMinder::Monitor_Status;
|
require ZoneMinder::Monitor_Status;
|
||||||
|
require ZoneMinder::Event_Summary;
|
||||||
require ZoneMinder::Zone;
|
require ZoneMinder::Zone;
|
||||||
use ZoneMinder::Logger qw(:all);
|
use ZoneMinder::Logger qw(:all);
|
||||||
|
|
||||||
|
@ -267,6 +268,15 @@ sub Status {
|
||||||
return $$self{Status};
|
return $$self{Status};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub Event_Summary {
|
||||||
|
my $self = shift;
|
||||||
|
$$self{Event_Summary} = shift if @_;
|
||||||
|
if ( ! $$self{Event_Summary} ) {
|
||||||
|
$$self{Event_Summary} = ZoneMinder::Event_Summary->find_one(MonitorId=>$$self{Id});
|
||||||
|
}
|
||||||
|
return $$self{Event_Summary};
|
||||||
|
}
|
||||||
|
|
||||||
sub connect {
|
sub connect {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return ZoneMinder::Memory::zmMemVerify($self);
|
return ZoneMinder::Memory::zmMemVerify($self);
|
||||||
|
|
|
@ -43,18 +43,6 @@ $serial = $primary_key = 'MonitorId';
|
||||||
CaptureFPS
|
CaptureFPS
|
||||||
AnalysisFPS
|
AnalysisFPS
|
||||||
CaptureBandwidth
|
CaptureBandwidth
|
||||||
TotalEvents
|
|
||||||
TotalEventDiskSpace
|
|
||||||
HourEvents
|
|
||||||
HourEventDiskSpace
|
|
||||||
DayEvents
|
|
||||||
DayEventDiskSpace
|
|
||||||
WeekEvents
|
|
||||||
WeekEventDiskSpace
|
|
||||||
MonthEvents
|
|
||||||
MonthEventDiskSpace
|
|
||||||
ArchivedEvents
|
|
||||||
ArchivedEventDiskSpace
|
|
||||||
);
|
);
|
||||||
|
|
||||||
%defaults = (
|
%defaults = (
|
||||||
|
@ -62,18 +50,6 @@ $serial = $primary_key = 'MonitorId';
|
||||||
CaptureFPS => undef,
|
CaptureFPS => undef,
|
||||||
AnalysisFPS => undef,
|
AnalysisFPS => undef,
|
||||||
CaptureBandwidth => undef,
|
CaptureBandwidth => undef,
|
||||||
TotalEvents => undef,
|
|
||||||
TotalEventDiskSpace => undef,
|
|
||||||
HourEvents => undef,
|
|
||||||
HourEventDiskSpace => undef,
|
|
||||||
DayEvents => undef,
|
|
||||||
DayEventDiskSpace => undef,
|
|
||||||
WeekEvents => undef,
|
|
||||||
WeekEventDiskSpace => undef,
|
|
||||||
MonthEvents => undef,
|
|
||||||
MonthEventDiskSpace => undef,
|
|
||||||
ArchivedEvents => undef,
|
|
||||||
ArchivedEventDiskSpace => undef,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
sub Monitor {
|
sub Monitor {
|
||||||
|
|
|
@ -665,10 +665,10 @@ sub substituteTags {
|
||||||
# We have a filter and an event, do we need any more
|
# We have a filter and an event, do we need any more
|
||||||
# monitor information?
|
# monitor information?
|
||||||
my $need_monitor = $text =~ /%(?:MN|MET|MEH|MED|MEW|MEN|MEA)%/;
|
my $need_monitor = $text =~ /%(?:MN|MET|MEH|MED|MEW|MEN|MEA)%/;
|
||||||
my $need_status = $text =~ /%(?:MET|MEH|MED|MEW|MEN|MEA)%/;
|
my $need_summary = $text =~ /%(?:MET|MEH|MED|MEW|MEN|MEA)%/;
|
||||||
|
|
||||||
my $Monitor = $Event->Monitor() if $need_monitor;
|
my $Monitor = $Event->Monitor() if $need_monitor;
|
||||||
my $Status = $Monitor->Status() if $need_status;
|
my $Summary = $Monitor->Event_Summary() if $need_summary;
|
||||||
|
|
||||||
# Do we need the image information too?
|
# Do we need the image information too?
|
||||||
my $need_images = $text =~ /%(?:EPI1|EPIM|EI1|EIM|EI1A|EIMA|EIMOD|EIMODG)%/;
|
my $need_images = $text =~ /%(?:EPI1|EPIM|EI1|EIM|EI1A|EIMA|EIMOD|EIMODG)%/;
|
||||||
|
@ -692,19 +692,19 @@ sub substituteTags {
|
||||||
}
|
}
|
||||||
$rows ++;
|
$rows ++;
|
||||||
}
|
}
|
||||||
Debug("Frames: rows: $rows first alarm frame: $first_alarm_frame max_alaarm_frame: $max_alarm_frame, score: $max_alarm_score");
|
Debug("Frames: rows: $rows first alarm frame: $first_alarm_frame max_alarm_frame: $max_alarm_frame, score: $max_alarm_score");
|
||||||
$sth->finish();
|
$sth->finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
my $url = $Config{ZM_URL};
|
my $url = $Config{ZM_URL};
|
||||||
$text =~ s/%ZP%/$url/g;
|
$text =~ s/%ZP%/$url/g;
|
||||||
$text =~ s/%MN%/$Monitor->{Name}/g;
|
$text =~ s/%MN%/$Monitor->{Name}/g;
|
||||||
$text =~ s/%MET%/$Status->{TotalEvents}/g;
|
$text =~ s/%MET%/$Summary->{TotalEvents}/g;
|
||||||
$text =~ s/%MEH%/$Status->{HourEvents}/g;
|
$text =~ s/%MEH%/$Summary->{HourEvents}/g;
|
||||||
$text =~ s/%MED%/$Status->{DayEvents}/g;
|
$text =~ s/%MED%/$Summary->{DayEvents}/g;
|
||||||
$text =~ s/%MEW%/$Status->{WeekEvents}/g;
|
$text =~ s/%MEW%/$Summary->{WeekEvents}/g;
|
||||||
$text =~ s/%MEM%/$Status->{MonthEvents}/g;
|
$text =~ s/%MEM%/$Summary->{MonthEvents}/g;
|
||||||
$text =~ s/%MEA%/$Status->{ArchivedEvents}/g;
|
$text =~ s/%MEA%/$Summary->{ArchivedEvents}/g;
|
||||||
$text =~ s/%MP%/$url?view=watch&mid=$Event->{MonitorId}/g;
|
$text =~ s/%MP%/$url?view=watch&mid=$Event->{MonitorId}/g;
|
||||||
$text =~ s/%MPS%/$url?view=watch&mid=$Event->{MonitorId}&mode=stream/g;
|
$text =~ s/%MPS%/$url?view=watch&mid=$Event->{MonitorId}&mode=stream/g;
|
||||||
$text =~ s/%MPI%/$url?view=watch&mid=$Event->{MonitorId}&mode=still/g;
|
$text =~ s/%MPI%/$url?view=watch&mid=$Event->{MonitorId}&mode=still/g;
|
||||||
|
|
Loading…
Reference in New Issue