Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/env php
- <?php
- //define('DEV',true);
- date_default_timezone_set('Europe/Paris');
- require_once(dirname($argv[0]).'/../global.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib-core/debug/debug.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib-core/log/log.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib/banner/banner.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib/tracker/tracker.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib/stat_file/stat_file.php');
- require_once(LIB_CONSTANT_BaseDir.'/models/tool_view/tool_view.php');
- require_once(LIB_CONSTANT_BaseDir.'/models/tool_hit/tool_hit.php');
- require_once(LIB_CONSTANT_BaseDir.'/models/affiliate/affiliate.php');
- require_once(LIB_CONSTANT_BaseDir.'/models/adspace/adspace.php');
- require_once(LIB_CONSTANT_BaseDir.'/models/affiliate_tracker/affiliate_tracker.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib/ipconverter_new/ipconverter.php');
- require_once(LIB_CONSTANT_BaseDir.'/lib/profiler/profiler.php');
- function insertStat($data) {
- $ToolHit = new ToolHit();
- $ToolView = new ToolView();
- $AffiliateTracker = new AffiliateTracker();
- $Adspace = new Adspace();
- $ToolView_fields = array( 'id', 'id_affiliate', 'id_affiliate_tracker', 'id_tool', 'id_product', 'id_niche', 'id_adspace', 'id_category', 'id_website', 'country_code', 'view_date', 'view', '`unique`');
- $ToolHit_fields = array( 'id', 'id_affiliate', 'id_affiliate_tracker', 'id_tool', 'id_product', 'id_niche', 'id_adspace', 'id_category', 'id_website', 'country_code', 'hit_date', 'hit', '`unique`');
- $addhits = 0;
- $addviews = 0;
- foreach($data as $date => $data1) {
- foreach($data1 as $id_affiliate => $data2) {
- $add_views = array();
- $add_hits = array();
- foreach($data2 as $id_adspace => $data3) {
- // Add Adspace info
- $adspace = $Adspace->getById($id_adspace);
- if(is_null($adspace)) {
- continue;
- }
- $id_category = $adspace['id_category'];
- $id_website = $adspace['id_website'];
- foreach($data3 as $id_product => $data4) {
- foreach($data4 as $id_niche => $data5) {
- foreach($data5 as $id_tool => $data6) {
- foreach($data6 as $country_code => $data7) {
- foreach($data7 as $tracker => $actions) {
- // Add tracker info
- $id_affiliate_tracker = $AffiliateTracker->GetOrAddIdAffiliateTracker($id_affiliate,$tracker);
- if(!$id_affiliate_tracker) {
- continue;
- }
- $views = $actions['views'];
- $hits = $actions['hits'];
- if($views > 0){
- //Add view
- $result = $ToolView->UpdateView($id_affiliate,$id_affiliate_tracker,$id_product,$id_niche,$id_adspace,$id_category,$id_website,$id_tool,$country_code,$views,$date);
- if($result === false) {
- } else if (!$result) {
- // Add needed
- $addviews++;
- $add_views[] = array( 'NULL',
- $id_affiliate,
- $id_affiliate_tracker,
- $id_tool,
- $id_product,
- $id_niche,
- $id_adspace,
- $id_category,
- $id_website,
- '"'.$country_code.'"',
- '"'.$date.'"',
- $views,
- 0);
- }
- }
- if($hits > 0) {
- //Add hit
- $result = $ToolHit->UpdateHit($id_affiliate,$id_affiliate_tracker,$id_product,$id_niche,$id_adspace,$id_category,$id_website,$id_tool,$country_code,$hits,$date);
- if($result === false) {
- } else if (!$result) {
- // Add needed
- $addhits++;
- $add_hits[] = array( 'NULL',
- $id_affiliate,
- $id_affiliate_tracker,
- $id_tool,
- $id_product,
- $id_niche,
- $id_adspace,
- $id_category,
- $id_website,
- '"'.$country_code.'"',
- '"'.$date.'"',
- $hits,
- 0);
- }
- }
- }
- }
- }
- }
- }
- }
- if($addviews > 0) {
- $result = $ToolView->AddViews($add_views,$ToolView_fields);
- if(!$result) {
- }
- $addviews = 0;
- }
- if($addhits > 0) {
- $result = $ToolHit->AddHits($add_hits,$ToolHit_fields);
- if(!$result) {
- }
- $addhits = 0;
- }
- }
- }
- }
- $base_dir = "/home/sites/kk/stats";
- if(defined('DEV')) $base_dir .= '/test';
- //Directory Setup
- $processed_dir = $base_dir.'/log.processed';
- $processed_time = strtotime('- 1 days');
- $processed_date = date('Y-m-d',$processed_time);
- if(isset($argv[1])) {
- $processed_date = $argv[1];
- }
- $processed_date_folder = str_replace('-','/',$processed_date);
- $processed_dir .= '/'.$processed_date_folder;
- if (!is_dir($processed_dir)) {
- LOG_Warn('No stats for this day : '.$processed_date);
- exit;
- }
- //Models instantiation
- $Affiliate = new AffiliateKCCore();
- $IpConverter = new IpConverter();
- if ($dh_base = opendir($processed_dir)) {
- $file_data = array();
- $valid = 0;
- $total = 0;
- while (($file = readdir($dh_base)) !== false) {
- if ($file != "." && $file != ".." && preg_match('/[0-9]+$/',$file)) {
- $file_path = $processed_dir.'/'.$file;
- if(is_file($file_path)) {
- //$file_error = $error_dir.'/'.@date('Y-m-d',$time).'.error.log';
- $handle = @fopen($file_path, "r");
- if ($handle) {
- while (($line = fgets($handle)) !== false) {
- $total++;
- $view = 0;
- $hit = 0;
- $line = rtrim($line);
- $data = StatFile::extractDataForToolsStats($line);
- $timestamp = $data['timestamp'];
- $banner = $data['banner'];
- $tracker = $data['tracker'];
- $id_product = $data['id_product'];
- $id_adspace = $data['id_adspace'];
- $id_tool = $data['id_tool'];
- $ip = $data['ip'];
- $type = $data['type'];
- $view = $data['view'];
- $hit = $data['hit'];
- $id_niche = $data['id_niche'];
- $origin = $data['origin'];
- /*echo 'Timestamp : '.$timestamp."\n";
- echo 'Banner : '.$banner."\n";
- echo 'Tracker : '.$tracker."\n";
- echo 'Id Product : '.$id_product."\n";
- echo 'Id Adspace : '.$id_adspace."\n";
- echo 'Id Tool : '.$id_tool."\n";
- echo 'IP : '.$ip."\n";
- echo 'Type : '.$type."\n";
- echo 'View : '.$view."\n";
- echo 'Hit : '.$hit."\n";*/
- $banner = BANNER_GetCleanBanner($banner);
- if(empty($id_adspace) || empty($id_product) || empty($banner) || empty($tracker) || empty($id_niche)) {
- continue;
- }
- if(!ctype_digit($id_adspace) || !ctype_digit($id_product) || !ctype_digit($banner)) {
- continue;
- }
- $date = @date('Y-m-d',$timestamp);
- // Validate affiliate
- $affiliate = $Affiliate->getAffiliateFromBanner($banner);
- if(!$affiliate) {
- continue;
- }
- $id_affiliate = $affiliate['id'];
- if(empty($id_tool)) $id_tool = 0;
- $tracker = str_replace('~#','|',$tracker);
- $tracker = TRACKER_MrProper($tracker,2);
- $country_code = $IpConverter->GetCountryCode($ip);
- if(!$country_code) {
- $country_code = 'NC';
- }
- if(isset($file_data[$date])) {
- if(isset($file_data[$date][$id_affiliate])){
- if(isset($file_data[$date][$id_affiliate][$id_adspace])){
- if(isset($file_data[$date][$id_affiliate][$id_adspace][$id_product])){
- if(isset($file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche])) {
- if(isset($file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool])) {
- if(isset($file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool][$country_code])) {
- if(isset($file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool][$country_code][$tracker])) {
- $file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool][$country_code][$tracker]['views'] += $view;
- $file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool][$country_code][$tracker]['hits'] += $hit;
- } else {
- $file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool][$country_code][$tracker] = array('views' => $view,'hits' => $hit);
- }
- } else {
- $file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool][$country_code] = array($tracker => array('views' => $view,'hits' => $hit));
- }
- }else{
- $file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche][$id_tool] = array($country_code =>
- array($tracker =>
- array('views' => $view,'hits' => $hit)
- )
- );
- }
- } else {
- $file_data[$date][$id_affiliate][$id_adspace][$id_product][$id_niche] = array($id_tool =>
- array($country_code =>
- array($tracker =>
- array('views' => $view,'hits' => $hit)
- )
- )
- );
- }
- } else {
- $file_data[$date][$id_affiliate][$id_adspace][$id_product] = array($id_niche =>
- array($id_tool =>
- array($country_code =>
- array($tracker =>
- array('views' => $view,'hits' => $hit)
- )
- )
- )
- );
- }
- } else {
- $file_data[$date][$id_affiliate][$id_adspace] = array($id_product =>
- array($id_niche =>
- array($id_tool =>
- array($country_code =>
- array($tracker =>
- array('views' => $view,'hits' => $hit)
- )
- )
- )
- )
- );
- }
- } else {
- $file_data[$date][$id_affiliate] = array($id_adspace =>
- array($id_product =>
- array($id_niche =>
- array($id_tool =>
- array($country_code =>
- array($tracker =>
- array('views' => $view,'hits' => $hit)
- )
- )
- )
- )
- )
- );
- }
- } else {
- $file_data[$date] = array($id_affiliate => array($id_adspace =>
- array($id_product =>
- array($id_niche =>
- array($id_tool =>
- array($country_code =>
- array($tracker =>
- array('views' => $view,'hits' => $hit)
- )
- )
- )
- )
- )
- )
- );
- }
- $valid++;
- if (intval((memory_get_usage() / 1024) / 1024) >= 100) {
- LOG_Info('Force Insert stat due to memory usage !');
- insertStat($file_data);
- $file_data = array();
- }
- }//End While Lines
- if (!feof($handle)) {
- LOG_Error('TYPE 0 : fgets failed '.$file_path);
- echo('TYPE 0 : fgets failed '.$file_path."\n");
- }
- fclose($handle);
- //End fopen success
- }else {
- LOG_Error('TYPE 0 : Cannot read file '.$file_path);
- echo('TYPE 0 : Cannot read file '.$file_path."\n");
- }
- }
- }
- }
- closedir($dh_base);
- echo "$valid/$total\n";
- if(!empty($file_data)) {
- insertStat($file_data);
- $file_data = array();
- }
- }else{
- die('ERROR : Cannot open directory : '.$processed_dir."\n");
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement