diff --git a/fedi2html.sh b/fedi2html.sh
index d2ac55b..e98cea5 100755
--- a/fedi2html.sh
+++ b/fedi2html.sh
@@ -145,6 +145,13 @@ media_attachments() {
}
+# Pass a post’s context JSON along stdin; out comes the response_data in JSON.
+# fetch_post_context $url | context_to_responses
+context_to_responses() {
+ jq -cr '.descendants[] |= sort_by(.created_at)'
+}
+
+
# Make a request to the /api/v1/statuses/:id/$request API endpoint.
# statuses_api_request $post_url $request
statuses_api_request() {
@@ -228,3 +235,34 @@ env_subst() {
}
+usage() {
+ echo "usage: $(basename "$0") POST_URL"
+ echo
+ 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
+ echo "It works with posts from any server that supports Mastodon’s API,"
+ echo "including Pleroma, Akkoma, Glitch, etc."
+ echo
+ echo "Notably, it supports post-atachments and custom-emoji. Keep in mind"
+ 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 "(or something like it) to fetch even these foreign files."
+}
+
+
+URL="$1"
+
+if test -z "$URL"; then
+ usage 1>&2
+ exit 2
+elif test "$URL" = "-h" -o "$URL" = "--help"; then
+ usage
+ exit 0
+fi
+
+
+POST="$(fetch_post "$URL")"
+RESPONSES="$(fetch_post_context "$URL" | context_to_responses)"
+render_post "$POST" "$RESPONSES" 0
+