mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2025-08-16 22:23:59 +02:00
Add script to warmup og
This commit is contained in:
@@ -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"
|
||||
},
|
||||
|
39
scripts/warm-og.sh
Executable file
39
scripts/warm-og.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Usage: warm-og.sh <sitemap-url>
|
||||
# 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 "<loc>[^<]*</loc>" | sed 's#<loc>\(.*\)</loc>#\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 "<meta property=\"og:image\" content=\"[^\"]*\"" | sed 's#<meta property="og:image" content="\([^"]*\)"#\1#')
|
||||
|
||||
# Warm up the og:image URL
|
||||
if [ -n "$og_image_url" ]; then
|
||||
echo "Warming up $og_image_url"
|
||||
if ! curl -s -I "$og_image_url" > /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
|
Reference in New Issue
Block a user