Example #1
0
 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 '';
 }
Example #2
0
 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");
     }
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 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();
 }