/** * Trawl thorugh the deletion log entries to remove any deleted pages * that might have been missed when the index updater daemon was broken. */ function rebuildDeleted($since = null) { global $wgDBname; if (is_null($since)) { $since = '20010115000000'; } // Turn buffering back on; these are relatively small. $this->dbstream->bufferResults(true); $cutoff = $this->dbstream->addQuotes($this->dbstream->timestamp($since)); $logging = $this->dbstream->tableName('logging'); $page = $this->dbstream->tableName('page'); $result = $this->dbstream->query("SELECT log_namespace,log_title\n\t\t\t FROM {$logging}\n\t\t\t LEFT OUTER JOIN {$page}\n\t\t\t ON log_namespace=page_namespace AND log_title=page_title\n\t\t\t WHERE log_type='delete'\n\t\t\t AND log_timestamp > {$cutoff}\n\t\t\t AND page_namespace IS NULL", __METHOD__); $max = $this->dbstream->numRows($result); if ($max == 0) { echo "Nothing to do.\n"; return; } $this->init($max); $lastError = true; foreach ($result as $row) { $this->progress(); $title = Title::makeTitle($row->log_namespace, $row->log_title); try { MWSearchUpdater::deletePage($wgDBname, $title); } catch (MWException $e) { echo "ERROR: " . $e->getMessage() . "\n"; $lastError = $e; } } $this->finalStatus(); $this->dbstream->freeResult($result); return $lastError; }
/** * @param $article Article * @param $user * @param $reason * @return bool */ function mwSearchUpdateDelete($article, $user, $reason) { global $wgDBname; MWSearchUpdater::deletePage($wgDBname, $article->getTitle()); return true; }
/** * Trawl thorugh the deletion log entries to remove any deleted pages * that might have been missed when the index updater daemon was broken. */ function rebuildDeleted($since = null) { global $wgDBname, $options; $fname = 'LuceneBuilder::rebuildDeleted'; if (is_null($since)) { $since = '20010115000000'; } // Turn buffering back on; these are relatively small. $this->dbstream->bufferResults(true); $cutoff = $this->dbstream->addQuotes($this->dbstream->timestamp($since)); $logging = $this->dbstream->tableName('logging'); $page = $this->dbstream->tableName('page'); $result = $this->dbstream->query("SELECT log_namespace,log_title\n\t\t\t FROM {$logging}\n\t\t\t LEFT OUTER JOIN {$page}\n\t\t\t ON log_namespace=page_namespace AND log_title=page_title\n\t\t\t WHERE log_type='delete'\n\t\t\t AND log_timestamp > {$cutoff}\n\t\t\t AND page_namespace IS NULL", $fname); $max = $this->dbstream->numRows($result); if ($max == 0) { echo "Nothing to do.\n"; return; } $this->init($max); $lastError = true; while ($row = $this->dbstream->fetchObject($result)) { $this->progress(); $title = Title::makeTitle($row->log_namespace, $row->log_title); $hit = MWSearchUpdater::deletePage($wgDBname, $title); if (WikiError::isError($hit)) { echo "ERROR: " . $hit->getMessage() . "\n"; $lastError = $hit; } } $this->finalStatus(); $this->dbstream->freeResult($result); return $lastError; }