#!/bin/bash
#
# Script to find Quake2 servers using qstat
# Author: Jason Weiss <jweiss@sprintmail.com>
# Note: qstat can be found at http://www.activesw.com/people/steve/qstat.html

clear

if [ -f ~/.q2servers.db -a ~/.q2servers.db -nt /var/run/ppp0.pid ]
then
echo Using old server list in ~/.q2servers.db
else
rm ~/.q2servers.db >& /dev/null
echo Getting list of servers from web-sites...

echo '	http://www.aphrodisiac.net/quake2/...'
lynx -dump http://www.aphrodisiac.net/quake2/ | grep \* | sed s/\*//g | \
awk '{ print $1 }' > /tmp/q2servers.$$

echo '	http://www.telefragged.com/server_listing/quake2/...'
lynx -dump http://www.telefragged.com/server_listing/quake2/ | \
awk '{ print $1 }' >> /tmp/q2servers.$$

echo '	http://www.gameaholic.com/servers/qspy-quake2...'
lynx -source http://www.gameaholic.com/servers/qspy-quake2 | \
grep http:// | cut -f4 -d\> | cut -f1 -d\< >> /tmp/q2servers.$$

echo '	http://asp.planetquake.com/q2servers/q2gamespy.txt...'
lynx -dump http://asp.planetquake.com/q2servers/q2gamespy.txt \
>> /tmp/q2servers.$$

awk '{ print "Q2 " $1 }' /tmp/q2servers.$$ | sort | uniq > ~/.q2servers.db
rm /tmp/q2servers.$$
echo
fi

echo Querying servers...
qstat -nf -ne -P -R -u -maxsimultaneous 8 -f ~/.q2servers.db 2> /dev/null \
| sed s/'Q2  '/\
--------------------------------------------------------------------------------\
/g | less -iMs
