From 4625d4e25b5ebe98acc2bad69bed95dccd6037fd Mon Sep 17 00:00:00 2001 From: Markus Koch Date: Tue, 2 Nov 2021 16:45:22 +0100 Subject: [PATCH] scripts: Modify map script to download and convert all available maps --- scripts/convert_all.sh | 62 +++++++++++++++++++++++++++++++++++++++ scripts/convert_latest.sh | 53 --------------------------------- 2 files changed, 62 insertions(+), 53 deletions(-) create mode 100755 scripts/convert_all.sh delete mode 100755 scripts/convert_latest.sh diff --git a/scripts/convert_all.sh b/scripts/convert_all.sh new file mode 100755 index 0000000..cf566ad --- /dev/null +++ b/scripts/convert_all.sh @@ -0,0 +1,62 @@ +#!/bin/bash + + +OUTDIR=`pwd`/tiles +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" + +mode="$1" + +if [ "$mode" == "legacy" ]; then + MAPSERVER='http://old-maps.li-fo.de/' + FILES=`curl "$MAPSERVER" | sed -n 's/.*\(world-[0-9\-]\+\.png\).*/\1/p'` +fi + +if [[ "$FILES" == "" ]]; then + echo "ERROR: Could not detect latest map file." + exit +fi + +for FILE in $FILES; do + REMOTE_URL="$MAPSERVER/$FILE" + LOCAL_FILE="`echo $FILE | sed 's#.*/##'`" + LOCAL_URL="$OUTDIR/$LOCAL_FILE" + MAPNAME=`echo $LOCAL_URL | sed 's/.*\/\([^\.]\+\).*/\1/g'` + + echo "# Downloading and converting $MAPNAME." + + mkdir -p $OUTDIR + cd $OUTDIR + + if [ ! -d "$OUTDIR/$MAPNAME" ]; then + echo "Downloading latest map file..." + curl -C - "$REMOTE_URL" -o "$LOCAL_URL" + + if [ "$mode" == "legacy" ]; then + echo "Patching map (for map exports prior to 2019-07-09)..." + OSIZE=`file $LOCAL_URL | sed -n 's/.*PNG image data, \([0-9]\+\).*/\1/p'` + NSIZE=$(($OSIZE+1008)) + RESIZED_URL="$LOCAL_URL-temp.png" + convert $LOCAL_URL -gravity SouthEast -extent ${NSIZE}x${NSIZE} $RESIZED_URL + rm $LOCAL_URL + mv $RESIZED_URL $LOCAL_URL + fi + + echo "Resizing map..." + OSIZE=`file $LOCAL_URL | sed -n 's/.*PNG image data, \([0-9]\+\).*/\1/p'` + NSIZE=$((2**6 * 256)) + RESIZED_URL="$LOCAL_URL-resized.png" + convert $LOCAL_URL -extent ${NSIZE}x${NSIZE} -gravity NorthWest $RESIZED_URL + + echo "Converting map..." + $SCRIPT_DIR/convert_maps.sh $MAPNAME $RESIZED_URL + + echo "Cleaning up..." + rm $RESIZED_URL + rm $LOCAL_URL + else + echo "Skipping $MAPNAME." + fi +done diff --git a/scripts/convert_latest.sh b/scripts/convert_latest.sh deleted file mode 100755 index 8e9bd42..0000000 --- a/scripts/convert_latest.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -MAPSERVER='https://lifomaps.de' -TILESERVER="notsyncing.net:/srv/http/maps.linux-forks.de/tiles/" -OUTDIR=`pwd`/out -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" - -FILE=`curl "$MAPSERVER" | sed -n 's/.*>\(world-[0-9\-]\+\.png\).*/\1/p' | tail -n 1` - -if [[ "$FILE" == "" ]]; then - echo "ERROR: Could not detect latest map file." - exit -fi - -if [[ -f "$OUTDIR/uploaded" ]]; then - echo "INFO: Latest map has already been converted." - exit -fi - -REMOTE_URL="$MAPSERVER/$FILE" -LOCAL_URL="$OUTDIR/$FILE" -MAPNAME=`echo $LOCAL_URL | sed 's/.*\/\([^\.]\+\).*/\1/g'` - -echo "# Downloading and converting $MAPNAME." - -mkdir -p $OUTDIR -cd $OUTDIR - -if [ ! -f "$OUTDIR/converted" ]; then - echo "Downloading latest map file..." - curl -C - "$REMOTE_URL" -o "$LOCAL_URL" - - echo "Resizing map..." - OSIZE=`file $LOCAL_URL | sed -n 's/.*PNG image data, \([0-9]\+\).*/\1/p'` - NSIZE=$((2**6 * 256)) - RESIZED_URL="$LOCAL_URL-resized.png" - convert $LOCAL_URL -extent ${NSIZE}x${NSIZE} -gravity NorthWest $RESIZED_URL - - echo "Converting map..." - $SCRIPT_DIR/convert_maps.sh $MAPNAME $RESIZED_URL - - echo "" > $OUTDIR/converted -fi - -echo "Uploading files..." - -scp -r $OUTDIR/$MAPNAME $TILESERVER -echo "" > $OUTDIR/uploaded - -echo "Cleaning up..." -read -rm $RESIZED_URL -rm $LOCAL_URL