Last active 1747054194

script to print one post in snac, based on URL returned by search

snacPrintPost.sh Raw
1#!/usr/bin/env bash
2
3if [ -z "$1" ]; then
4 echo "Usage: $0 <URL>"
5 exit 1
6fi
7
8if [[ -z "$SNAC_BASEDIR" ]]; then
9 echo "Error: SNAC_BASEDIR must be set." >&2
10 exit 1
11fi
12
13URL="$1"
14ID="${URL##*/p/}"
15PREFIX="${ID:0:2}"
16FILE_PATH="$SNAC_BASEDIR/object/$PREFIX/$ID.json"
17
18if [ ! -f "$FILE_PATH" ]; then
19 echo "Post - File not found: $FILE_PATH"
20 exit 2
21fi
22
23# Extract author and content
24AUTHOR=$(jq -r '.attributedTo' "$FILE_PATH")
25CONTENT=$(jq -r '.content' "$FILE_PATH" \
26 | sed -e 's/<[bB][rR][[:space:]]*\/?>/\n/g' \
27 -e 's/<[^>]*>//g')
28
29# Print output
30echo "$CONTENT"
31echo
32echo "Author: $AUTHOR"
33echo "URL: $URL"