check_olditems = 1; $this->limit = 50000000; $this->datelimit = date("Y-m-d", time() - 120 * 86400) . " 00:00:00"; $etc = "?s=104&user=1"; //поиск по категориям недвижимости $this->sections = [ prodam => [ kvartiry => "-ASgBAgICAUSSA8YQ".$etc, komnaty => "-ASgBAgICAUSQA7wQ".$etc, ], ]; } public function getItems($url, $n = 0) { $items = parent::getItems($url, $n); $newItems = []; foreach($items as $item) { $count = mysql_fetch_object(mysql_query("SELECT COUNT(*) as count FROM oris.GrabberObjectLinks WHERE Url = '{$item->url}' AND ObjectId IN (SELECT object_id FROM oris.oris_objects WHERE !deleted);"))->count; if($count > 0){ $item->date = '1900-01-01 00:00:00'; } $newItems[$item->id] = $item; } return $newItems; } public function grab() { foreach($this->cities as $city => $city_id) { foreach($this->sections as $deal_type => $categories) { foreach($categories as $category => $params) { parent::grab($city, $deal_type, $category); } } } $this->_session_end(); } public function session_start() { } public function _session_start() { $this->cookies = "{$_ENV[ROOT]}/../logs/{$this->site->code_alias}.cookie"; @unlink($this->cookies); } public function session_end() { } public function _session_end() { @unlink("{$_ENV[ROOT]}/../pids/{$this->site->code_alias}.pid"); @unlink($this->cookies); } public function cron() { $logfile = "{$_ENV[ROOT]}/../logs/{$this->site->code_alias}.log"; $pidfile = "{$_ENV[ROOT]}/../pids/{$this->site->code_alias}.pid"; if (is_file($pidfile)) { $pid = file_get_contents($pidfile); shell_exec("kill -9 {$pid} > /dev/null"); } $cmd = "php {$_ENV[ROOT]}/grabber.php {$this->site->code_alias} > {$logfile} & echo $!"; echo "[",date("Y-M-d H:i:s"),"] ", $cmd ,"\n"; $pid = shell_exec($cmd); file_put_contents($pidfile, $pid); } }