#!/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