add a script to stream a lichess game using the FEN tty output - 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 d3c8592f3761018e4fac3ba37503f432cb1dda1f
(DIR) parent 528629a967639e013c56fee9c293b7b87376d15e
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Thu, 21 Dec 2023 00:24:03 +0100
add a script to stream a lichess game using the FEN tty output
Diffstat:
A docs/stream_lichess.sh | 33 +++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/docs/stream_lichess.sh b/docs/stream_lichess.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+# Stream a lichess game, by game id.
+# Requires permissions to the board / game.
+# NOTE that it updates after a move.
+# Dependencies: curl, json2tsv (could be replaced by jq).
+
+if [ "$1" = "" ]; then
+ echo "Usage: $0 <gameid>" >&2
+ exit 1
+fi
+
+gameid="$1"
+token="API token here"
+
+url="https://lichess.org/api/board/game/stream/$gameid"
+
+# start position
+fen="rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"
+
+# -N disables cURL buffering, each line is streamed as JSON.
+curl \
+-f \
+-s \
+-N \
+-H "Authorization: Bearer $token" \
+-H 'Accept: application/x-ndjson' "$url" | \
+while read -r json; do
+ moves=$(printf '%s' "$json" | jaq '$1 == ".moves" { print $3; }')
+ test "$moves" = "" && continue
+
+ clear
+ ./fen -o tty "$fen" "$moves"
+done