X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=misc%2Fcronjobs%2Fprocess_message_queue.pl;h=d8918be60776e61679692fa55fcc38f54c49e374;hb=db5c5c0bc724e1583f7741b0a7ed74ca97fd0cd4;hp=c79fea8452cba93e0be23ee6d88559f43d6c7bc7;hpb=1e7c5166aa4fa8f983cce549803c8ddc8893c846;p=srvgit diff --git a/misc/cronjobs/process_message_queue.pl b/misc/cronjobs/process_message_queue.pl index c79fea8452..d8918be607 100755 --- a/misc/cronjobs/process_message_queue.pl +++ b/misc/cronjobs/process_message_queue.pl @@ -4,42 +4,46 @@ # # This file is part of Koha. # -# Koha 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. +# Koha 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 3 of the License, or +# (at your option) any later version. # -# Koha 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. +# Koha 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 Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use strict; use warnings; -BEGIN { - # find Koha's Perl modules - # test carefully before changing this - use FindBin; - eval { require "$FindBin::Bin/../kohalib.pl" }; -} -use C4::Letters; -use Getopt::Long; + +use Koha::Script -cron; +use C4::Letters qw( SendQueuedMessages ); +use C4::Log qw( cronlogaction ); +use Getopt::Long qw( GetOptions ); +use Try::Tiny qw( catch try ); my $username = undef; my $password = undef; +my $limit = undef; my $method = 'LOGIN'; my $help = 0; my $verbose = 0; +my $type = q{}; +my $letter_code; GetOptions( 'u|username:s' => \$username, 'p|password:s' => \$password, + 'l|limit:s' => \$limit, 'm|method:s' => \$method, 'h|help|?' => \$help, 'v|verbose' => \$verbose, + 't|type:s' => \$type, + 'c|code:s' => \$letter_code, ); my $usage = << 'ENDUSAGE'; @@ -52,13 +56,51 @@ advance_notices.pl script. This script has the following parameters : -u --username: username of mail account -p --password: password of mail account + -t --type: If supplied, only processes this type of message ( email, sms ) + -c --code: If supplied, only processes messages with this letter code + -l --limit: The maximum number of messages to process for this run -m --method: authentication method required by SMTP server (See perldoc Sendmail.pm for supported authentication types.) -h --help: this message -v --verbose: provides verbose output to STDOUT - ENDUSAGE die $usage if $help; -C4::Letters::SendQueuedMessages( { verbose => $verbose, username => $username, password => $password, method => $method } ); +cronlogaction(); + +if ( C4::Context->config("enable_plugins") ) { + my @plugins = Koha::Plugins->new->GetPlugins({ + method => 'before_send_messages', + }); + + if (@plugins) { + foreach my $plugin ( @plugins ) { + try { + $plugin->before_send_messages( + { + verbose => $verbose, + limit => $limit, + type => $type, + letter_code => $letter_code, + } + ); + } + catch { + warn "$_"; + }; + } + } +} + +C4::Letters::SendQueuedMessages( + { + verbose => $verbose, + username => $username, + password => $password, + method => $method, + limit => $limit, + type => $type, + letter_code => $letter_code, + } +);