name = 'Whois'; $model->date = date('Y-m-d H:i:s'); $model->status = '0'; } public function mainAction() { $competitors = \parserCompetitors::find(); foreach($competitors as $competitor){ $model_sections = \parserSections::query() ->where("id IN ('".str_replace(",","','",$competitor->sections_id)."')") ->execute(); foreach($model_sections as $items) { foreach($items->parserItems as $item){ $model_competitors_items = \parserCompetitorsItems::checkSection($item->id, $competitor->id); if($model_competitors_items && $model_competitors_items->status == 1 ) { $parser_data_arr = $this->a_parser->parseExistLink([ 'link' => $model_competitors_items->item_url, 'google_link' => $model_competitors_items->google_link ],$competitor->h1_regexr, $competitor->price_regexr, $competitor->exist_regexr); $parser_data_arr['link_status'] = $model_competitors_items->link_status; if($model_competitors_items->link_status == 'ok'){ if($parser_data_arr['h1'] == 'Товар пропал') { $parser_data_arr['link_status'] = 'change'; }; if(empty($parser_data_arr['price'])) { $parser_data_arr['link_status'] = 'change'; }; if($model_competitors_items->exist != $parser_data_arr['exist']) { $parser_data_arr['link_status'] = 'change'; }; } $this->dataSave($parser_data_arr,$competitor->id,$item->id, $item->item_users_id); } else { try { //$this->prepareQuery($competitor, $item); } catch (Exception $e) { die( 'Выброшено исключение: '. $e->getMessage(). "\n"); } } } } if(!empty($this->query)){ $this->saveParserDada($competitor); } } } public function dataSave($parser_data,$competitor_id,$item_id, $item_user_id){ $model_competitors_items = \parserCompetitorsItems::checkSection($item_id, $competitor_id); if($parser_data['link']) { if(!$model_competitors_items){ print_r("competitor_id = ". $competitor_id . "\n"); $model_competitors_items = new \parserCompetitorsItems(); $model_competitors_items->price = $parser_data['price']; $model_competitors_items->h1 = $parser_data['h1']; $model_competitors_items->item_url = $parser_data['link']; $model_competitors_items->exist = $parser_data['exist']; $model_competitors_items->competitor_id = $competitor_id; $model_competitors_items->item_id = $item_id; $model_competitors_items->status = 1; $model_competitors_items->google_link = $parser_data['google_link']; $model_competitors_items->link_status = $parser_data['link_status']; $model_competitors_items->item_user_id = $item_user_id; $model_competitors_items->save(); } else { print_r("competitor_id = ". $competitor_id . "\n"); $model_competitors_items->price = $parser_data['price']; $model_competitors_items->h1 = $parser_data['h1']; $model_competitors_items->exist = $parser_data['exist']; $model_competitors_items->item_url = $parser_data['link']; $model_competitors_items->competitor_id = $competitor_id; $model_competitors_items->item_id = $item_id; $model_competitors_items->status = 1; $model_competitors_items->google_link = $parser_data['google_link']; $model_competitors_items->link_status = $parser_data['link_status']; $model_competitors_items->item_user_id = $item_user_id; $model_competitors_items->save(); } } else { if(!$model_competitors_items){ print_r("competitor_id = ". $competitor_id . "\n"); $model_competitors_items = new \parserCompetitorsItems(); $model_competitors_items->competitor_id = $competitor_id; $model_competitors_items->exist = $parser_data['exist']; $model_competitors_items->item_id = $item_id; $model_competitors_items->h1 = $parser_data['result'] ? 'Не найденно в списке' : 'Товар не найден' ; $model_competitors_items->item_url = $parser_data['google_link']; $model_competitors_items->status = 0; $model_competitors_items->google_link = $parser_data['google_link']; $model_competitors_items->link_status = $parser_data['link_status']; $model_competitors_items->item_user_id = $item_user_id; $model_competitors_items->save(); } else { print_r("competitor_id = ". $competitor_id . "\n"); $model_competitors_items->competitor_id = $competitor_id; $model_competitors_items->item_id = $item_id; $model_competitors_items->exist = $parser_data['exist']; $model_competitors_items->h1 = $parser_data['result'] ? 'Не найденно в списке' : 'Товар не найден' ; $model_competitors_items->item_url = $parser_data['google_link']; $model_competitors_items->status = 0; $model_competitors_items->google_link = $parser_data['google_link']; $model_competitors_items->link_status = $parser_data['link_status']; $model_competitors_items->item_user_id = $item_user_id; $model_competitors_items->save(); } } } public function saveParserDada($competitor){ $parser_data_arrs = $this->a_parser->parseNewLink($this->query, $competitor->h1_regexr, $competitor->price_regexr, $competitor->exist_regexr); $this->query = array(); foreach($parser_data_arrs as $parser_data_arr){ $this->dataSave($parser_data_arr,$parser_data_arr['competitor_id'],$parser_data_arr['item_id'], $parser_data_arr['item_id']); } } public function prepareQuery($competitor, $item){ if(isset($this->query[0]) && ($this->query[0]['competitor_id'] == $competitor->id) ){ $count = count($this->query); $i = $count ? $count : 0; $this->query[$i]['query'] = 'site:' . $competitor->url . ' ' . $item->item_name; $this->query[$i]['competitor_id'] = $competitor->id; $this->query[$i]['item_id'] = $item->id; if(count($this->query) ==200) { $this->saveParserDada($competitor); } } else { if(!empty($this->query)){ $this->saveParserDada($competitor); } $this->query[0]['query'] = 'site:' . $competitor->url . ' ' . $item->item_name; $this->query[0]['competitor_id'] = $competitor->id; $this->query[0]['item_id'] = $item->id; } } function sectionsAction(){ $project_id = '32'; $route = STORAGE_PATH.'temp/csv/products_seo.csv'; $sourceFileName = "http://extremstyle.ua/cron/products_seo.csv"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $sourceFileName); curl_setopt($ch, CURLOPT_TIMEOUT, 300); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $st = curl_exec($ch); $fd = @fopen($route, "w"); fwrite($fd, $st); @fclose($fd); curl_close($ch); //Check if the user has uploaded files //Print the real file names and their sizes $result = $this->ServiceExcel->getCSV($route); $ItemModel = new \parserItems(); $SectionModel = new \parserSections(); $ItemModel->updateStatus($project_id, $this->modelsManager); $SectionModel->updateStatus($project_id, $this->modelsManager); foreach($result as $row){ $model_sections = \parserSections::checkSection($project_id, $row[0]); $checkCopy = \parserItems::checkCopy($project_id, ltrim(rtrim($row[3])), $row[2], $row[4]); if($checkCopy) { if(!$model_sections){ $model_sections = new \parserSections(); $model_sections->project_id = $project_id; $model_sections->section_name = mb_strtolower($row[1],"UTF-8"); $model_sections->section_user_id = $row[0]; $model_sections->delete_row = '0'; $model_sections->save(); } else { $model_sections->project_id = $project_id; $model_sections->section_name = mb_strtolower($row[1], "UTF-8"); $model_sections->section_user_id = $row[0]; $model_sections->delete_row = '0'; $model_sections->save(); } $model_items = \parserItems::checkSection($project_id,$model_sections->id, $row[5]); if(!$model_items){ $model_items = new \parserItems(); $model_items->item_name = mb_strtolower(ltrim(rtrim($row[3])),"UTF-8"); $model_items->item_users_id = $row[2]; $model_items->price = $row[4]; $model_items->status = 1; $model_items->url = $row[5]; $model_items->section_id = $model_sections->id; $model_items->project_id = $project_id; $model_items->save(); } else { $model_items->item_name = mb_strtolower(ltrim(rtrim($row[3])),"UTF-8"); $model_items->item_users_id = $row[2]; $model_items->price = $row[4]; $model_items->status = 1; $model_items->url = $row[5]; $model_items->section_id = $model_sections->id; $model_items->project_id = $project_id; $model_items->save(); } } } // $ItemModel->DeleteNonActive($this->modelsManager); // $SectionModel->DeleteNonActive($this->modelsManager); echo "complete"; } function requestAction(){ $hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}Inbox'; $username = 'm@artweb.ua'; $password = 'eks,ybcm12hfp'; /* try to connect */ $inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error()); $emails = imap_search($inbox,'UNANSWERED FROM ArtWeb'); /* if emails are returned, cycle through each... */ if($emails) { /* begin output var */ $output = ''; /* put the newest emails on top */ rsort($emails); /* for every email... */ foreach($emails as $email_number) { /* get information specific to this email */ $overview = imap_fetch_overview($inbox,$email_number,0); $message = imap_fetchbody($inbox,$email_number,2); /* output the email header information */ $output.= '
'; $output.= ''.$overview[0]->subject.' '; $output.= ''.$overview[0]->from.''; $output.= 'on '.$overview[0]->date.''; $output.= '
'; /* output the email body */ $output.= '
'.$message.'
'; } echo $output; } /* close the connection */ imap_close($inbox); } function utmsetAction(){ $text['text'] = file_get_contents(STORAGE_PATH."/file/index.html"); $text['result'] = $this->UTMParser->parse(false,$text); $page = fopen(STORAGE_PATH."/file/counter.txt", 'a'); $test = fwrite($page, $text['result']); } }