Commit ecb9c36e authored by sikeda's avatar sikeda
Browse files

[dev] Now Sympa::Spindle::ProcessDigest uses Sympa::Spindle::ProcessTemplate...

[dev] Now Sympa::Spindle::ProcessDigest uses Sympa::Spindle::ProcessTemplate to distribute formatted digest messages.  Sympa::Spindle::TransformDigestFinal was added.


git-svn-id: https://subversion.renater.fr/sympa/branches/sympa-6.2-branch@12600 05aa8bb8-cd2b-0410-b1d7-8918dfa770ce
parent a590161c
......@@ -102,6 +102,7 @@ nobase_modules_DATA = \
Sympa/Spindle/ToList.pm \
Sympa/Spindle/ToModeration.pm \
Sympa/Spindle/ToOutgoing.pm \
Sympa/Spindle/TransformDigestFinal.pm \
Sympa/Spindle/TransformIncoming.pm \
Sympa/Spindle/TransformOutgoing.pm \
Sympa/Spool.pm \
......
......@@ -30,11 +30,10 @@ use POSIX qw();
use Time::HiRes qw();
use Time::Local qw();
use Sympa::Bulk;
use Conf;
use Sympa::Language;
use Sympa::Log;
use Sympa::Message::Template;
use Sympa::Spindle::ProcessTemplate;
use tools;
use base qw(Sympa::Spindle);
......@@ -198,45 +197,26 @@ sub _distribute_digest {
foreach my $mode (qw{digest digestplain summary}) {
next unless exists $available_recipients->{$mode};
my $digest_message = Sympa::Message::Template->new(
my $spindle = Sympa::Spindle::ProcessTemplate->new(
context => $list,
template => $mode,
rcpt => $available_recipients->{$mode},
data => $param
data => $param,
splicing_to => [
'Sympa::Spindle::TransformDigestFinal',
'Sympa::Spindle::ToOutgoing'
],
add_list_statistics => 1
);
if ($digest_message) {
# Add RFC 2919 header field
$list->add_list_header($digest_message, 'id');
# Add RFC 2369 header fields
foreach my $field (
@{ tools::get_list_params($list->{'domain'})
->{'rfc2369_header_fields'}->{'format'}
}
) {
if (scalar grep { $_ eq $field }
@{$list->{'admin'}{'rfc2369_header_fields'}}) {
$list->add_list_header($digest_message, $field);
}
}
}
unless (
$digest_message
and Sympa::Bulk->new->store(
$digest_message, $available_recipients->{$mode}
)
) {
unless ($spindle
and $spindle->spin
and $spindle->{finish} eq 'success') {
$log->syslog('notice',
'Unable to send template "%s" to %s list subscribers',
$mode, $list);
next;
}
# Add number and size of digests sent to total in stats file.
my $numsent = scalar @{$available_recipients->{$mode}};
my $bytes = length $digest_message->as_string;
$list->{'stats'}[1] += $numsent;
$list->{'stats'}[2] += $bytes;
$list->{'stats'}[3] += $bytes * $numsent;
}
}
......
# -*- indent-tabs-mode: nil; -*-
# vim:ft=perl:et:sw=4
# $Id: TransformOutgoing.pm 12579 2015-12-10 08:21:40Z sikeda $
# Sympa - SYsteme de Multi-Postage Automatique
#
# Copyright (c) 1997, 1998, 1999 Institut Pasteur & Christophe Wolfhugel
# Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011 Comite Reseau des Universites
# Copyright (c) 2011, 2012, 2013, 2014, 2015 GIP RENATER
#
# 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, see <http://www.gnu.org/licenses/>.
package Sympa::Spindle::TransformDigestFinal;
use strict;
use warnings;
use tools;
use base qw(Sympa::Spindle);
sub _twist {
my $self = shift;
my $message = shift;
my $list = $message->{context};
$list->add_list_header($message, 'id');
# Add RFC 2369 header fields
foreach my $field (
@{ tools::get_list_params($list->{'domain'})
->{'rfc2369_header_fields'}->{'format'}
}
) {
if (scalar grep { $_ eq $field }
@{$list->{'admin'}{'rfc2369_header_fields'}}) {
$list->add_list_header($message, $field);
}
}
1;
}
1;
__END__
=encoding utf-8
=head1 NAME
Sympa::Spindle::TransformDigestFinal -
Process to transform digest messages - final stage
=head1 DESCRIPTION
TBD.
=head1 SEE ALSO
L<Sympa::Message>,
L<Sympa::Spindle>,
L<Sympa::Spindle::ProcessDigest>.
=head1 HISTORY
L<Sympa::Spindle::TransformDigestFinal> appeared on Sympa 6.2.13.
=cut
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment