#!/bin/bash

SURL="https://pub.3gteam.hu/bot2ip"
OF="/chroot/proxyd/etc/nginx/conf.d/geo-ip2bot.conf"
BF="/chroot/proxyd/etc/nginx/conf.d/is_bot.conf"

GEO_NAMES=""

function gen_geo()
{
	name=$1

	GEO_NAMES="$GEO_NAMES $name"

	URL=${SURL}/list-${name}.txt

	curl -sL "$URL" | awk -v name="${name}" '
		BEGIN {
			print "\n\t# " name
		}

		# Lines from list
		{
			# Clean whitespace
			gsub(/^[ \t]+|[ \t]+$/, "")

			# Filter empty lines and comments
			if ($0 != "" && $0 !~ /^#/) {
				print "\t" $0 " \"" name "\";"
			}
		}
	' >> "$OF"

}

if ! [ -f "$BF" ]; then
	exit 0
fi

echo "# IP addresses to bot names" > $OF
echo >> $OF
echo 'geo $ip2bot {' >> $OF
echo "	default \"\";" >> $OF

gen_geo googlebot
gen_geo bingbot
gen_geo duckduckbot
gen_geo applebot

#gen_geo claudebot

gen_geo facebookbot

gen_geo gptbot
#gen_geo gptbot-search
#gen_geo gptbot-user

gen_geo perplexitybot
#gen_geo perplexitybot-user

echo "}" >>$OF

echo >>$OF

echo 'map $bot_name $ip2botcheck {' >> $OF
echo "	default 0;" >> $OF
for bn in $GEO_NAMES; do
	echo "	\"${bn}\" 1;" >>$OF
done
echo '}' >>$OF
