public static function insert_countries() { $count = \Model_Url_Stats_Country::query()->count(); if ($count == 0) { ini_set('memory_limit', '-1'); $file = fopen(DOCROOT . 'public/assets/url_stats_countries.csv', 'r'); while (feof($file) === false) { $line = fgets($file); $data_array = explode(',', trim($line)); // start long ip // end long ip // country $country = \Model_Url_Stats_Country::forge(array('start_ip' => $data_array[0], 'end_ip' => $data_array[1], 'country' => $data_array[2])); $country->save(); } fclose($f); } }
public static function action_view($short_url) { if (is_object($short_url) === false) { $short_url = Model_Url::query()->where('short_url', $short_url)->get_one(); } $short_url->hits = $short_url->hits + 1; $short_url->save(); if (empty($short_url) === false) { $results = Controller_Url::check_loop($short_url); $data['url'] = $results['url']; $data['iframe'] = $results['iframe']; if (isset($results['image']) === true) { $data['image'] = $results['image']; } if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { $ip = $_SERVER["HTTP_CF_CONNECTING_IP"]; } else { $ip = Input::real_ip(); } $country = Model_Url_Stats_Country::query()->where('start_ip', '<=', ip2long($ip))->where('end_ip', '>=', ip2long($ip))->get_one(); if (empty($country) === false) { $country = $country->country; } else { $country = 'N/A'; } $lang = Agent::languages(); // Insert Some Stats $stats = Model_Url_Stat::forge(array('url_id' => $short_url->id, 'ip' => $ip, 'country' => $country, 'referer' => Input::referrer(), 'language' => serialize($lang))); $stats->save(); return new Response(View::Forge('url/redirect', $data)); } else { Session::set('error', 'We couldn\'t'); Response::Redirect(Uri::Base()); } }