#!/bin/bash
#
###########################################################################
#                                                                         #
# callbook                                                                #
#                                                                         #
# Diese Datei dient zum Abfragen der CB-PR-Userdatenbank von              #
# http://www.callbook.de.vu                                               #
#                                                                         #
# Copyright (C) 2004-2005 Andreas Stempfhuber <andi@afulinux.de>          #
#                                                                         #
# This program is free software; you can redistribute it and/or modify    #
# it under the terms of the GNU General Public License as published by    #
# the Free Software Foundation; either version 2 of the License, or       #
# (at your option) any later version.                                     #
#                                                                         #
# This program is distributed in the hope that it will be useful,         #
# but WITHOUT ANY WARRANTY; without even the implied warranty of          #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           #
# GNU General Public License for more details.                            #
#                                                                         #
# You should have received a copy of the GNU General Public License       #
# along with this program; if not, write to the Free Software Foundation, #
# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.          #
#                                                                         #
###########################################################################

datei="callbook.txt"	# CB-PR-Userdatenbank
lz=12			# Formatierung (Anzahl Zeichen der 1. Ausgabespalte)
tnn=1			# bei TNN auf 1 setzen
tr="^-----"		# Trennlinie

# -----ab-hier-nichts-verndern-----

function version ()
{
	echo
	echo "Callbook v 0.1.1   (C) 09.01.2005 Andreas Stempfhuber AS1GBF <andi@afulinux.de>"
	echo
}

function startup ()
{
	if [ ! -f "$datei" ]; then
		echo "Rufzeichendatenbank wurde nicht gefunden, bitte Sysop informieren."
		exit 1
	fi
}

function help ()
{
	echo
	echo "Beim Aufruf kann jeder beliebige Suchbegriff angegeben werden, z.B. Rufzeichen,"
	echo "Name oder Email-Adresse oder auch nur Teile davon."
}

function cmdline ()
{
	local l=$@

	if [ "$tnn" = "1" ]; then
		call=${l##* }
		cmdline=${l% *}
		[ "$cmdline" = "$call" ] && cmdline=""

		call=${call%-*}	# call ohne SSID
		[ -z "$cmdline" ] && cmdline=$call
	else
		call=""
		cmdline=$l
	fi
}


# main
version
startup
cmdline $@

# wenn kein Suchbegriff angegeben, Hilfe ausgeben (wird bei TNN nie zutreffen)
[ -z "$cmdline" ] && help && exit

# wir holen uns den Eintrag mit dem Suchbegriff aus der CB-PR-Userdatenbank
line="`grep -A 1 \"$tr\" $datei | grep -v \"$tr\" | awk '{ l++; if (l>='2') print $0 }' | grep -i -- \"$cmdline\" | sed -e 's/<br>/ /g' | recode -f IBM-PC`"

if [ "$line" ]; then	# Suchbegriff wurde gefunden
	# Spaltenbezeichnungen holen
	first="`grep -A 1 \"$tr\" $datei | grep -v \"$tr\" | awk '{ l++; if (l=='1') { print $0; exit } }' | recode -f IBM-PC`"
	t=1
	feld="x"

	while [ "$feld" ]; do	# und Eintrag ausgeben
		let t++	
		feld="`echo $first | cut -d '|' -f $t | sed -e 's# http://##g'`"
		data="`echo $line | cut -d '|' -f $t | sed -e 's/ $//g'`"
		[ "$data" ] && [ "$feld" ] && printf "%-${lz}s:$data\n" "$feld"
	done

	echo
	echo "Die Daten basieren auf http://www.callbook.de.vu"

	# wenn bei TNN kein Suchbegriff angegeben wurde, Hilfe mit ausgeben
	[ "$call" = "$cmdline" ] && help

elif [ "$call" = "$cmdline" ]; then
	echo "Leider wurden keine Daten zu deinem Rufzeichen $call gefunden."
	echo "Bitte trage dich unter http://www.callbook.de.vu ein."

	help
else
	echo "Leider nichts gefunden :-("
fi
