'no', 'thread' => 'resto', 'subject' => 'sub', 'email' => 'email', 'name' => 'name', 'trip' => 'trip', 'capcode' => 'capcode', 'body' => 'com', 'time' => 'time', 'thumb' => 'thumb', // non-compatible field 'thumbx' => 'tn_w', 'thumby' => 'tn_h', 'file' => 'file', // non-compatible field 'filex' => 'w', 'filey' => 'h', 'filesize' => 'fsize', //'filename' => 'filename', 'omitted' => 'omitted_posts', 'omitted_images' => 'omitted_images', //'posts' => 'replies', //'ip' => '', 'sticky' => 'sticky', 'locked' => 'locked', //'bumplocked' => '', //'embed' => '', //'root' => '', //'mod' => '', //'hr' => '', ); static $ints = array( 'no' => 1, 'resto' => 1, 'time' => 1, 'tn_w' => 1, 'tn_h' => 1, 'w' => 1, 'h' => 1, 'fsize' => 1, 'omitted_posts' => 1, 'omitted_images' => 1, 'sticky' => 1, 'locked' => 1, ); private function translatePost($post) { $apiPost = array(); foreach (self::$postFields as $local => $translated) { if (!isset($post->$local)) continue; $toInt = isset(self::$ints[$translated]); $val = $post->$local; if ($val !== null && $val !== '') { $apiPost[$translated] = $toInt ? (int) $val : $val; } } if (isset($post->filename)) { $dotPos = strrpos($post->filename, '.'); $apiPost['filename'] = substr($post->filename, 0, $dotPos); $apiPost['ext'] = substr($post->filename, $dotPos); } return $apiPost; } function translateThread(Thread $thread) { $apiPosts = array(); $op = $this->translatePost($thread); $op['resto'] = 0; $apiPosts['posts'][] = $op; foreach ($thread->posts as $p) { $apiPosts['posts'][] = $this->translatePost($p); } return $apiPosts; } function translatePage(array $threads) { $apiPage = array(); foreach ($threads as $thread) { $apiPage['threads'][] = $this->translateThread($thread); } return $apiPage; } function translateCatalogPage(array $threads) { $apiPage = array(); foreach ($threads as $thread) { $ts = $this->translateThread($thread); $apiPage['threads'][] = current($ts['posts']); } return $apiPage; } function translateCatalog($catalog) { $apiCatalog = array(); foreach ($catalog as $page => $threads) { $apiPage = $this->translateCatalogPage($threads); $apiPage['page'] = $page; $apiCatalog[] = $apiPage; } return $apiCatalog; } }