3 # This script reads a message from stdin, figures out which newsgroup's
4 # queue it should be saved to, and saves it.
7 # Figure out the home directory
12 if( !($0 =~ /\/scripts\/file-message\.pl$/) ) {
13 die "This script can only be called with full path name!!!";
17 $webstump_home =~ s/\/scripts\/file-message\.pl$//;
19 open STDOUT, ">> $webstump_home/../errs" or die $!;
20 open STDERR, ">&STDOUT" or die $!;
22 require "$webstump_home/config/webstump.cfg";
23 require "$webstump_home/scripts/webstump.lib.pl";
24 require "$webstump_home/scripts/filter.lib.pl";
25 require "$webstump_home/scripts/mime-parsing.lib";
30 $directory = "$webstump_home/tmp/dir_$time" . "_$$";
35 if( /^X-Moderate-For: / ) {
36 s/^X-Moderate-For: //;
38 } elsif ( /^Subject: / ) {
46 "This message did not look like it came from STUMP because it did not
47 contain the X-Moderate-For: header"
50 while( ($_ = <STDIN>) && !($_ =~ /^\@+$/ )) {};
53 # this will also take away the "From " line.
55 while( ($_ = <STDIN>) && ($_ =~ /^$/ )) {};
57 my ($entity, $prolog);
59 if( $use_mime eq "yes" ) {
60 ($entity, $prolog) = &decode_mime_message( $directory );
62 $prolog = &decode_plaintext_message( $directory );
65 $prolog = $Subject . "\n" . $prolog;
67 die "This message did not look like it came from STUMP because it did not
68 contain the X-Moderate-For: header"
71 $queue_dir = &getQueueDir( $newsgroup )
72 || die "Newsgroup $newsgroup is not listed in the newsgroups database";
74 mkdir $queue_dir, 0755; # it is OK if this fails
75 chmod 0755, $queue_dir;
77 die "$queue_dir does not exist or is not writable"
78 if( ! -d $queue_dir || ! -w $queue_dir );
80 open( PROLOG, ">$directory/stump-prolog.txt" ) or die $!;
81 print PROLOG $prolog or die $!;
82 close( PROLOG ) or die $!;
84 #open( FULL, ">$directory/full_message.txt" );
85 #print FULL $entity->as_string;
88 my $dir = "dir_$time" . "_$$";
89 rename $directory, "$queue_dir/$dir" or die $!;
92 $request{"newsgroup"} = $newsgroup;
94 #sub review_incoming_message { # Newsgroup, From, Subject, Message, Dir
96 &review_incoming_message( $newsgroup, $Article_From, $Subject,
97 $Article_Subject, $Article_Head . $Article_Body, $dir );