From 4a40d89783590f11a06841a0bbf6686b439e5b47 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 13 May 2024 01:12:05 +0100 Subject: [PATCH] Add script to warmup og --- package.json | 1 + scripts/warm-og.sh | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100755 scripts/warm-og.sh diff --git a/package.json b/package.json index 6a6bf0651..e92030f2d 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "best-practice-dirs": "node scripts/best-practice-dirs.cjs", "best-practice-content": "node scripts/best-practice-content.cjs", "generate:og": "node ./scripts/generate-og-images.mjs", + "warm:og": "sh ./scripts/warm-og.sh https://roadmap.sh/sitemap-0.xml", "compress:images": "tsx ./scripts/compress-images.ts", "test:e2e": "playwright test" }, diff --git a/scripts/warm-og.sh b/scripts/warm-og.sh new file mode 100755 index 000000000..de8f98f69 --- /dev/null +++ b/scripts/warm-og.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# Usage: warm-og.sh +# Example: warm-og.sh https://www.example.com/sitemap.xml + +# Check if sitemap url is provided +if [ -z "$1" ]; then + echo "Please provide sitemap URL" >&2 + exit 1 +fi + +# Get all URLs from sitemap +urls=$(curl -s "$1" | grep -o "[^<]*" | sed 's#\(.*\)#\1#') + +failed_urls=() + +# Warm up URLs +for url in $urls; do + # Fetch the og:image URL from the meta tags + og_image_url=$(curl -s "$url" | grep -o " /dev/null; then + failed_urls+=("$og_image_url") + fi + else + echo "No og:image found for $url" + fi +done + +# Print failed URLs +if [ ${#failed_urls[@]} -gt 0 ]; then + echo "Failed to warm up the following URLs:" >&2 + for failed_url in "${failed_urls[@]}"; do + echo "$failed_url" >&2 + done +fi