/** * send pages from starters to scribe * * @access private * @author Piotr Molski (moli) * */ private function sendRevisionToScribe() { $dbr = wfGetDB(DB_SLAVE); $numRows = (new \WikiaSQL())->SELECT('rev_page as page_id', 'rev_id', 'rev_user')->FROM('revision')->WHERE('rev_page')->GREATER_THAN(0)->ORDER_BY('rev_id')->run($dbr, function (\ResultWrapper $res) { global $wgEnableScribeNewReport; $numRows = 0; $pages = []; while ($row = $res->fetchObject()) { $article = \Article::newFromID($row->page_id); $user = \User::newFromId($row->rev_user); $revision = \Revision::newFromId($row->rev_id); if ($wgEnableScribeNewReport) { $key = isset($pages[$row->page_id]) ? 'edit' : 'create'; $scribeProducer = new \ScribeEventProducer($key, 0); if (is_object($scribeProducer)) { if ($scribeProducer->buildEditPackage($article, $user, $revision)) { $scribeProducer->sendLog(); } } } else { $flags = ""; $status = \Status::newGood(array()); $status->value['new'] = isset($pages[$row->page_id]) ? false : true; $archive = 0; \ScribeProducer::saveComplete($article, $user, null, null, null, $archive, null, $flags, $revision, $status, 0); } $pages[$row->page_id] = $row->rev_id; ++$numRows; } return $numRows; }); $this->info('send starter revisions to scribe', ['num_rows' => $numRows]); }
function callEditHook($page_id, $rev_id, $page_ns, $user_id, $serverName) { global $wgCityId, $wgServer, $wgEnableScribeNewReport; $wgServer = $serverName; # article $oArticle = Article::newFromID($page_id); # user $oUser = User::newFromId($user_id); # revision $oRevision = Revision::newFromId($rev_id); if ( $wgEnableScribeNewReport ) { $key = ( checkIsNew($page_id, $rev_id) ) ? 'create' : 'edit'; $oScribeProducer = F::build( 'ScribeEventProducer', array( 'key' => $key, 'archive' => 1 ) ); if ( is_object( $oScribeProducer ) ) { if ( $oScribeProducer->buildEditPackage( $oArticle, $oUser, $oRevision ) ) { $oScribeProducer->sendLog(); } } } else { # flags $flags = ""; # status - new or edit $status = Status::newGood( array() ); # check is new $status->value['new'] = checkIsNew($page_id, $rev_id); # call function $archive = 1; $res = ScribeProducer::saveComplete( $oArticle, $oUser, null, null, null, $archive, null, $flags, $oRevision, $status, 0 ); } # $oArticle = $oUser = $oRevision = $status = $res = null; }
/** * send pages from starters to scribe * * @access private * @author Piotr Molski (moli) * */ private function sendRevisionToScribe() { global $wgEnableScribeNewReport; wfProfileIn(__METHOD__); $dbr = wfGetDB(DB_SLAVE); $pages = array(); $oRes = $dbr->select(array('revision'), array('rev_page as page_id, rev_id, rev_user'), array('rev_page > 0'), __METHOD__, array('ORDER BY' => 'rev_id')); $loop = 0; while ($oRow = $dbr->fetchObject($oRes)) { # article $oArticle = Article::newFromID($oRow->page_id); # user $oUser = User::newFromId($oRow->rev_user); # revision $oRevision = Revision::newFromId($oRow->rev_id); if ($wgEnableScribeNewReport) { $key = isset($pages[$oRow->page_id]) ? 'edit' : 'create'; $oScribeProducer = F::build('ScribeEventProducer', array('key' => $key, 'archive' => 0)); if (is_object($oScribeProducer)) { if ($oScribeProducer->buildEditPackage($oArticle, $oUser, $oRevision)) { $oScribeProducer->sendLog(); } } } else { $flags = ""; # status - new or edit $status = Status::newGood(array()); # check is new $status->value['new'] = isset($pages[$oRow->page_id]) ? false : true; # call function $archive = 0; $res = ScribeProducer::saveComplete($oArticle, $oUser, null, null, null, $archive, null, $flags, $oRevision, $status, 0); } $pages[$oRow->page_id] = $oRow->rev_id; $loop++; } Wikia::log(__METHOD__, "info", "send starter revisions to scribe: {$loop} rows"); wfProfileOut(__METHOD__); }