all(); // Find the user who tweeted this $twitter_user_id = $data['user']['id_str']; $player = Player::where('twitter_user_id', $twitter_user_id)->first(); if(isset($data['extended_tweet']['full_text'])) $text = $data['extended_tweet']['full_text']; else $text = $data['text']; // Unshorten URLs if(isset($data['entities']['urls'])) { foreach($data['entities']['urls'] as $url) { $text = str_replace($url['url'], $url['expanded_url'], $text); } } // Remove media URLs from tweet text $photos = []; if(isset($data['extended_entities']['media'])) { foreach($data['extended_entities']['media'] as $media) { $text = str_replace($media['url'], '', $text); $photos[] = $media['media_url_https']; } $text = trim($text); } // Find the mission hashtag $mission_id = 0; foreach(Mission::all() as $mission) { if(strpos($text, $mission->hashtag) !== false) { $mission_id = $mission->id; } } $tweet = new Tweet; $tweet->player_id = $player ? $player->id : 0; $tweet->team_id = $player ? $player->team->id : 0; $tweet->text = $text; $tweet->photo = json_encode($photos); $tweet->mission_id = $mission_id; $tweet->tweet_date = date('Y-m-d H:i:s', strtotime($data['created_at'])); $tweet->save(); // TODO: Broadcast this to the web interface event(new NewTweetEvent($tweet)); return $data['id_str']; } }