Esempio n. 1
0
 public static function fetchQueries($csvFile, $avgSearchThresh, $groupTitles)
 {
     list($err, $seed, $csvRows) = KeywordIdeasCSV::getKeywordIdeas($csvFile, $avgSearchThresh);
     if (!$err) {
         foreach ($csvRows as $row) {
             list($errt, $totalResults, $titles) = self::fetchQueryFromYBoss($row);
             if ($errt) {
                 $err1 .= $errt;
             }
             if (!$errt) {
                 self::updateDb($seed, $row, $titles, $totalResults);
             }
         }
         if ($err1) {
             echo $err1;
         }
     }
     // 		return array($err, $seed, $rows);
     if (!$err) {
         $seedKeyword = KeywordIdeasCSV::getSeedKeyword($seed);
         //get title groups using dedup mechanism
         $isTitleGrpsUpdated = LDao::isTitleGrpsUpdated($seedKeyword);
         if ($isTitleGrpsUpdated === false) {
             $titlesGroups = self::groupUsingDedup($seedKeyword);
             if (!empty($titlesGroups)) {
                 self::updateDbTitleGroupsInfo($seedKeyword, $titlesGroups);
             }
         }
         //create csv
         $titleCsv = self::getTitlesAsCsv($seedKeyword, $groupTitles);
     }
     return array($err, $seed, $titleCsv);
 }
Esempio n. 2
0
 protected static function updateDb($seed, $rows)
 {
     include_once 'LDao.php';
     include_once 'dbutils.php';
     if (empty($seed) || empty($rows)) {
         $err = "Either seed or rows data empty!";
     }
     if (!$err) {
         $seedKeyword = self::getSeedKeyword($seed);
         if (empty($seedKeyword)) {
             $err = "Seed keyword is empty";
         }
         if (!$err) {
             $res = LDao::addDbSeedKeyword($seedKeyword);
             $getSuggForTheseKw = array();
             $activeKeywords = array();
             foreach ($rows as $row) {
                 $keyword = $row[self::KEY_KEYWORD];
                 $avgMonthSearches = $row[self::KEY_AVG_SEARCHES];
                 $activeKeywords[] = $keyword;
                 if (empty($keyword)) {
                     continue;
                 }
                 //check if row exists in keyword table
                 $res = LDao::getKeyword($seedKeyword, $keyword);
                 if ($res === false || $res->numRows() == 0) {
                     //if no keyword found
                     $getSuggForTheseKw[] = $row;
                 } else {
                     //check if need to refetch sugg
                     foreach ($res as $dbRow) {
                         $fetchedTs = $dbRow->fetched_ts;
                         if (LDao::dayDiffWithNow($fetchedTs) > self::GET_DATA_AFTER_DAYS) {
                             $getSuggForTheseKw[] = $row;
                         }
                         break;
                         //there should be only one row hence break
                     }
                 }
             }
             if (count($activeKeywords) > 0) {
                 LDao::markKeywordsInactive($seedKeyword, $activeKeywords);
                 LDao::markTitlesInactive($seedKeyword);
             }
         }
     }
     return array($err, $getSuggForTheseKw);
 }