Example #1
0
 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 取得ミスった');
     }
 }