#!/bin/ksh -
#
# (c) SPDsoft December 12, 1995
# Udated Tue Mar 19 19:22:02 MET 1996
# Udated Sat Mar 1 02:09:09 MET 1997
# Udated Tue Jul 29 21:08:57 METDST 1997
# Udated Mon Nov 15 19:39:08 MET 1999
#
umask 022
PATH=/bin:/usr/bin
TEMP=/tmp/`basename $0`.$$
TEMP_D=/tmp/`basename $0`_d.$$
trap "rm -f $TEMP $TEMP_D; exit" 0 1 2 3 15
echo Content-type: text/html
echo
if [ "$QUERY_STRING" = "" ]; then
cat << EOM
Agenda de la Universidad de Zaragoza
Agenda de la
Universidad de Zaragoza
En esta página puedes encontrar los teléfonos de todo el
mundo de la Universidad de Zaragoza. (¡3046 teléfonos!)
#include <std_disclaimer.h>
Esta página ha sido elaborada a partir de los datos suministrados
por el Centro de Cálculo al público en general.
No se garantiza la exactitud de los datos; para mas información
consulte el servicio análogo ofrecido por el CCUZ
Problemas con el formulario? e-mail to
spd@www.cps.unizar.es
Por cierto,
si deseas la version original gzipeada de la base de datos,
aquí la tienes.
EOM
else
cat << EOM
Resultado
EOM
error=false
IFS="&"
a=`cat /pub/www/whois/counter`
let a=a+1
echo $a > /pub/www/whois/counter
#
# default query
#
what="nombre"
crit="contiene"
#
# actual query
#
#for field in $QUERY_STRING
#do
# fname=`echo $field | awk -F= '{print $1}'`
# fvalue=`echo $field | sed -e "s/${fname}=//" | tr '+' ' ' | /users/server/www/usr/aux-bin/htd `
#
# case $fname in
#
# crit)
# crit=$fvalue
# ;;
#
# name)
# name=$fvalue
# if [ "$name" = "" ]
# then
# echo 'Por favor, introduzca un nombre
'
# error=true
# fi
# ;;
#
# what)
# what=$fvalue
# ;;
#
# *)
# echo "Error: La URL no es correcta ( $fname )
"
# error=true
# ;;
#
# esac
#
#done
CGIPARSE="/users/server/www/usr/aux-bin/cgiparse"
for var in crit name what
do
value="`$CGIPARSE -1 -value $var 2>/dev/null`"
case $? in
0)
value=`echo "$value" | tr -d '[\001-\037]"\`#;\177'`
eval "$var=\"$value\""
;;
*)
error=true
echo "Error: Incorrect URL ( $var )
"
esac
done
if [ "$name" = "" ]
then
echo 'Type a name, please
'
error=true
fi
if ( ( $error ) )
then
echo
echo 'Lo siento, los datos no son correctos
'
echo 'Por favor, inténtelo de nuevo...
'
echo
else
echo 'Resultado:
'
echo '
'
cat << EOM
Los números de 4 cifras son extensiones, el teléfono
principal de la Universidad de Zaragoza es:
976 761000
El prefijo internacional es el 34, los numeros de 6 cifras
deben marcarse con el prefijo 976
Estos son los resultados de la búsqueda número
EOM
echo $a "desde el día 15 de Noviembre de 1999:
"
name=`echo "$name" | tr '[:lower:]' '[:upper:]' | tr '\361' '\321'`
case "$what" in
"tel"*)
case "$crit" in
"contiene")
search=".* .* .* .*$name"
;;
"es exactamente")
search=".* .* .* ${name}$"
;;
"empieza por"|*)
search=".* .* .* ${name}"
;;
esac
;;
"exten"*)
case "$crit" in
"contiene")
search=".* .* .*$name"
;;
"es exactamente")
search=".* .* ${name} "
;;
"empieza por"|*)
search=".* .* ${name}"
;;
esac
;;
"nombre"|*)
case "$crit" in
"contiene")
search=" .*$name"
;;
"es exactamente")
search=" \(.*[ ]1*\)*${name}[ ]"
;;
"empieza por"|*)
search=" \(.*[ ]1*\)*${name}"
;;
esac
;;
esac
rm -f $TEMP $TEMP_D
grep "$search" /pub/www/whois/Telefonos.txt 2>/dev/null | sort > $TEMP
lines=`wc -l $TEMP | awk '{print $1}'`
case "$lines" in
"0")
echo "Lo siento, no hay nadie que se ajuste a $name
"
;;
*)
echo "He encontrado $lines " \\c
if [ "$lines" = "1" ]
then
echo persona
else
echo personas
fi
echo "
"
awk -F' ' '{print $1}' $TEMP | uniq | tee $TEMP_D | \
/users/server/www/usr/aux-bin/tolower | \
sed -e 's/ Y / y /g' -e 's/De /de /g' -e 's/ E / y /g' | \
awk -F' ' '{printf ("- %s",$1,$1)}'
echo "
"
cat $TEMP_D | (
while read line
do
lineu=`echo "$line" | \
/users/server/www/usr/aux-bin/tolower | \
sed -e 's/ Y / y /g' -e 's/De /de /g' -e 's/ E / e /g' `
echo "
"
grep "^$line" $TEMP | \
/users/server/www/usr/aux-bin/tolower | \
awk -F' ' '{printf ("- %s: %s, %s",$2,$3,$4)}'
echo "
"
done
)
;;
esac
fi
cat << EOM
EOM
fi