diff options
author | brian <brian@FreeBSD.org> | 2005-06-04 21:32:13 +0800 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2005-06-04 21:32:13 +0800 |
commit | c2689c62426aef784484fe08644c60a70455cb4a (patch) | |
tree | 47a4d92f04404170ad735a292ae9b82f6bf354e1 /www | |
parent | 3d81a7ad8b408b39a5ba368f8e0089aa3e4ecb9c (diff) | |
download | freebsd-ports-gnome-c2689c62426aef784484fe08644c60a70455cb4a.tar.gz freebsd-ports-gnome-c2689c62426aef784484fe08644c60a70455cb4a.tar.zst freebsd-ports-gnome-c2689c62426aef784484fe08644c60a70455cb4a.zip |
A kwiki module to notify people of page changes. This includes an enhancement
(from me) that has been submitted to the author.
Diffstat (limited to 'www')
-rw-r--r-- | www/Makefile | 1 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/Makefile | 35 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/distinfo | 2 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/files/patch-aa | 139 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/pkg-descr | 9 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/pkg-message | 11 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/pkg-plist | 6 |
7 files changed, 203 insertions, 0 deletions
diff --git a/www/Makefile b/www/Makefile index 52b4dd308c9d..6b8bcb3aec97 100644 --- a/www/Makefile +++ b/www/Makefile @@ -539,6 +539,7 @@ SUBDIR += p5-Kwiki-ModPerl SUBDIR += p5-Kwiki-NavigationToolbar SUBDIR += p5-Kwiki-NewPage + SUBDIR += p5-Kwiki-Notify-Mail SUBDIR += p5-Kwiki-PagePrivacy SUBDIR += p5-Kwiki-RecentChanges SUBDIR += p5-Kwiki-RecentChangesRSS diff --git a/www/p5-Kwiki-Notify-Mail/Makefile b/www/p5-Kwiki-Notify-Mail/Makefile new file mode 100644 index 000000000000..f933f6dfbd4f --- /dev/null +++ b/www/p5-Kwiki-Notify-Mail/Makefile @@ -0,0 +1,35 @@ +# New ports collection makefile for: p5-Kwiki-Notify-Mail +# Date created: Jun 4 2005 +# Whom: brian +# +# $FreeBSD$ +# + +PORTNAME= Kwiki-Notify-Mail +PORTVERSION= 0.03 +PORTREVISION= 1 +CATEGORIES= www perl5 +MASTER_SITES= ${MASTER_SITE_PERL_CPAN} +MASTER_SITE_SUBDIR= Kwiki +PKGNAMEPREFIX= p5- + +MAINTAINER= ports@FreeBSD.org +COMMENT= Send email notification of topic updates + +BUILD_DEPENDS= ${SITE_PERL}/Kwiki.pm:${PORTSDIR}/www/p5-Kwiki +RUN_DEPENDS= ${BUILD_DEPENDS} + +PERL_CONFIGURE= yes + +MAN3= Kwiki::Notify::Mail.3 + +.include <bsd.port.pre.mk> + +.if ${PERL_LEVEL} < 500601 +IGNORE= This port requires perl 5.6.x or later. Install lang/perl5 then try again +.endif + +post-install: + @${CAT} ${PKGMESSAGE} + +.include <bsd.port.post.mk> diff --git a/www/p5-Kwiki-Notify-Mail/distinfo b/www/p5-Kwiki-Notify-Mail/distinfo new file mode 100644 index 000000000000..c03301c30fa8 --- /dev/null +++ b/www/p5-Kwiki-Notify-Mail/distinfo @@ -0,0 +1,2 @@ +MD5 (Kwiki-Notify-Mail-0.03.tar.gz) = abfcffdbfb3bfe2ea7dc9133964494f9 +SIZE (Kwiki-Notify-Mail-0.03.tar.gz) = 3940 diff --git a/www/p5-Kwiki-Notify-Mail/files/patch-aa b/www/p5-Kwiki-Notify-Mail/files/patch-aa new file mode 100644 index 000000000000..71fd6c3e954d --- /dev/null +++ b/www/p5-Kwiki-Notify-Mail/files/patch-aa @@ -0,0 +1,139 @@ +--- lib/Kwiki/Notify/Mail.pm.orig Tue Jan 25 20:49:23 2005 ++++ lib/Kwiki/Notify/Mail.pm Sat Jun 4 14:21:01 2005 +@@ -26,6 +26,37 @@ + ); + } + ++sub recipient_list { ++ my $notify_mail_obj = $self->hub->load_class('notify_mail'); ++ my $mail_to = $notify_mail_obj->config->notify_mail_to; ++ my $topic = $notify_mail_obj->config->notify_mail_topic; ++ my $meta_data = $self->hub->edit->pages->current->metadata; ++ my $who = $meta_data->{edit_by}; ++ my $page_name = $meta_data->{id}; ++ my ($cfg, $page, $email); ++ ++ return undef unless defined $mail_to && defined $who && defined $page_name; ++ ++ # Support for a notify_mail_topic configuration entry giving a page from ++ # which notification info can be read. ++ $cfg = $self->hub->pages->new_page($topic); ++ if (defined $cfg) { ++ foreach (split(/\n/, $cfg->content)) { ++ s/#.*//; ++ next if /^\s*$/; ++ unless (($page, $email) = /^([^:]+):\s*(.+)/) { ++ print STDERR "Kwiki::Notify::Mail: Unregognised line in ", ++ $topic, ": ", $_, "\n"; ++ next; ++ } ++ next unless $page_name =~ /^$page$/; ++ $mail_to .= " " . $email; ++ } ++ } ++ ++ return $mail_to; ++} ++ + sub notify { + my $hook = pop; + my $page = shift; +@@ -36,16 +67,19 @@ + + my $edited_by = $meta_data->{edit_by} || 'unknown name'; + my $page_name = $meta_data->{id} || 'unknown page'; +- my $to = $notify_mail_obj->config->notify_mail_to || 'unknown@unknown'; ++ my $to = $notify_mail_obj->recipient_list(); + my $from = $notify_mail_obj->config->notify_mail_from || 'unknown'; + my $subject = sprintf($notify_mail_obj->config->notify_mail_subject, + $site_title, + $page_name, + $edited_by) || 'unknown'; ++ $subject =~ s/\$1/$site_title/g; ++ $subject =~ s/\$2/$page_name/g; ++ $subject =~ s/\$3/$edited_by/g; + + my $body = "$site_title page $page_name edited by $edited_by\n"; + +- $notify_mail_obj->mail_it($to,$from,$subject,$body); ++ $notify_mail_obj->mail_it($to,$from,$subject,$body) if $to; + return $self; + } + +@@ -121,7 +155,22 @@ + + =item * notify_mail_to + +-Specify the mail address you are sending to. ++Specify the mail address you are sending to. Email will be sent to these ++addresses for all page updates. ++ ++=item * notify_mail_topic ++ ++Specify the mail topic or ConfigPage that is used to decide who to send mail ++to. The ConfigPage is of the format ++ ++ WikiPage: email@domain.com ++ ++WikiPage may be given as a regular expression, and multiple email addresses ++may be given. For example: ++ ++ HomePage: me@my.domain.com ++ .*: bigmailbox@my.domain.com ++ Doc.*: docs@my.domain.com me@my.domain.com + + =item * notify_mail_from + +@@ -131,9 +180,10 @@ + + Specify a subject line for the mail message. You can make use of + sprintf()-type formatting codes (%s is the only one that is relevant). +-If you put or more %s in the configuration directive it will print out +-the site title, page name and whom it was edited by. You can can't +-change the order, however. ++If you put one or more %s in the configuration directive it will print out ++the site title, page name and whom it was edited by. You may also put ++$1, $2 and/or $3 in the subject line. They will be replaced with the site ++title, the page name and whom it was edited by respectively. + + Examples: + +@@ -168,8 +218,16 @@ + Subject: My wiki ProjectDiscussion page NextWeeksAgenda was updated + by PointyHairedBoss + +-The important thing to remember is that you can have either none or one or two +-or three %s, but you can't change the order. The default value is ++The important thing to remember is that when using %s, you can't change the ++order of argument substitution. To do that, you need something like this: ++ ++ notify_mail_subject: $3 has updated $2 on $1 ++ ++gives you the Subject: line ++ ++ Subject: PointyHairedBoss has updated NextWeeksAgenda on ProjectDiscussion ++ ++The default value is + + notify_mail_subject: %s wiki page %s updated by %s + +@@ -194,9 +252,6 @@ + + =head1 BUGS + +-The subject line configuration relies on sprintf() which doesn't allow +-you to change the order of what gets printed out. +- + The debug file is saved to /tmp and should be user configurable. This + module was not tested under Windows and certainly /tmp doesn't exist + there. +@@ -215,7 +270,8 @@ + + =cut + __config/notify_mail.yaml__ +-notify_mail_to: nobody@nobody.abc ++notify_mail_to: ++notify_mail_topic: NotifyMail + notify_mail_from: nobody + notify_mail_subject: %s wiki page %s updated by %s + notify_mail_debug: 0 diff --git a/www/p5-Kwiki-Notify-Mail/pkg-descr b/www/p5-Kwiki-Notify-Mail/pkg-descr new file mode 100644 index 000000000000..612dd3c02b75 --- /dev/null +++ b/www/p5-Kwiki-Notify-Mail/pkg-descr @@ -0,0 +1,9 @@ +Kwiki::NavigationToolbar - + +Kwiki email notifier. + +This module allows users to receive email notification of topic changes. + + +WWW: http://search.cpan.org/dist/Kwiki-Notify-Mail/ +Author: James Peregrino <jperegrino at post dot harvard dot edu> diff --git a/www/p5-Kwiki-Notify-Mail/pkg-message b/www/p5-Kwiki-Notify-Mail/pkg-message new file mode 100644 index 000000000000..2898b175c30d --- /dev/null +++ b/www/p5-Kwiki-Notify-Mail/pkg-message @@ -0,0 +1,11 @@ +/* ================================================================= */ +Note: + Kwiki-Notify-Mail plugin installed! Now you should add + to your kwiki from your kwiki installation directory: + +$ cd cgi-bin/my-kwiki +$ kwiki -add Kwiki::Notify::Mail + + (Always) perldoc Kwiki::Notify::Mail for details. + +/* ================================================================= */ diff --git a/www/p5-Kwiki-Notify-Mail/pkg-plist b/www/p5-Kwiki-Notify-Mail/pkg-plist new file mode 100644 index 000000000000..61eea9760336 --- /dev/null +++ b/www/p5-Kwiki-Notify-Mail/pkg-plist @@ -0,0 +1,6 @@ +%%SITE_PERL%%/Kwiki/Notify/Mail.pm +%%SITE_PERL%%/%%PERL_ARCH%%/auto/Kwiki/Notify/Mail/.packlist +@dirrm %%SITE_PERL%%/%%PERL_ARCH%%/auto/Kwiki/Notify/Mail +@unexec rmdir %D/%%SITE_PERL%%/%%PERL_ARCH%%/auto/Kwiki/Notify 2>/dev/null || true +@unexec rmdir %D/%%SITE_PERL%%/Kwiki/Notify 2>/dev/null || true +@unexec rmdir %D/%%SITE_PERL%%/Kwiki 2>/dev/null || true |