diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2008-11-28 18:47:12 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2008-11-28 18:47:12 +0000 |
| commit | b7b4c1c32dbbf02bc52f8aa568c9bfbbfc3acabc (patch) | |
| tree | 0c9a2e0d05ecd3ef9cccea3dadc5bfed6403a1d3 | |
| parent | 8c42985fd234e2a993b3f01416941f4b371d1a92 (diff) | |
| download | xxv-b7b4c1c32dbbf02bc52f8aa568c9bfbbfc3acabc.tar.gz xxv-b7b4c1c32dbbf02bc52f8aa568c9bfbbfc3acabc.tar.bz2 | |
* USER: Fix warn message
* STATUS: Add option to define warning level, if volume filled more then this level
* RSS: Better encode with UTF-8
* MAIL: Mail::SendEasy, failed with standard eval { use _$ } (Bug #14843)
| -rw-r--r-- | lib/XXV/MODULES/STATUS.pm | 7 | ||||
| -rw-r--r-- | lib/XXV/MODULES/USER.pm | 3 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/NEWS/MAIL.pm | 19 | ||||
| -rw-r--r-- | lib/XXV/OUTPUT/NEWS/RSS.pm | 17 |
4 files changed, 35 insertions, 11 deletions
diff --git a/lib/XXV/MODULES/STATUS.pm b/lib/XXV/MODULES/STATUS.pm index 2895f1c..d40616b 100644 --- a/lib/XXV/MODULES/STATUS.pm +++ b/lib/XXV/MODULES/STATUS.pm @@ -63,6 +63,11 @@ sub module { default => 'y', type => 'confirm', }, + warnlevel => { + description => gettext('Warning level, if volume filled more then this level'), + default => 90, + type => "integer", + }, }, Commands => { all => { @@ -788,7 +793,7 @@ sub watchDog { foreach my $m (@$mou) { next unless($m->[0] =~ /^\//); - if($m->[5] >= 90 ) { + if($obj->{warnlevel} && $m->[5] >= $obj->{warnlevel} ) { my $rm = main::getModule('EVENTS'); $rm->news( sprintf(gettext("PANIC! Only %s%% space left on device %s"),(100 - $m->[5]),$m->[0]), diff --git a/lib/XXV/MODULES/USER.pm b/lib/XXV/MODULES/USER.pm index 7864e6e..2c8648a 100644 --- a/lib/XXV/MODULES/USER.pm +++ b/lib/XXV/MODULES/USER.pm @@ -495,7 +495,8 @@ sub edit { }, 'Prefs' => { def => sub { - my $value = $user->{Prefs} ? split(/\n/,$user->{Prefs}) : ''; + my $value; + @$value = $user->{Prefs} ? split(/\n/,$user->{Prefs}) : []; return (ref $value eq 'ARRAY') ? join(',', @$value) : $value; }, msg => gettext("Preferences for this User: ModName::Param=value, "), diff --git a/lib/XXV/OUTPUT/NEWS/MAIL.pm b/lib/XXV/OUTPUT/NEWS/MAIL.pm index f34eb65..935f4e3 100644 --- a/lib/XXV/OUTPUT/NEWS/MAIL.pm +++ b/lib/XXV/OUTPUT/NEWS/MAIL.pm @@ -206,8 +206,7 @@ sub init { prio => 6, # -1 very hard ... 6 very low cb => sub{ if($self->{active} eq 'y') { - my $content = $self->_req(); - $self->send($content); + $self->send(); } }, ); @@ -221,20 +220,26 @@ sub init { sub send { # ------------------ my $self = shift || return error('No object defined!'); + my $content = shift || $self->_req(); return error('This function is deactivated!') if($self->{active} ne 'y'); - my $content = $self->_req(); - - my @addresses = split(/\s*,\s*/, $self->{address}); + use Mail::SendEasy; # Hmm, failed with standard eval { use _$ } ... my $mail = new Mail::SendEasy( smtp => $self->{smtp}, user => $self->{susr}, - pass => $self->{spwd} + pass => $self->{spwd}, + timeout => 60, + port => 25 ); + unless($mail) { + error sprintf("Can't create mail instance %s!", $!); + return undef; + } + my @addresses = split(/\s*,\s*/, $self->{address}); # Send mail my $status = $mail->send( @@ -244,7 +249,7 @@ sub send { cc => join(',', @addresses), subject => gettext("News from your XXV System!"), msg => $content, - msgid => $self->{COUNT}, + msgid => $self->{COUNT} ) || return error sprintf("Can't send mail: %s", $mail->error); lg sprintf('Mail %d. send successfully', $self->{COUNT}++); diff --git a/lib/XXV/OUTPUT/NEWS/RSS.pm b/lib/XXV/OUTPUT/NEWS/RSS.pm index 7ede3f3..c796db9 100644 --- a/lib/XXV/OUTPUT/NEWS/RSS.pm +++ b/lib/XXV/OUTPUT/NEWS/RSS.pm @@ -82,6 +82,11 @@ sub new { my $self = {}; bless($self, $class); + $self->{charset} = delete $attr{'-charset'} || 'ISO-8859-1'; + if($self->{charset} eq 'UTF-8'){ + eval 'use utf8'; + } + # read the DB Handle $self->{dbh} = delete $attr{'-dbh'}; @@ -145,6 +150,8 @@ sub createRSS { if($ver == 1) { $rss = XML::RSS->new( version => '1.0', + 'encoding' => $self->{charset}, + 'encode_output' => 1 ) || return error("Can't create rss 1.0 object"); @@ -169,6 +176,8 @@ sub createRSS { $rss = XML::RSS->new( version => '2.0', + 'encoding' => $self->{charset}, + 'encode_output' => 1 ) || return error("Can't create rss 2.0 object"); $rss->channel( @@ -225,13 +234,17 @@ sub req { if($cmd && $data); my $category = $emod->translate_scala($level); + if($self->{charset} eq 'UTF-8') { + utf8::decode( $title ) unless utf8::is_utf8( $title ); + utf8::decode( $message ) unless utf8::is_utf8( $message ); + } $message =~ s/\r\n/<br \/>/g; if($ver == 1) { $rss->add_item( title => $title, link => $link, - description => entities($message), + description => $message, dc => { date => datum($addtime, 'rss'), subject => $category, @@ -241,7 +254,7 @@ sub req { $rss->add_item( title => $title, link => $link, - description => entities($message), + description => $message, pubDate => datum($addtime, 'rss'), category => $category, guid => $id, |
