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 getPageLocalFansHistory($username, $country, $days = 30) { if (!Cache::has('facebookPageLocalFansHistory' . $username . $country)) { $data_page = FacebookPage::whereUsername($username)->first(['id_page', 'name']); $data_country = FacebookCountry::whereCode($country)->first(['id_country', 'name']); if ($data_page && $data_country) { $page['name'] = $data_page['name']; $data_local_country = FacebookPageLocalFansCountry::where('id_page', $data_page['id_page'])->where('id_country', $data_country['id_country'])->orderBy('date', 'DESC')->take(61)->get(['likes', 'date']); $series_data = array(); //Likes history $series_data_min = 0; //Min likes $series_data_max = 0; //Max likes $x_axis = ""; //Dates history $ban = 1; $cont = 1; $_num_rango = 1; $_num_discard = count($data_local_country) - $_num_rango * floor(count($data_local_country) / $_num_rango); $last_likes = null; $last_date = null; $nun_rows = count($data_local_country); foreach ($data_local_country as $local_country) { if ($_num_discard-- > 0) { continue; } if ($cont % $_num_rango == 0) { //Formatear fecha $auxformat = explode("-", $local_country['date']); $dia = $auxformat[2]; $mes = $this->getMonth($auxformat[1]); if ($ban == 1) { $series_data[] = $local_country['likes']; $x_axis .= "'" . $dia . " " . $mes . "'"; $series_data_min = $local_country['likes']; $series_data_max = $local_country['likes']; $last_likes = $local_country['likes']; $last_date = $local_country['date']; $ban = 0; } else { $series_data[] = $local_country['likes']; $x_axis .= ",'" . $dia . " " . $mes . "'"; if ($local_country['likes'] < $series_data_min) { $series_data_min = $local_country['likes']; } else { if ($local_country['likes'] > $series_data_max) { $series_data_max = $local_country['likes']; } } } } if ($cont > 30) { break; } $cont++; } $step = 1; if ($cont - 1 > 11) { $step = 2; } if ($cont - 1 > 21) { $step = 3; } $page['local_fans_history_30'] = array('series_data' => $series_data, 'series_data_min' => $series_data_min, 'series_data_max' => $series_data_max, 'x_axis' => $x_axis, 'page_name' => $data_page['name'], 'country_name' => $data_country['name']); $page['local_fans_grow']['grow_1'] = null; $page['local_fans_grow']['grow_7'] = null; $page['local_fans_grow']['grow_15'] = null; $page['local_fans_grow']['grow_30'] = null; $page['local_fans_grow']['grow_60'] = null; $array_days = array(1, 7, 15, 30, 60); foreach ($array_days as $value) { if ($nun_rows > $value) { $page['local_fans_grow']['grow_' . $value] = $this->formatGrow($last_likes - $data_local_country[$value]['likes'], $data_local_country[$value]['likes']); $page['local_fans_grow']['grow_' . $value]['date'] = $data_local_country[$value]['date']; } } Cache::put('facebookPageLocalFansHistory' . $username . $country, $page, 1440); } else { return 'Invalid method'; } } return Cache::get('facebookPageLocalFansHistory' . $username . $country); }