hugo/gdrive/extract.sh

41 lines
1003 B
Bash

set -e
f="$(ls ./*.zip | head -n 1)"
echo f=$f
d="$(date -r "$f" +%Y-%m-%d)_$(basename "$f" | sed 's/.zip$//' | sed 's/[^a-zA-Z0-9]/_/g')"
echo d=$d
rm -rf "$d"
mkdir -p "$d"
7z x -o"$d" "$f"
cat "$d"/*.html \
| sed 's/.*<body/<body/' \
| sed 's/<\/body>.*/<\/body>/' \
>> "$d"/index.html
tags=($(cat "$d"/index.html | sed '/^$/!{s/<[^>]*>//g;p;}' | grep -o '#[a-zA-Z0-9]*' | grep '[a-zA-Z]' | sed 's/^#//' | sort -u))
printf '
---
title: "%s"
date: %s
draft: true
tags: [%s]
---
' \
"$(basename "$f" | sed 's/.zip$//' | sed 's/"/\\"/g')" \
"$(date -u +%Y-%m-%dT%H:%M:%S)-00:00" \
"$(first=false; for tag in "${tags[@]}"; do true; if $first; then echo -n ","; fi; first=true; echo -n "$tag"; done)" \
| grep . > "$d/index.md"
cat "$d"/index.html >> "$d"/index.md
rm "$d"/index.html
echo >> "$d"/index.md
rm "$d"/*.html
for ext in png jpg jpeg gif JPG; do find "$d" -name "*.$ext"; done | while read -r line; do
convert "$line" -ordered-dither o8x8,8,8,4 "$line.2"
mv "$line.2" "$line"
done