diff --git a/status.php b/status.php index 7b326de9..b02a650b 100644 --- a/status.php +++ b/status.php @@ -3,11 +3,16 @@ require_once 'inc/functions.php'; require_once 'templates/themes/overboards/overboards.php'; -// List of regexes that blacklist boards -$blacklist = [ - '/^.*_archive$/', // b_archive, leftypol_archive, ... - '/^b_.*$/', // b_anime, b_leftypol, ... -]; +// Allowed boards +$whitelist = []; +foreach ($config['boards'] as $boards) { + foreach ($boards as $board) { + $whitelist[] = $board; + } +} +foreach ($overboards_config as $board) { + $whitelist[] = $board['uri']; +} // Boards that are nsfw $nsfw_boards = ['b', 'overboard']; @@ -33,56 +38,8 @@ foreach ($overboards_config as $overboard) { */ $boards = []; foreach ($board_list as $board) { - // Skip blacklisted boards - foreach ($blacklist as $regex) { - if (preg_match($regex, $board['uri'])) { - continue 2; // Skip to the next board - } - } - - $boards[] = [ - 'code' => $board['uri'], - 'name' => $board['title'], - 'sfw' => !in_array($board['uri'], $nsfw_boards), - 'alternate_spoilers' => in_array($board['uri'], $alunya_spoiler), - 'posting_enabled' => !in_array($board['uri'], $readonly_boards), - ]; -} - -function endsWith( $haystack, $needle ) { - $length = strlen( $needle ); - if( !$length ) { - return true; - } - return substr( $haystack, -$length ) === $needle; -} - -// Boards that are nsfw -$nsfw_boards = ['b', 'overboard']; -// Boards that use spoiler_alunya.png as their spoiler -$alunya_spoiler = ['leftypol', 'anime']; -// Boards where posts are not allowed to be created -$readonly_boards = ['overboard', 'sfw', 'alt']; - -$board_list = listBoards(); - -// Add objects that are not boards but are treated as such -$board_list[] = ['uri' => 'overboard', 'title' => 'Overboard']; -$board_list[] = ['uri' => 'sfw', 'title' => 'SFW Overboard']; -$board_list[] = ['uri' => 'alt', 'title' => 'Alternate Overboard']; - -/** - * Allowed fields for the board object: - * - code: The board code ('b', 'tech', ...) - * - name: The board user-readable name ('Siberia', ...) - * - description: The board description ('Leftist Politically Incorrect', ...) - * - sfw: Is this board sfw? - * - alternate_spoilers: Does this board use the alunya spoiler? - */ -$boards = []; -foreach ($board_list as $board) { - // Skip archives - if (endsWith($board['uri'], '_archive')) { + // Skip non-whitelisted boards + if (!in_array($board['uri'], $whitelist)) { continue; }