2023-12-14 18:44:35 +03:30
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -o errexit
|
|
|
|
set -o pipefail
|
|
|
|
set -o nounset
|
|
|
|
|
|
|
|
# Set magic variables for current file & dir
|
|
|
|
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
__file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
|
|
|
|
__base="$(basename ${__file} .sh)"
|
|
|
|
|
|
|
|
|
|
|
|
DATADIR=${__dir}/data
|
|
|
|
|
|
|
|
compile_dat () {
|
|
|
|
local TMPDIR=$(mktemp -d)
|
|
|
|
|
|
|
|
trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; rm -rf $TMPDIR; trap ERR; exit 1' ERR
|
|
|
|
|
|
|
|
local GEOSITE=${GOPATH}/src/github.com/v2ray/domain-list-community
|
|
|
|
if [[ -d ${GEOSITE} ]]; then
|
|
|
|
cd ${GEOSITE} && git pull
|
|
|
|
else
|
|
|
|
mkdir -p ${GEOSITE}
|
|
|
|
cd ${GEOSITE} && git clone https://github.com/v2ray/domain-list-community.git .
|
|
|
|
fi
|
|
|
|
go run main.go
|
|
|
|
|
|
|
|
if [[ -e dlc.dat ]]; then
|
|
|
|
rm -f $DATADIR/geosite.dat
|
|
|
|
mv dlc.dat $DATADIR/geosite.dat
|
|
|
|
echo "----------> geosite.dat updated."
|
|
|
|
else
|
|
|
|
echo "----------> geosite.dat failed to update."
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [[ ! -x $GOPATH/bin/geoip ]]; then
|
|
|
|
go get -v -u github.com/v2ray/geoip
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $TMPDIR
|
|
|
|
curl -L -O http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip
|
|
|
|
unzip -q GeoLite2-Country-CSV.zip
|
|
|
|
mkdir geoip && find . -name '*.csv' -exec mv -t ./geoip {} +
|
|
|
|
$GOPATH/bin/geoip \
|
|
|
|
--country=./geoip/GeoLite2-Country-Locations-en.csv \
|
|
|
|
--ipv4=./geoip/GeoLite2-Country-Blocks-IPv4.csv \
|
|
|
|
--ipv6=./geoip/GeoLite2-Country-Blocks-IPv6.csv
|
|
|
|
|
|
|
|
if [[ -e geoip.dat ]]; then
|
|
|
|
rm -f $DATADIR/geoip.dat
|
|
|
|
mv ./geoip.dat $DATADIR/geoip.dat
|
|
|
|
echo "----------> geoip.dat updated."
|
|
|
|
else
|
|
|
|
echo "----------> geoip.dat failed to update."
|
|
|
|
fi
|
|
|
|
trap ERR
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
download_dat () {
|
2025-01-03 09:45:37 +08:00
|
|
|
wget -qO - https://api.github.com/repos/dyhkwong/v2ray-geoip/releases/latest \
|
|
|
|
| jq -r .assets[].browser_download_url | grep geoip.dat \
|
2023-12-14 18:44:35 +03:30
|
|
|
| wget -i - -O $DATADIR/geoip.dat
|
|
|
|
|
|
|
|
wget -qO - https://api.github.com/repos/v2ray/domain-list-community/releases/latest \
|
|
|
|
| grep browser_download_url | cut -d '"' -f 4 \
|
|
|
|
| wget -i - -O $DATADIR/geosite.dat
|
|
|
|
}
|
|
|
|
|
|
|
|
ACTION="${1:-}"
|
|
|
|
if [[ -z $ACTION ]]; then
|
|
|
|
ACTION=download
|
|
|
|
fi
|
|
|
|
|
|
|
|
case $ACTION in
|
|
|
|
"download") download_dat;;
|
|
|
|
"compile") compile_dat;;
|
|
|
|
esac
|