<?php

//*************************************************************************
// yandex_suggest.php : implementation file
// Version : 1.0
// Date :  December 2013
// Author : Andre Dolenko
// Email :  bigfozzy@gmail.com
// Latest Version : http://x-datas.com/
//*************************************************************************

//////////////////////////////////////////////////// Google API Search Results /////////////////////////////////////////////////////////////////////////
class CYandexSuggest extends CBaseWebAPI
{
    
///////////////////////////////////////////////////

    // конструктор        
    
function CYandexSuggest($out_path,$pause_per_request,$pause_bad_request,$use_proxy,$proxy_timeout)
    {
        
// базовый конструктор
        
$this->CBaseWebAPI($out_path,$pause_per_request,$pause_bad_request,$use_proxy,$proxy_timeout);

        
// запрашиваемый урл с параметрами
        
$this->requested_url "http://suggest.yandex.ru/suggest-ya.cgi?v=4&part=";
    }
        
    
///////////////////////////////////////////////////

    // проверить правильно ли прошел запрос
    
protected function is_query_good()
    {    
        if (
$this->body=="")
            return 
false;        
        return 
strpos($this->body,iconv("windows-1251","utf-8//IGNORE",$this->current_query))!=false;    
    }

    
///////////////////////////////////////////////////

    // сохранить обработанные поисковые результаты в файл 
    
function save()
    {    
        
// лог
        
global $log;        
    
        
// префиксы для разбора
        
$prefix1="\"";
        
$prefix2="\"";
        
        
$index1=-1;
        
$index2=-1;
        
$index_end=strpos($this->body,",{\"");
        
$out_str $this->current_query.":";
        while (
true)
        {
                
$index1=strpos($this->body,$prefix1,$index2+strlen($prefix2)+1);
                if (
$index1===false || $index1>$index_end)
                    break;
                
$index2=strpos($this->body,$prefix2,$index1+strlen($prefix1)+1);
                if (
$index2===false  || $index2>$index_end)
                    break;                
                
$tmp=substr($this->body$index1+strlen($prefix1), $index2-$index1-strlen($prefix1));                
                
$out_str.=iconv("utf-8","windows-1251//IGNORE",$tmp)."|na|";

                
// лог
                
$log->event_add(" . ");
        }
        
$out_str=trim($out_str,"|");
        
        
// добавим в результаты
        
CTextFile::add($this->out_path,$out_str."\n");
        
// конец события
        
$log->event_end("");        

        
// вернем число добавленных поисковых результатов
        
return 1;
    }

    
///////////////////////////////////////////////////
};
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>