stream_lichess.sh: read initial FEN for chess960, show white vs black name - chess-puzzles - chess puzzle book generator
(HTM) git clone git://git.codemadness.org/chess-puzzles
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 4f6db6f748b3760f1f991e46bbb37246d201d4c8
(DIR) parent aa7a4692fb14c40930fde876585a70a88b76b3e2
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Thu, 21 Dec 2023 22:45:17 +0100
stream_lichess.sh: read initial FEN for chess960, show white vs black name
Diffstat:
M TODO | 3 ---
M docs/stream_lichess.sh | 22 ++++++++++++++++++++--
2 files changed, 20 insertions(+), 5 deletions(-)
---
(DIR) diff --git a/TODO b/TODO
@@ -1,6 +1,3 @@
-- stream_lichess.sh: lichess API: read FEN of start position, for chess 960
-chess variant.
-
- option for output for annotating moves in a human-like way (for screenreaders/espeak).
https://en.wikipedia.org/wiki/Portable_Game_Notation
PGN:
(DIR) diff --git a/docs/stream_lichess.sh b/docs/stream_lichess.sh
@@ -10,13 +10,17 @@ if [ "$1" = "" ]; then
fi
gameid="$1"
-token="API token here"
+token="" # API token here.
url="https://lichess.org/api/board/game/stream/$gameid"
-# start position
+# start position of classical chess.
fen="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
+white="Anonymous"
+black="Anonymous"
+firstline=1
+
# -N disables cURL buffering, each line is streamed as JSON.
curl \
-f \
@@ -25,9 +29,23 @@ curl \
-H "Authorization: Bearer $token" \
-H 'Accept: application/x-ndjson' "$url" | \
while read -r json; do
+ if [ "$firstline" = "1" ]; then
+ str=$(printf '%s' "$json" | jaq '$1 == ".initialFen" { print $3; }')
+ test "$str" != "" && fen="$str" # override
+
+ str=$(printf '%s' "$json" | jaq '$1 == ".white.name" { print $3; }')
+ test "$str" != "" && white="$str" # override
+
+ str=$(printf '%s' "$json" | jaq '$1 == ".black.name" { print $3; }')
+ test "$str" != "" && black="$str" # override
+
+ firstline="0"
+ fi
+
moves=$(printf '%s' "$json" | jaq '$1 == ".moves" { print $3; }')
test "$moves" = "" && continue
clear
+ printf '%s vs %s\n\n' "$white" "$black"
./fen -o tty "$fen" "$moves"
done