From 47d152be93c9cd32a8d94b3da86726f34dabaeaa Mon Sep 17 00:00:00 2001 From: Wolfram Schneider Date: Sun, 15 Mar 1998 22:00:09 +0000 Subject: [PATCH] Search and present a mail by Message-ID or In-Reply-To field --- data/cgi/Makefile | 4 +- data/cgi/mid.cgi | 105 ++++++++++++++++++++++++++++++++++++++++++++++ en/cgi/Makefile | 4 +- en/cgi/mid.cgi | 105 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 214 insertions(+), 4 deletions(-) create mode 100755 data/cgi/mid.cgi create mode 100755 en/cgi/mid.cgi diff --git a/data/cgi/Makefile b/data/cgi/Makefile index 165cf49740..c87614b979 100644 --- a/data/cgi/Makefile +++ b/data/cgi/Makefile @@ -1,10 +1,10 @@ -# $Id: Makefile,v 1.10 1998-02-26 23:49:47 jfieber Exp $ +# $Id: Makefile,v 1.11 1998-03-15 22:00:07 wosch Exp $ DATA= ftp.mirrors CGI= ftp.cgi gallery.cgi mirror.cgi cgi-lib.pl cgi-style.pl CGI+= search.cgi cvsweb.cgi query-pr.cgi query-pr-summary.cgi CGI+= dosendpr.cgi freebsd.def html.pl reg.cgi missing_handler.cgi -CGI+= ports.cgi pds.cgi man.cgi url.cgi getmsg.cgi +CGI+= ports.cgi pds.cgi man.cgi url.cgi getmsg.cgi mid.cgi .SUFFIXES: .C .cgi diff --git a/data/cgi/mid.cgi b/data/cgi/mid.cgi new file mode 100755 index 0000000000..f5b9690579 --- /dev/null +++ b/data/cgi/mid.cgi @@ -0,0 +1,105 @@ +#!/usr/local/bin/perl +# +# Copyright (c) March 1998 Wolfram Schneider . Berlin. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# Search and present a mail by Message-ID or In-Reply-To field +# +# $Id: mid.cgi,v 1.1 1998-03-15 22:00:09 wosch Exp $ + +$hsty_base = ''; + +require "./cgi-lib.pl"; +require "./cgi-style.pl"; + +$home = '/g/www/mid'; +$lookupdir = "$home/index"; # database(s) directory +$database = 'mid'; # default database +$bindir = "$home/bin"; # where search scripts located +$script = $ENV{'SCRIPT_NAME'}; +$shortid = 1; + +sub foot { return &html_footer . "\n"; } + +sub get_id { + local($query, $db) = @_; + + open(DB, "-|") || + exec("$bindir/mid", $query, "$lookupdir/mid-current.$db", "$lookupdir/mid.$db") || do { + print &foot; exit; + }; + + print "\n
\n";
+    while() {
+	print &clickable($_);
+    }
+    close DB;
+
+    if (($? >> 8) != 0) {
+	if ($db eq 'mid') {
+	    print qq{Message-ID: "$query" not fond\n};
+	} else {
+	    print qq{No answers found for: "$query"\n};
+	}
+    }
+    print "
\n"; + print &foot; +} + +sub clickable { + local($string) = @_; + + if (/^(message-id|resent-message-id):\s+(.*)/oi) { + local($key,$val) = ($1,$2); + $val =~ s%<([^>]+)>%<$1>%goi; + return $key . ': ' . $val . "\n"; + } elsif (/^(references|in-reply-to):\s+(.*)/oi) { + local($key,$val) = ($1,$2); + $val =~ s%<([^>]+)>%<$1>%goi; + return $key . ': ' . $val . "\n"; + } else { + $string =~ s/Back to the search interface

\n}; + +&ReadParse(*input); + +if (!$input{'id'}) { + print "No input given\n"; + print &foot; exit; +} +$input{'id'} =~ s/^$//; +$input{'id'} =~ s/@.*// if $shortid; + +if ($input{'db'} eq 'mid' || $input{'db'} eq 'irt') { + $database = $input{'db'}; +} + +&get_id($input{'id'}, $input{'db'}); diff --git a/en/cgi/Makefile b/en/cgi/Makefile index 165cf49740..c87614b979 100644 --- a/en/cgi/Makefile +++ b/en/cgi/Makefile @@ -1,10 +1,10 @@ -# $Id: Makefile,v 1.10 1998-02-26 23:49:47 jfieber Exp $ +# $Id: Makefile,v 1.11 1998-03-15 22:00:07 wosch Exp $ DATA= ftp.mirrors CGI= ftp.cgi gallery.cgi mirror.cgi cgi-lib.pl cgi-style.pl CGI+= search.cgi cvsweb.cgi query-pr.cgi query-pr-summary.cgi CGI+= dosendpr.cgi freebsd.def html.pl reg.cgi missing_handler.cgi -CGI+= ports.cgi pds.cgi man.cgi url.cgi getmsg.cgi +CGI+= ports.cgi pds.cgi man.cgi url.cgi getmsg.cgi mid.cgi .SUFFIXES: .C .cgi diff --git a/en/cgi/mid.cgi b/en/cgi/mid.cgi new file mode 100755 index 0000000000..f5b9690579 --- /dev/null +++ b/en/cgi/mid.cgi @@ -0,0 +1,105 @@ +#!/usr/local/bin/perl +# +# Copyright (c) March 1998 Wolfram Schneider . Berlin. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# Search and present a mail by Message-ID or In-Reply-To field +# +# $Id: mid.cgi,v 1.1 1998-03-15 22:00:09 wosch Exp $ + +$hsty_base = ''; + +require "./cgi-lib.pl"; +require "./cgi-style.pl"; + +$home = '/g/www/mid'; +$lookupdir = "$home/index"; # database(s) directory +$database = 'mid'; # default database +$bindir = "$home/bin"; # where search scripts located +$script = $ENV{'SCRIPT_NAME'}; +$shortid = 1; + +sub foot { return &html_footer . "\n"; } + +sub get_id { + local($query, $db) = @_; + + open(DB, "-|") || + exec("$bindir/mid", $query, "$lookupdir/mid-current.$db", "$lookupdir/mid.$db") || do { + print &foot; exit; + }; + + print "\n

\n";
+    while() {
+	print &clickable($_);
+    }
+    close DB;
+
+    if (($? >> 8) != 0) {
+	if ($db eq 'mid') {
+	    print qq{Message-ID: "$query" not fond\n};
+	} else {
+	    print qq{No answers found for: "$query"\n};
+	}
+    }
+    print "
\n"; + print &foot; +} + +sub clickable { + local($string) = @_; + + if (/^(message-id|resent-message-id):\s+(.*)/oi) { + local($key,$val) = ($1,$2); + $val =~ s%<([^>]+)>%<$1>%goi; + return $key . ': ' . $val . "\n"; + } elsif (/^(references|in-reply-to):\s+(.*)/oi) { + local($key,$val) = ($1,$2); + $val =~ s%<([^>]+)>%<$1>%goi; + return $key . ': ' . $val . "\n"; + } else { + $string =~ s/Back to the search interface

\n}; + +&ReadParse(*input); + +if (!$input{'id'}) { + print "No input given\n"; + print &foot; exit; +} +$input{'id'} =~ s/^$//; +$input{'id'} =~ s/@.*// if $shortid; + +if ($input{'db'} eq 'mid' || $input{'db'} eq 'irt') { + $database = $input{'db'}; +} + +&get_id($input{'id'}, $input{'db'});