Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
 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);
 }