static function reportPost() : string { try { $board = Model::get()->getBoard(alphanum(post('b'))); Model::get()->addReport($board, post('p'), post('t')); } catch (Exception $ex) { echo json_encode($ex->getMessage()); } return ''; }
public static function archiver(array $path) : array { Site::requirePrivilege(Config::getCfg('permissions')['owner']); if (count($path) !== 5) { throw new Exception("Wrong number of parameters"); } $board = Model::get()->getBoard(strtolower(alphanum($path[3]))); switch (strtolower($path[4])) { case "start": self::ensurePOST(); Archivers::run($board->getName()); sleep(1); return ['result' => "Started"]; case "stop": self::ensurePOST(); Archivers::stop($board->getName()); return ['result' => "Stopping"]; case "output": self::ensureGET(); return ['output' => Archivers::getOutput($board->getName())]; case "error": self::ensureGET(); return ['output' => Archivers::getError($board->getName())]; case "clearerror": self::ensurePOST(); Archivers::clearError($board->getName()); return ['result' => 'success']; default: throw new Exception("Invalid command"); } }
/** * Gets a list of active media. * * @param Board $board * @return Board[] */ function getActiveMedia(ImageBoard\Board $board) : array { $pt = "`" . alphanum($board->getName()) . "_post`"; $tt = "`" . alphanum($board->getName()) . "_thread`"; $threads = implode(',', $this->conn_ro->query("SELECT `threadid` FROM {$tt} WHERE `active`='1'")->fetchAll(PDO::FETCH_COLUMN, 0)); if ($threads === "") { return []; } $q = "SELECT " . "{$pt}.`md5`,{$pt}.`fsize`,{$pt}.`w`,{$pt}.`h`,{$pt}.`ext`,{$pt}.`tim`,{$pt}.`filename`, IF({$pt}.`no`={$pt}.`resto`,1,0) as op " . "FROM {$pt} WHERE {$pt}.`resto` IN ({$threads}) AND " . "{$pt}.`md5` != '' AND {$pt}.`deleted` = '0'"; $query = $this->conn_ro->query($q); $pics = []; while ($reply = $query->fetch(PDO::FETCH_ASSOC)) { $pics[] = ["md5" => base64_encode($reply['md5']), "tim" => $reply['tim'], "filename" => $reply['filename'], "ext" => $reply['ext'], "fsize" => (int) $reply['fsize'], "w" => (int) $reply['w'], "h" => (int) $reply['h'], "op" => (int) $reply['op']]; } return $pics; }
public static function post(array $path) : array { if (count($path) < 5) { throw new InvalidRequestURIException(); } $board = strtolower(alphanum($path[3])); $id = $path[4]; $model = Model::get(); $post = $model->getPost($model->getBoard($board), $id); if (count($path) === 6 && $path[5] == 'html') { $content = PostRenderer::renderPost($post); return ["html" => $content]; } return $post->asArray(); }