Browse Source

Add status.php for mobile API

main
discomrade 2 years ago
committed by -
parent
commit
b80a7b00f0
  1. 8
      inc/config.php
  2. 60
      status.php

8
inc/config.php

@ -1992,6 +1992,14 @@
// Example: Adding the pre-markup post body to the API as "com_nomarkup".
// $config['api']['extra_fields'] = array('body_nomarkup' => 'com_nomarkup');
// Variables for status.php, used for mobile app API
// Unlisted boards to list.
$config['api']['status']['whitelist'] = [];
// Boards marked as NSFW
$config['api']['status']['nsfw_boards'] = [];
// Boards where posts are not allowed to be created
$config['api']['status']['locked_boards'] = [];
/*
* ==================
* NNTPChan settings

60
status.php

@ -0,0 +1,60 @@
<?php
require_once 'inc/bootstrap.php';
// Boards that are nsfw
$nsfw_boards = $config['api']['status']['nsfw_boards'];
// Boards where posts are not allowed to be created
$readonly_boards = $config['api']['status']['locked_boards'];
// Allowed boards
$whitelist = $config['api']['status']['whitelist'];
foreach ($config['boards'] as $boards) {
foreach ($boards as $board) {
$whitelist[] = $board;
}
}
foreach (array_keys($config['overboards']) as $board_uri) {
$whitelist[] = $board_uri;
$readonly_boards[] = $board_uri;
}
$board_list = listBoards();
// Add objects that are not boards but are treated as such
foreach (array_keys($config['overboards']) as $uri => $overboard) {
$board_list[] = array(
'uri' => $uri,
'title' => $config['overboards'][$overboard]['title']
);
}
/**
* Allowed fields for the board object:
* - code<string>: The board code ('b', 'tech', ...)
* - name<string>: The board user-readable name ('Siberia', ...)
* - sfw<boolean>: Is this board sfw?
* - posting_enabled<boolean>: Can new posts be created belonging to this board?
*/
$boards = [];
foreach ($board_list as $board) {
// Skip non-whitelisted boards
if (!in_array($board['uri'], $whitelist)) {
continue;
}
$boards[] = [
'code' => $board['uri'],
'name' => $board['title'],
'sfw' => !in_array($board['uri'], $nsfw_boards),
'posting_enabled' => !in_array($board['uri'], $readonly_boards),
];
}
header('Content-Type: application/json');
echo json_encode([
'captcha' => $config['captcha']['enabled'],
'recaptcha' => $config['recaptcha'],
'flags' => $config['user_flags'],
'boards' => $boards,
]);
Loading…
Cancel
Save