save
post
-if needAck < $TMPFILE; then
- modack.approved $TMPFILE
-fi
-
rm $TMPFILE
# checks if poster needs acknowledgment of receipt
#
sub checkAck {
- my $fromaddr = $From;
- $fromaddr =~ s/^[-A-Za-z]+\s*\:\s*//;
- print STDERR "checking noack.list for \"$From|$fromaddr\"\n";
- if( &nameIsInListExactly( $fromaddr, "noack.list" ) ) {
- $needAck = "no";
- } else {
- $needAck = "yes";
- }
+ #ULM mods want to disable this, so just return "no"
+ $needAck = "no";
}
################################################################### checkPGP
-Thank you for your submission to %GROUP%.
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
-However, we regret to inform you that your message has been rejected
-because it was rude, a flame, and/or personal abuse.
+Your message appears to the moderator to be abusive or hurtful to
+another contributor.
-Please refer to the group charter and moderation policy at
+The group charter and moderation policy can be found at
%GROUPURL%
-and direct your queries to
- %MODEMAIL%
-
-If you have difficulty reaching the moderators (eg due to
-spamfiltering) please tell %SPAMFILTERINGADMIN%.
-
-Thank you,
- - Moderator.
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+This post has been rejected by the moderator because it appears to
+contain advertising in furtherance of a commercial enterprise.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+Your message is considered to be potentially defamatory. You may wish
+to re-post, omitting the names of real people or organisations and/or
+rephrasing your criticisms.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+Your message has been rejected because it appears to the moderator to
+be a duplicate of another post already accepted by the group.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+Posting HTML is forbidden. Please resubmit your message in plain text.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
-Thank you for your submission to %GROUP%.
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
-However, we regret to inform you that your message has been rejected
-because it is a posting about moderation decisions, and we feel it is
-overly specific, not constructive, or is part of a meta-discussion
-which has got out of hand.
+Discussions about whether someone's post should have been rejected or
+accepted are not generally permitted in the group, and should be taken
+to uk.net.news.moderation.
-If you feel your posting had merit, please repost it to
-uk.net.news.moderation instead. We will read it there and respond as
-appropriate.
-
-Please refer to the group charter and moderation policy at
+The group charter and moderation policy can be found at
%GROUPURL%
-and direct your queries to
- %MODEMAIL%
-
-If you have difficulty reaching the moderators (eg due to
-spamfiltering) please tell %SPAMFILTERINGADMIN%.
-
-Thank you,
- - Moderator.
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
-Thank you for your message. However, we have not approved it because
-it appears to have been posted by mistake.
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
-Reasons for us thinking a posting was a mistake often include:
- - It didn't contain any new text;
- - It appears to have been truncated or mangled;
- - It looks like it was sent before it was finished;
- - It looks like it was meant to be sent by private email;
- - Multiple identical postings;
- - It looks like it was meant for a different newsgroup.
+The moderator assumes that you posted this by mistake. It may be that
+it quotes a previous post without adding your own comment, or the text
+you have added may appear incomplete. We hope you will review and then
+re-submit your message.
-If this decision was wrong please let us know, preferably before
-resubmitting your message. If the decision was right then we thank
-you for your submission and would encourage you to fix whatever the
-problem is and resubmit it, as applicable.
-
-You can find the group charter and moderation policy at:
+The group charter and moderation policy can be found at
%GROUPURL%
-Please direct your queries to:
- %MODEMAIL%
-
-If you have difficulty reaching the moderators (eg due to
-spamfiltering) please tell %SPAMFILTERINGADMIN%.
-
-Thank you,
- - Moderator.
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+This post contains insufficient new material. Similar points have been
+made already in this discussion, which is in danger of becoming too
+repetitive.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+This appears to the moderator to be off-topic for %GROUP%
+or has insufficient law-related material.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+This appears to infringe the privacy of another poster.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
-Thank you for your submission to %GROUP%.
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
-However, we regret to inform you that your message has been rejected
-because it is a repetitious posting which we feel does not bring new
-information to the discussion.
+This post repeats a recent post or a recent query without appearing to
+add anything new. You could try to discuss the topic from a different
+angle or wait a few weeks until it seems right to bring up this
+subject again.
-Please refer to the group charter and moderation policy at
+The group charter and moderation policy can be found at
%GROUPURL%
-and direct your queries to
- %MODEMAIL%
-
-If you have difficulty reaching the moderators (eg due to
-spamfiltering) please tell %SPAMFILTERINGADMIN%.
-
-Thank you,
- - Moderator.
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
--- /dev/null
+The post that you submitted to %GROUP% has been rejected by a
+moderator.
+
+This post has been rejected because the moderator considers that the
+content might breach an injunction or the sub judice rule. You could
+consider rephrasing your post as a hypothetical or general point,
+taking care not to identify any real-life individuals.
+
+The group charter and moderation policy can be found at
+ %GROUPURL%
+Disputed moderation decisions can be discussed in the newsgroup
+ uk.net.news.moderation
$EXPLANATION
-This is an automatic notification that your message has been APPROVED
+This is an automatic notification that your message has been approved
for posting to moderated newsgroup $NEWSGROUP.
For details of the moderation arrangements see
%GROUPURL%
If you do not want to receive automatic acknowledgments in the future,
-simply reply to this message, QUOTING ITS TEXT IN FULL.
+simply reply to this message, quoting its text in full.
_EOB_
cat <<_EOB_
Hello,
-This is an automatic acknowledgement that your message has been RECEIVED
+This is an automatic acknowledgement that your message has been received
by the robomoderation program for newsgroup $NEWSGROUP.
This message has been queued and will be reviewed by the moderators
about your article has been made.
If you do not want to receive automatic acknowledgments in the future,
-simply reply to this message, QUOTING ITS TEXT IN FULL.
+simply reply to this message, quoting its text in full.
For details of the moderation arrangements see
%GROUPURL%
WebSTUMP has a capability to process certain articles automatically,
-without involving a human moderator. For instance, if you decide that a
-certain thread has strayed off topic, and you no longer want ANY articles
-from that thread to ever appear, you can add the Subject of that thread
-to the list of bad threads. That will cause all submissions with that
-subject header to be automatically rejected.<P>
+without involving a human moderator. For instance, you may whitelist
+particular posters, meaning all articles that they submit (except
+those containing words on the Suspicious Words List) will be posted
+without requiring any further intervention.<P>
Generally, WebSTUMP users can do filtering by the following criteria:
<UL>
<LI> By poster
- <LI> By Subject
<LI> use the list of suspicious words
</UL>
<OL>
- <LI> Reject message if the author is listed in <A
- HREF=##bad.posters.list>the List of Banned Posters.</A>.
-
- <LI> Reject message if the Subject: field is listed in <A
- HREF=##bad.subjects.list>the List of Banned Subjects</A>.
-
- <LI> Reject message if the article contains words from <A
- HREF=##bad.words.list>the List of Banned Words</A>.
-
<LI> File message for human review if the author is listed in <A
HREF=##watch.posters.list>the List of Untrusted Posters</A>.
- <LI> File message for human review if the Subject is listed in <A
- HREF=##watch.subjects.list>the List of Suspicious Subjects</A>.
-
<LI> File message for human review if the article contains words from <A
HREF=##watch.words.list>the List of Suspicious Words</A>.
<LI> Approve message if the author is listed in <A
HREF=##good.posters.list>the List of Preapproved Posters</A>.
- <LI> Approve message if the Subject: field is listed in <A
- HREF=##good.subjects.list>the List of Preapproved Subjects</A>.
-
<LI> File all still unprocessed articles for human review.
</OL>
my $from = pop( @_ );
my $newsgroup = pop( @_ );
- if( &name_is_in_list( $from, "bad.posters.list" ) ) {
- &process_approval_decision( $subject, $newsgroup, $dir, "reject blocklist", "", "auto bad poster" );
- return;
- }
-
- if( &name_is_in_list( $real_subject, "bad.subjects.list" ) ) {
- &process_approval_decision( $subject, $newsgroup, $dir, "reject thread", "", "auto bad subject" );
- return;
- }
-
- if( &name_is_in_list( $message, "bad.words.list" ) ) {
- &process_approval_decision( $subject, $newsgroup, $dir, "reject charter",
- "Your message has been autorejected because it appears to be off topic
- based on our filtering criteria. Like everything, filters do not
- always work perfectly and you can always appeal this decision.",
- "auto bad word" );
- return;
- }
-
my $warning_file = &article_file_name( $dir ) . "/stump-warning.txt";
my $match;
return; # file message
}
- if( $match = &name_is_in_list( $real_subject, "watch.subjects.list" ) ) {
- &append_to_file( $warning_file, "Warning: subject '$real_subject' matches '$match' from the list of suspicious subjects\n" );
-print STDERR "Filing Article for review because subject '$subject' matches '$match'\n";
- return; # file message
- }
-
if( $match = &name_is_in_list( $message, "watch.words.list" ) ) {
&append_to_file( $warning_file, "Warning: article matches '$match' from the list of suspicious words\n" );
print STDERR "Filing Article for review because article matches '$match'\n";
return;
}
- if( &name_is_in_list( $real_subject, "good.subjects.list" ) ) {
- &process_approval_decision( $subject, $newsgroup, $dir, "approve", "",
- "auto good subject" );
- return;
- }
-
# if the message remains here, it is stored for human review.
}
&end_html;
}
-# main moderation page -- old version
+# main moderation page -- single-article version
sub html_moderate_article {
my $newsgroup = &required_parameter( 'newsgroup' );
my $moderator = $request{'moderator'};
print "<HR>\n" if &print_article_warning( $file );
- print "<PRE>\n";
+ print "<pre style=\"white-space: pre-wrap\">\n";
my $filename;
my $inhead= 1;
while( $filename = <TEXT_FILES> ) {
&html_print_credentials;
print "<SELECT NAME=\"decision_$file\">
<OPTION VALUE=\"approve\">Approve</OPTION>
-<OPTION VALUE=\"leave\" SELECTED>Put to back of queue</OPTION>
-<OPTION VALUE=\"consider\">Back of queue, adding mark requesting further consideration</OPTION>
+<OPTION VALUE=\"skip\" SELECTED>Leave</OPTION>
+<OPTION VALUE=\"leave\">Back of queue</OPTION>
";
- foreach (sort(keys %rejection_reasons)) {
- print "<OPTION VALUE=\"reject $_\">Reject -- $rejection_reasons{$_}</OPTION>\n";
- }
-
- print "<BR>";
-
- print "</SELECT><BR> Comment: <INPUT NAME=comment VALUE=\"\" SIZE=80><BR>";
+ foreach (@short_rejection_reasons) {
+ print "<OPTION VALUE=\"reject $_\">Reject \u$_</OPTION>\n";
+ }
+ print "</SELECT> <BR> Comment (to poster, in rejection message): <INPUT NAME=comment VALUE=\"\" SIZE=80><BR>";
print "<BR>
<INPUT TYPE=radio NAME=poster_decision VALUE=nothing CHECKED>Don't change poster's status</INPUT>
<INPUT TYPE=radio NAME=poster_decision VALUE=preapprove
->Preapprove poster</INPUT>
-<INPUT TYPE=radio NAME=poster_decision VALUE=ban
- ONCLICK=\"alert( 'Banning a poster is a controversial practice'); \"
-> Ban All Posts by this Person (Careful!)</INPUT>
-<BR><BR>
-<INPUT TYPE=radio NAME=thread_decision VALUE=nothing CHECKED>Don't change thread's status</INPUT>
-<!-- <INPUT TYPE=radio NAME=thread_decision VALUE=preapprove>Preapprove thread, by Subject:</INPUT> -->
-<BR>
-
-<INPUT TYPE=radio NAME=thread_decision VALUE=ban
- ONCLICK=\"alert( 'Banning a thread is a controversial practice'); \"
->Ban Entire Thread By Subject (Careful!)</INPUT>
-<INPUT TYPE=radio NAME=thread_decision VALUE=watch>Put Entire thread on a Watch, by Subject:</INPUT>
+>White-list poster</INPUT>
+<INPUT TYPE=radio NAME=poster_decision VALUE=suspicious>
+Add poster to watch list</INPUT>
<BR><BR>
<I>
-NOTE: Decisions to ban and preapprove posters and threads can be reversed by
-logging in as \"admin\" and editing respective lists of preapproved
-and banned threads and posters.
+NOTE: Decisions to watchlist and whitelist posters can be reversed by
+editing the respective lists of whitelisted and watchlisted posters.
";
&link_to_help( "filter-lists", "automatic filtering and filter lists, blacklisting and preapproved threads." );
- print "Be really careful about blacklisting of everyone except spammers.</I><BR><BR>
+ print "</I>You may also wish to read the <A href=\"http://www.chiark.greenend.org.uk/~webstump/g.ulm/rrtable.html\" target=\"_blank\">summary of rejection reasons</a> (opens in a new window).\n<BR><BR>
<INPUT TYPE=radio NAME=next_screen VALUE=single CHECKED>
Review ONE article in next screen
";
print "</FORM>\n\n";
+ print "<FORM METHOD=$request_method action=$base_address>";
+ &html_print_credentials;
+ print "<INPUT NAME=action VALUE=moderator_admin TYPE=hidden>
+ <INPUT TYPE=submit VALUE=\"Go to Management Page Instead of Moderating This Post\">
+ </FORM>";
print "<BR><A HREF=$base_address?action=change_password&newsgroup=$newsgroup&" .
"moderator=$moderator&password=$password>Change Password</A>";
return ($dir, @articles);
}
-# main moderation page
+# main moderation page -- multiple-articles version
sub html_moderation_screen {
my $newsgroup = &required_parameter( 'newsgroup' );
my $moderator = $request{'moderator'};
you would like to review in more details, do not select anything and
use Review/Comment function from this screen or from a subsequent screen.
Remember that if you do not make any decision, the article would stay in the
-queue.\n";
+queue. See also the <A href=\"http://www.chiark.greenend.org.uk/~webstump/g.ulm/rrtable.html\" target=\"_blank\">summary of rejection reasons</a> (opens in a new window).\n";
&read_rejection_reasons;
<FORM METHOD=$request_method action=$base_address>
<INPUT NAME=action VALUE=approval_decision TYPE=hidden>";
&html_print_credentials;
+
+ print "<HR> <INPUT TYPE=submit VALUE=Submit>
+<INPUT TYPE=reset VALUE=Reset>
+";
my $file, $subject = "No Subject", $from = "From nobody";
my $form_not_empty = "";
print "<HR><B>$from: $subject</B>(";
print "<A HREF=$base_address?action=moderate_article&newsgroup=$newsgroup&" .
- "moderator=$moderator&password=$password&file=$subdir>Review/Comment/Preapprove</A>)<BR>\n";
+ "moderator=$moderator&password=$password&file=$subdir>Review/Comment/Whitelist</A>)<BR>\n";
print "<INPUT TYPE=radio NAME=\"decision_$file\" VALUE=approve>Approve\n";
print "<INPUT TYPE=radio NAME=\"decision_$file\" VALUE=skip>Leave\n";
print "<INPUT TYPE=radio NAME=\"decision_$file\" VALUE=leave>Back of queue\n";
my $i = 0;
- while( ($_ = <PROLOG>) && $i < 5 ) {
+ while( ($_ = <PROLOG>) && $i < 8 ) {
chop;
next if m/^\>/;
s/\&/&/g;
<OPTION VALUE=good.posters.list>Good Posters List
<OPTION VALUE=watch.posters.list>Suspicious Posters List
- <OPTION VALUE=bad.posters.list>Banned Posters List
- <OPTION VALUE=good.subjects.list>Good Subjects List
- <OPTION VALUE=watch.subjects.list>Suspicious Subjects List
- <OPTION VALUE=bad.subjects.list>Banned Subjects List
<OPTION VALUE=watch.words.list>Suspicious Words List
- <OPTION VALUE=bad.words.list>Banned Words List
</SELECT>
<INPUT TYPE=submit VALUE=\"Edit\">
print "</UL>\n";
+ print "<HR>See the <A href=\"http://www.chiark.greenend.org.uk/~webstump/g.ulm/rrtable.html\" target=\"_blank\">summary of rejection reasons</a> (opens in a new window).\n";
+
+ print "<HR><FORM METHOD=$request_method action=$base_address>";
+ &html_print_credentials;
+ print "<INPUT NAME=action VALUE=moderation_screen TYPE=hidden>
+ <INPUT TYPE=submit VALUE=\"Go to moderation screen\">
+ </FORM>";
+
&end_html;
}
&user_error( "invalid list name $list_to_edit" )
if( $list_to_edit ne "good.posters.list"
&& $list_to_edit ne "watch.posters.list"
- && $list_to_edit ne "bad.posters.list"
- && $list_to_edit ne "good.subjects.list"
- && $list_to_edit ne "watch.subjects.list"
- && $list_to_edit ne "bad.subjects.list"
- && $list_to_edit ne "bad.words.list"
&& $list_to_edit ne "watch.words.list" );
return &untaint( $list_to_edit );
discard::SILENTLY DISCARD (eg because message is spam)
-abuse::message is rude and abusive
+abuse::message is abusive/hurtful to another post
repetition::message is excessively repetitious
-crosspost::crossposting to that newsgroup is not permitted
-charter::not in accordance with the charter
-test::message is a test
-meta::unconstructive or excessive metadiscussion
-inflammatory::needlessly inflammatory
+meta::message is disputing a moderation decision
mistake::appears to have been posted in error
-blocklist::poster banned
+defamatory::post may be defamatory (rejected message will not be published)
+offtopic::message is off-topic
+duplicate::message is identical to a previous post
+notnew::message contains insufficient new material
+privacy::message may infringe the privacy of a third party (rejected message will not be published)
+advert::message is advertising
+unlawful::message may be breaching an injunction or the sub judice rule (rejected message will not be published)
+html::message is in HTML