#!/bin/sh
# Client for the SpellBinding game on gemini://spell.mywire.org:1966/spel?
# SPDX-FileCopyrightText: 2026 Sotiris Papatheodorou
# SPDX-License-Identifier: CC0-1.0
set -eu

get() {
	printf 'gemini://%s:%d/spel?%s\r\n' "$HOST" "$PORT" "$1" |
		openssl s_client -quiet -cert "$CRT" -key "$KEY" \
			"$HOST:$PORT" 2>/dev/null
}

postprocess() {
	awk '
		/^=>/ { sub("^=>[ \\t]*spel[ \\t]*", ""); $0 = $0 "\n" }
		/Word Masters/ { wm = 1; printf "\033[2m" }
		/^```/ && wm { printf "\033[m\n"; exit }
		/^```/ { printf "\n"; next }
		NR > 1 || /^[^2]/'
}

HOST='spell.mywire.org'
PORT='1966'
CERT="$HOME/.config/gemini/$HOST"
CRT="$CERT.crt"
KEY="$CERT.key"

if [ ! -f "$CRT" ] || [ ! -f "$KEY" ]
then
	printf 'Error reading certificate:\n%s\n%s\n' "$CRT" "$KEY"
	exit 1
fi

word=' '
while get "$word" | postprocess && printf 'word: ' && read -r word
do
	:
done
