private function searchAccountInDB($username, $social_network)
 {
     switch ($social_network) {
         case 'facebook':
             $data = FacebookPage::whereUsername($username)->first(['fb_id', 'username', 'name']);
             break;
         case 'twitter':
             $data = TwitterProfile::whereScreenName($username)->first(['screen_name', 'name', 'picture']);
             break;
         case 'instagram':
             $data = InstagramProfile::whereUsername($username)->first(['username', 'name', 'picture']);
             break;
         default:
             return 'Invalid method';
             break;
     }
     if ($data) {
         $page['username'] = strtolower(isset($data['username']) ? $data['username'] : $data['screen_name']);
         $page['name'] = !empty($data['name']) ? $data['name'] : $page['username'];
         $page['picture'] = $social_network == 'facebook' ? 'http://graph.facebook.com/' . $data['fb_id'] . '/picture?height=200&type=normal&width=200' : str_replace('_normal.', '_200x200.', $data['picture']);
         return $page;
     } else {
         return NULL;
     }
 }
 public function getProfile($screen_name)
 {
     if (!Cache::has('twitterProfile' . $screen_name)) {
         $data = TwitterProfile::whereScreenName($screen_name)->first();
         if ($data) {
             $profile = NULL;
             $profile['screen_name'] = strtolower($data['screen_name']);
             $profile['name'] = $data['name'];
             $profile['description'] = $data['description'];
             $profile['picture'] = str_replace('_normal.', '.', $data['picture']);
             $profile['is_verified'] = $data['is_verified'];
             $profile['location'] = !empty($data['location']) ? $data['location'] : 'n/a';
             $profile['idiom'] = $this->getIdiom($data['idiom']);
             $auxformat = explode("-", $data['in_twitter_from']);
             $year = $auxformat[0];
             $day = $auxformat[2];
             $month = strtolower($this->getMonth($auxformat[1], 'large'));
             $profile['in_twitter_from'] = $day . ' ' . $month . ' ' . $year;
             $auxformat = explode("-", $data['in_owloo_from']);
             $year = $auxformat[0];
             $day = $auxformat[2];
             $month = strtolower($this->getMonth($auxformat[1], 'large'));
             $profile['in_owloo_from'] = $day . ' ' . $month . ' ' . $year;
             $profile['followers_count'] = $this->owloo_number_format($data['followers_count']);
             $profile['following_count'] = $this->owloo_number_format($data['following_count']);
             $profile['tweet_count'] = $this->owloo_number_format($data['tweet_count']);
             $profile['followers_history_30'] = json_decode($data['followers_history_30'], true);
             $cache['average_growth'] = $this->owloo_number_format($data['average_growth']);
             $profile['followers_grow']['grow_1'] = $this->formatGrow($data['followers_grow_1'], $data['followers_count']);
             $profile['followers_grow']['grow_7'] = $this->formatGrow($data['followers_grow_7'], $data['followers_count']);
             $profile['followers_grow']['grow_15'] = $this->formatGrow($data['followers_grow_15'], $data['followers_count']);
             $profile['followers_grow']['grow_30'] = $this->formatGrow($data['followers_grow_30'], $data['followers_count']);
             $profile['most_mentions'] = json_decode($data['most_mentions'], true);
             $profile['most_hashtags'] = json_decode($data['most_hashtags'], true);
             $profile['klout'] = json_decode($data['klout'], true);
             $profile['ff_ratio'] = 0;
             if ($data['following_count'] > 0) {
                 $profile['ff_ratio'] = $this->owlooFormatPorcent($data['followers_count'] / $data['following_count']);
             }
             Cache::put('twitterProfile' . $screen_name, $profile, 1440);
         } else {
             return 'Invalid method';
         }
     }
     return Cache::get('twitterProfile' . $screen_name);
 }
 public function getProfile($screen_name)
 {
     //if (!Cache::has('twitterProfile'.$screen_name)) {
     if (true) {
         $data = TwitterProfile::whereScreenName($screen_name)->first();
         if ($data) {
             $profile = NULL;
             $profile['screen_name'] = strtolower($data['screen_name']);
             $profile['name'] = $data['name'];
             $profile['description'] = $data['description'];
             $profile['picture'] = str_replace('_normal.', '.', $data['picture']);
             $profile['cover'] = $data['cover'];
             $profile['is_verified'] = $data['is_verified'];
             $profile['location'] = !empty($data['location']) ? $data['location'] : 'n/a';
             $profile['idiom'] = $this->getIdiom($data['idiom']);
             $auxformat = explode("-", $data['in_twitter_from']);
             $year = $auxformat[0];
             $day = $auxformat[2];
             $month = strtoupper($this->getMonth($auxformat[1], 'large'));
             $profile['in_twitter_from'] = substr($month, 0, 3) . substr($year, 2, 2);
             $auxformat = explode("-", $data['in_owloo_from']);
             $year = $auxformat[0];
             $day = $auxformat[2];
             $month = strtoupper($this->getMonth($auxformat[1], 'large'));
             $profile['in_owloo_from'] = substr($month, 0, 3) . substr($year, 2, 2);
             $profile['followers_count'] = $this->owloo_number_format($data['followers_count']);
             $profile['followers_count_str'] = $this->owloo_number_format_str($data['followers_count']);
             $profile['following_count'] = $this->owloo_number_format($data['following_count']);
             $profile['following_count_str'] = $this->owloo_number_format_str($data['following_count']);
             $profile['tweet_count'] = $this->owloo_number_format($data['tweet_count']);
             $profile['tweet_count_str'] = $this->owloo_number_format_str($data['tweet_count']);
             $profile['general_ranking'] = $this->owloo_number_format($data['general_ranking']);
             $charts = json_decode($data['charts'], true);
             $charts = array('followers' => $this->owloo_chart_data_format($charts['followers'], true), 'daily_followers_grow' => $this->owloo_chart_data_format($charts['daily_followers_grow'], true), 'daily_following_grow' => $this->owloo_chart_data_format($charts['daily_following_grow'], true), 'tweets_made_by_day' => $this->owloo_chart_data_format($charts['tweets_made_by_day'], true), 'tweets_made_by_day_of_the_week' => $this->owloo_chart_data_format($charts['tweets_made_by_day_of_the_week'], true));
             for ($i = 0; $i < count($charts['tweets_made_by_day_of_the_week']['x_axis']); $i++) {
                 $charts['tweets_made_by_day_of_the_week']['data'][] = array('name' => $charts['tweets_made_by_day_of_the_week']['x_axis'][$i], 'value' => $this->owloo_number_format($charts['tweets_made_by_day_of_the_week']['series_data'][$i]));
             }
             $profile['charts'] = $charts;
             $cache['average_growth'] = $this->owloo_number_format($data['average_growth']);
             $profile['followers_accumulate_down_30'] = $this->owloo_number_format($data['accumulate_down_30']);
             $profile['followers_grow']['grow_1'] = $this->formatGrow($data['followers_grow_1'], $data['followers_count']);
             $profile['followers_grow']['grow_1'] = $this->formatGrow($data['followers_grow_1'], $data['followers_count']);
             $profile['followers_grow']['grow_7'] = $this->formatGrow($data['followers_grow_7'], $data['followers_count']);
             $profile['followers_grow']['grow_15'] = $this->formatGrow($data['followers_grow_15'], $data['followers_count']);
             $profile['followers_grow']['grow_30'] = $this->formatGrow($data['followers_grow_30'], $data['followers_count']);
             $most_mentions = json_decode($data['most_mentions'], true);
             $profile['most_hashtags'] = json_decode($data['most_hashtags'], true);
             $limit = count($most_mentions);
             for ($i = 0; $i < $limit; $i++) {
                 $most_mentions[$i]['count'] = $this->owloo_number_format($most_mentions[$i]['count']);
                 if ($i < 2) {
                     $most_mentions['big'][] = $most_mentions[$i];
                 } else {
                     $most_mentions['normal'][] = $most_mentions[$i];
                 }
             }
             $profile['most_mentions'] = array('big' => $most_mentions['big'], 'normal' => $most_mentions['normal']);
             $limit = count($profile['most_hashtags']);
             $first_hashtag = NULL;
             $hashtags = array();
             for ($i = 0; $i < $limit; $i++) {
                 $profile['most_hashtags'][$i]['count'] = $this->owloo_number_format($profile['most_hashtags'][$i]['count']);
                 $profile['most_hashtags'][$i]['class'] = '';
                 if ($i == 0) {
                     $profile['most_hashtags'][$i]['class'] = 'big';
                     $first_hashtag = $profile['most_hashtags'][$i];
                 } else {
                     $hashtags[] = $profile['most_hashtags'][$i];
                     if ($i == 3) {
                         $hashtags[] = $first_hashtag;
                     }
                 }
             }
             $profile['most_hashtags'] = $hashtags;
             $profile['klout'] = json_decode($data['klout'], true);
             $profile['ff_ratio']['value'] = 0;
             $profile['ff_ratio']['max_value'] = 100;
             if ($data['following_count'] > 0) {
                 $profile['ff_ratio']['value'] = $this->owlooFormatPorcent($data['followers_count'] / $data['following_count'], NULL, 2, '.', '');
                 if ($profile['ff_ratio']['value'] > 100) {
                     $profile['ff_ratio']['max_value'] = $profile['ff_ratio']['value'];
                 }
             }
             Cache::put('twitterProfile' . $screen_name, $profile, 1440);
         } else {
             return 'Invalid method';
         }
     }
     return Cache::get('twitterProfile' . $screen_name);
 }