Exemplo n.º 1
0
 /**
  * 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]);
 }
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
 /**
  * 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__);
 }