From 90a47bbb8ba5fa52192864513aa229a2a8b26620 Mon Sep 17 00:00:00 2001 From: Nikolay Date: Tue, 30 Sep 2025 17:53:17 +0300 Subject: [PATCH 1/2] =?UTF-8?q?api.php=20=E2=80=94=20`translateBoards()`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/api.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/inc/api.php b/inc/api.php index 50b812a5..4127576a 100644 --- a/inc/api.php +++ b/inc/api.php @@ -208,4 +208,24 @@ class Api { return $apiCatalog; } + + public function translateBoard(Board $board) { + $apiBoard = []; + + foreach ($boards as $board) { + $apiBoard['uri'] = $board['uri']; + $apiBoard['title'] = $board['title']; + $apiBoard['subtitle'] = $board['subtitle']; + } + + return $apiBoard; + } + + public function translateBoards($boards) { + $apiBoards = []; + foreach ($boards as $board) { + $apiBoards[] = $this->translateBoard($board); + } + return $apiBoards; + } } From 632293f927256601aaea5e919567cd4eb555bc89 Mon Sep 17 00:00:00 2001 From: Nikolay Date: Tue, 30 Sep 2025 17:54:58 +0300 Subject: [PATCH 2/2] Call JSON API's `translateBoards()` in `setupBoard()` function --- inc/functions.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/inc/functions.php b/inc/functions.php index 43a2b3fa..886e960e 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -432,6 +432,18 @@ function setupBoard($array) { if (!file_exists($board['dir'] . $config['dir']['res'])) @mkdir($board['dir'] . $config['dir']['res'], 0777) or error("Couldn't create " . $board['dir'] . $config['dir']['img'] . ". Check permissions.", true); + + // json api + if ($config['api']['enabled'] && !$mod) { + $api = new Api( + $config['show_filename'], + $config['hide_email'], + $config['country_flags'] + ); + $json = json_encode($api->translateBoards(listBoards())); + $jsonFilename = 'boards.json'; + file_write($jsonFilename, $json); + } } function openBoard($uri) {