polishing notifyemail
parent
f16de0c4e3
commit
accf79f94a
|
@ -73,32 +73,32 @@ sub notify (@) {
|
|||
error $@ if $@;
|
||||
eval q{use IkiWiki::UserInfo};
|
||||
error $@ if $@;
|
||||
eval q{use URI};
|
||||
error($@) if $@;
|
||||
|
||||
# Daemonize, in case the mail sending takes a while.
|
||||
#defined(my $pid = fork) or error("Can't fork: $!");
|
||||
#return if $pid; # parent
|
||||
#chdir '/';
|
||||
#open STDIN, '/dev/null';
|
||||
#open STDOUT, '>/dev/null';
|
||||
#POSIX::setsid() or error("Can't start a new session: $!");
|
||||
#open STDERR, '>&STDOUT' or error("Can't dup stdout: $!");
|
||||
defined(my $pid = fork) or error("Can't fork: $!");
|
||||
return if $pid; # parent
|
||||
chdir '/';
|
||||
open STDIN, '/dev/null';
|
||||
open STDOUT, '>/dev/null';
|
||||
POSIX::setsid() or error("Can't start a new session: $!");
|
||||
open STDERR, '>&STDOUT' or error("Can't dup stdout: $!");
|
||||
|
||||
# Don't need to keep a lock on the wiki as a daemon.
|
||||
IkiWiki::unlockwiki();
|
||||
|
||||
my $userinfo=IkiWiki::userinfo_retrieve();
|
||||
#exit 0 unless defined $userinfo;
|
||||
exit 0 unless defined $userinfo;
|
||||
|
||||
foreach my $user (keys %$userinfo) {
|
||||
my $pagespec=$userinfo->{$user}->{"subscriptions"};
|
||||
next unless defined $pagespec && length $pagespec;
|
||||
my $email=$userinfo->{$user}->{email};
|
||||
next unless defined $email && length $email;
|
||||
print "!!$user\n";
|
||||
|
||||
foreach my $file (@files) {
|
||||
my $page=pagename($file);
|
||||
print "file: $file ($page)\n";
|
||||
next unless pagespec_match($page, $pagespec);
|
||||
my $content="";
|
||||
my $showcontent=defined pagetype($file);
|
||||
|
@ -112,24 +112,28 @@ sub notify (@) {
|
|||
}
|
||||
elsif (defined $pagestate{$page}{meta}{permalink}) {
|
||||
# need to use permalink for an internal page
|
||||
$url=$pagestate{$page}{meta}{permalink};
|
||||
$url=URI->new_abs($pagestate{$page}{meta}{permalink}, $config{url});
|
||||
}
|
||||
else {
|
||||
$url=$config{wikiurl}; # crummy fallback url
|
||||
$url=$config{url}; # crummy fallback url
|
||||
}
|
||||
my $pagedesc=$page;
|
||||
if (defined $pagestate{$page}{meta}{title} &&
|
||||
length $pagestate{$page}{meta}{title}) {
|
||||
$pagedesc=qq{"$pagestate{$page}{meta}{title}"};
|
||||
}
|
||||
my $subject=gettext("change notification:")." ".$pagedesc;
|
||||
if (pagetype($file) eq '_comment') {
|
||||
$subject=gettext("comment notification:")." ".$pagedesc;
|
||||
}
|
||||
my $template=template("notifyemail.tmpl");
|
||||
$template->param(
|
||||
wikiname => $config{wikiname},
|
||||
url => $url,
|
||||
prefsurl => IkiWiki::cgiurl(do => "prefs"),
|
||||
prefsurl => $config{cgiurl}."?do=prefs",
|
||||
showcontent => $showcontent,
|
||||
content => $content,
|
||||
);
|
||||
#translators: The two variables are the name of the wiki,
|
||||
#translators: and a page that was changed.
|
||||
#translators: This is used as the subject of an email.
|
||||
my $subject=sprintf(gettext("%s: change notification for %s"),
|
||||
$config{wikiname}, $page);
|
||||
sendmail(
|
||||
To => $email,
|
||||
From => "$config{wikiname} <$config{adminemail}>",
|
||||
|
@ -139,7 +143,7 @@ sub notify (@) {
|
|||
}
|
||||
}
|
||||
|
||||
#exit 0; # daemon child
|
||||
exit 0; # daemon child
|
||||
}
|
||||
|
||||
1
|
||||
|
|
|
@ -82,7 +82,7 @@ Here is a full list of the template files used:
|
|||
make calendar archive pages.
|
||||
* `trails.tmpl` - Used by the trail plugin to generate links on each page
|
||||
that is a member of a trail.
|
||||
* `changemail.tmpl` - Used by the changemail plugin to generate mails about
|
||||
* `notifyemail.tmpl` - Used by the notifymail plugin to generate mails about
|
||||
changed pages.
|
||||
* `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`,
|
||||
`editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`,
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
A change has been made to <TMPL_VAR URL>
|
||||
A <TMPL_IF NAME=ISCOMMENT>comment has been posted at<TMPL_ELSE>change has been made to</TMPL_IF> <TMPL_VAR URL>
|
||||
|
||||
To stop these notifications, visit <TMPL_VAR PREFSURL>
|
||||
|
||||
<TMPL_IF NAME=SHOWCONTENT>
|
||||
----
|
||||
|
||||
|
|
Loading…
Reference in New Issue