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; + } } 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) {