protected function tweet_register($all_regist = false) { if (!$this->is_twitter_connect()) { return false; } try { $params = array(); if ($all_regist) { $tweets = array(); for ($i = 0; $i < 15; $i++) { // 3000件までしか担保されてないため、200 * 15 = 3000 で無限ループ防止 $tweets_buf = $this->get_tweets($params); if (empty($tweets_buf)) { break; } $params['max_id'] = end($tweets_buf)->id; reset($tweets_buf); $tweets = array_merge($tweets, Tweet::build_tweets($tweets_buf)); } } else { $since_id = Tweet::registered_max_tweet_id(); if (isset($since_id) && $since_id > 0) { $params['since_id'] = $since_id; } $tweets = Tweet::build_tweets($this->get_tweets($params)); } return array_map(function ($tweet) { if ($tweet->is_reply()) { return null; } // リプライツイートは無視する return $tweet->save(); }, $tweets); } catch (Exception $e) { // HACK: エラー処理 trigger_error('Tweet 取得ミスった'); } }