Add -R and -I args; use getopts
Adds -R (no responses) and -I (reverse-order) parameters, thanks to the use of getopts (rather than just getting $1 etc.)
This commit is contained in:
parent
6d4398f8a7
commit
9f69c3d54b
45
fedi2html.sh
45
fedi2html.sh
|
@ -73,7 +73,9 @@ render_post() {
|
||||||
local POST_DATE="$(echo "$post_data" | jq -r .created_at)"
|
local POST_DATE="$(echo "$post_data" | jq -r .created_at)"
|
||||||
local POST_CONTENT="$(echo "$post_data" | jq -r .content | replace_emojis "$post_data")"
|
local POST_CONTENT="$(echo "$post_data" | jq -r .content | replace_emojis "$post_data")"
|
||||||
local POST_ATTACHMENTS="$(media_attachments "$post_data")"
|
local POST_ATTACHMENTS="$(media_attachments "$post_data")"
|
||||||
|
if test -z "$NO_RESPONSES"; then
|
||||||
local POST_RESPONSES="$(render_responses "$post_data" "$responses_data" "$POST_TREE_LEVEL")"
|
local POST_RESPONSES="$(render_responses "$post_data" "$responses_data" "$POST_TREE_LEVEL")"
|
||||||
|
fi
|
||||||
env_subst "$POST_TEMPLATE"
|
env_subst "$POST_TEMPLATE"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -150,7 +152,7 @@ media_attachments() {
|
||||||
context_to_responses() {
|
context_to_responses() {
|
||||||
jq '.descendants' \
|
jq '.descendants' \
|
||||||
| jq 'sort_by(.created_at)' \
|
| jq 'sort_by(.created_at)' \
|
||||||
| jq 'reverse' \
|
| maybe_jq_reverse \
|
||||||
| jq -cr '.[]'
|
| jq -cr '.[]'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,8 +240,23 @@ env_subst() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Based on the environment variable $REVERSE_ORDER (whether or not user provided
|
||||||
|
# the -I flag), reverse the JSON array over stdin.
|
||||||
|
# This is used to enable/disable reverse-chronological order of posts.
|
||||||
|
# fetch_context $url | jq '.descendants' | maybe_jq_reverse
|
||||||
|
maybe_jq_reverse() {
|
||||||
|
local input="$(cat)"
|
||||||
|
if test -n "$REVERSE_ORDER"; then
|
||||||
|
echo "$input" \
|
||||||
|
| jq 'reverse'
|
||||||
|
else
|
||||||
|
echo "$input"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "usage: $(basename "$0") POST_URL"
|
echo "usage: $(basename "$0") [-h] [-IR] POST_URL"
|
||||||
echo
|
echo
|
||||||
echo "$(basename "$0") does exactly what it says on the tin: It formats"
|
echo "$(basename "$0") does exactly what it says on the tin: It formats"
|
||||||
echo "a fediverse post (and its replies) into simple-and-embeddable HTML."
|
echo "a fediverse post (and its replies) into simple-and-embeddable HTML."
|
||||||
|
@ -251,17 +268,35 @@ usage() {
|
||||||
echo "that images are all fetched from remote sources. It is recommended,"
|
echo "that images are all fetched from remote sources. It is recommended,"
|
||||||
echo "if privacy or total archival, is a concern, to use wget(1)’s --mirror"
|
echo "if privacy or total archival, is a concern, to use wget(1)’s --mirror"
|
||||||
echo "(or something like it) to fetch even these foreign files."
|
echo "(or something like it) to fetch even these foreign files."
|
||||||
|
echo
|
||||||
|
echo " -h print this message and exit"
|
||||||
|
echo " -I display posts in reverse-chronological order"
|
||||||
|
echo " -R do not recursively display posts’ responses"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while getopts 'hRI' arg; do
|
||||||
|
case $arg in
|
||||||
|
h)
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
I)
|
||||||
|
REVERSE_ORDER="1"
|
||||||
|
;;
|
||||||
|
R)
|
||||||
|
NO_RESPONSES="1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
URL="$1"
|
URL="$1"
|
||||||
|
|
||||||
if test -z "$URL"; then
|
if test -z "$URL"; then
|
||||||
usage 1>&2
|
usage 1>&2
|
||||||
exit 2
|
exit 2
|
||||||
elif test "$URL" = "-h" -o "$URL" = "--help"; then
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
Ŝarĝante…
Reference in New Issue