home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/perl
-
- # split the BMW digest
- require "/home/isscowww/httpd/cgi-bin/WebForum/libWebForum.pl";
-
- # rejection patterns
- @rejects=("^From:[^\n]*isscowww",
- "\nTo:[^\n]*bmw-digest@balltown",
- "\nSubject:[^\n]*subscribe");
-
- $digest=$ARGV[0];
-
- if (!-r "$digest") {die "$digest does not exist!\n";}
-
- open(FILE,"< $digest")||die "Couldn't open $digest\n";
-
- $mn=0;
- MSGS:
- while (<FILE>){
- $_=&GetNextMessage($_);
- next if $_ eq '';
- foreach $p (@rejects) {
- next MSGS if /$p/;
- }
- &PostMessageToForum($_);
- $mn++;
- }
-
- exit;
-
- sub GetNextMessage {
- local ($l)=@_;
- local ($m);
- while (($l !~ /^From:/) && ($l= <FILE>)){};
- $m=$l;
- while (($l=<FILE>) && ($l !~ /^------------------------------/))
- { $m = $m . $l; }
- return $m;
- }
-
- sub PostMessageToForum {
- local ($themessage)=@_;
- local ($ip);
-
- $themessage =~ /Subject: *([^\n]*)/;
- local ($subject) = $1;
- $subject =~ s/^ *//;
- $subject =~ s/^[rR][eE]:? *//;
- $subject = &WFEncodeDatum($subject);
-
- $ENV{"REMOTE_USER"}="BMWebGateway";
- $ENV{"REQUEST_METHOD"}="POST";
- $ENV{"REQUEST_NO_AUX_POST"}="YES";
- $body=&WFEncodeDatum($themessage);
- $ip="command=mkmsg&forum=BMW&subject=$subject&mtype=txt&body=$body&\n\n";
-
- $ENV{"CONTENT_LENGTH"}=length($ip);
- open(PM,"|/home/isscowww/httpd/cgi-bin/WebForum/ctrl/wfcommand.pl");
- print PM $ip;
- close(PM);
- }
-