summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2008-11-28 18:47:12 +0000
committerAndreas Brachold <vdr07@deltab.de>2008-11-28 18:47:12 +0000
commitb7b4c1c32dbbf02bc52f8aa568c9bfbbfc3acabc (patch)
tree0c9a2e0d05ecd3ef9cccea3dadc5bfed6403a1d3
parent8c42985fd234e2a993b3f01416941f4b371d1a92 (diff)
downloadxxv-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.pm7
-rw-r--r--lib/XXV/MODULES/USER.pm3
-rw-r--r--lib/XXV/OUTPUT/NEWS/MAIL.pm19
-rw-r--r--lib/XXV/OUTPUT/NEWS/RSS.pm17
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,