From 10efe53e6de5c91229f7c0abb3d279f3db2c31d4 Mon Sep 17 00:00:00 2001 From: "Elizabeth (Lizzy) Hunt" Date: Mon, 20 Nov 2023 12:53:25 -0700 Subject: [PATCH] create bot docs --- front/src/routes/man_pages.jsx | 60 +++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/front/src/routes/man_pages.jsx b/front/src/routes/man_pages.jsx index f904394..40c5af0 100644 --- a/front/src/routes/man_pages.jsx +++ b/front/src/routes/man_pages.jsx @@ -1,3 +1,18 @@ +const botMoveRequestSchema = `GameUpdate { + bot_id: number; + bot_name: string; + game_id: number; + fen: string; + turn: string; + bot_turn: boolean; + last_move: string; + status: string; +}`; + +const botMoveResponseSchema = `BotMoveResponse { + attempted_message: string; +}`; + export const ManPages = () => { return (
@@ -69,7 +84,6 @@ export const ManPages = () => { In the "Previous Games" viewer, use h/l or left/right to view the previous/next move. -
  • In a game board use "f" to flip the board.
  • In the "Previous Games" viewer, use "m" to show the game's move @@ -86,6 +100,50 @@ export const ManPages = () => {
  • +
    +
    + BOTS & WEBHOOKS +
    +
    +
      +
    • Goto /bots and create a bot, taking note of the new bot's token (keep this private!).
    • +
    • Highly recommend + ngrok + for testing.
    • +
    • A "public" bot can be seen and played against by any player.
    • +
    • A "private" bot can be seen and played against by the player which created it.
    • +
    • + A bot's "webhook" is the route that CheSSH will POST a + JSON message to upon an update in a game it is playing. Upon a move, + it will be immediately POST'd to with a single GameUpdate object, but + when using the "redrive" feature (mostly for testing), an array of game that + correspond to games in which it is still the bot's turn: +
      {botMoveRequestSchema}
      +
    • +
    • + After receiving the update, the bot must "respond" with its attempted move, + with the plain token (no "Bearer" prefix) in its "Authorization" header, and + a body of (given "attempted_move" is the from space appended to the destination space i.e. + "e2e4"): +
      {botMoveResponseSchema}
      +
    • +
    • + + Here + + is an example of how this logic should play out for a simple bot. +
    • +
    +
    +
    ); };