diff --git a/sitemap b/sitemap new file mode 100755 index 000000000..f06073570 --- /dev/null +++ b/sitemap @@ -0,0 +1,57 @@ +#!/usr/bin/env zsh +BLOCK_TIP_HEIGHT="$(curl -s https://mempool.space/electrs/mainnet/blocks/tip/height)" +BLOCK_HEIGHT="${BLOCK_TIP_HEIGHT}" +BLOCKS_PER_FILE=1000 + +FILE_TOTAL="$(($BLOCK_TIP_HEIGHT / $BLOCKS_PER_FILE))" +FILE_START="${FILE_TOTAL}" +FILE_STOP="$(($FILE_TOTAL - 10))" +FILE="${FILE_START}" + +echo "${BLOCK_TIP_HEIGHT} blocks" +echo "${BLOCKS_PER_FILE} blocks per sitemap" +echo "${FILE_TOTAL} total sitemaps" + +echo '' > sitemap.xml + +BLOCK_HASH=$(curl -s https://mempool.space/electrs/mainnet/block-height/${BLOCK_HEIGHT}) +BLOCK=$(curl -s https://mempool.space/electrs/mainnet/block/${BLOCK_HASH}) +BLOCK_TIMESTAMP=$(echo "${BLOCK}"|sed -e 's/.*timestamp.://' -e 's/,.*//') + +until [ "${FILE}" = "${FILE_STOP}" ];do + +SITEMAP_FILE="sitemap-${FILE}.xml" +SITEMAP_LASTMOD=$(date -r "${BLOCK_TIMESTAMP}" +"%Y-%m-%dT%H:%M:%SZ") +echo "generating ${SITEMAP_FILE} from block ${BLOCK_HEIGHT}" + +echo '' > "${SITEMAP_FILE}" + +BLOCK_STOP="$(($BLOCK_HEIGHT - ${BLOCKS_PER_FILE}))" +until [ "${BLOCK_HEIGHT}" = "${BLOCK_STOP}" ];do + + BLOCK_HASH=$(curl -s https://mempool.space/electrs/mainnet/block-height/${BLOCK_HEIGHT}) + BLOCK=$(curl -s https://mempool.space/electrs/mainnet/block/${BLOCK_HASH}) + BLOCK_TIMESTAMP=$(echo "${BLOCK}"|sed -e 's/.*timestamp.://' -e 's/,.*//') + BLOCK_LASTMOD=$(date -r "${BLOCK_TIMESTAMP}" +"%Y-%m-%dT%H:%M:%SZ") + + echo '' >> "${SITEMAP_FILE}" + echo "https://mempool.space/block/${BLOCK_HASH}" >> "${SITEMAP_FILE}" + echo "${BLOCK_LASTMOD}" >> "${SITEMAP_FILE}" + echo '' >> "${SITEMAP_FILE}" + + ((BLOCK_HEIGHT--)) +done + +echo '' >> "${SITEMAP_FILE}" +gzip "${SITEMAP_FILE}" + +echo '' >> sitemap.xml +echo "https://mempool.space/${SITEMAP_FILE}" >> sitemap.xml +echo "${SITEMAP_LASTMOD}" >> sitemap.xml +echo '' >> sitemap.xml + +((FILE--)) + +done + +echo '' >> sitemap.xml