/** * Workflow: * 1. Get potential new PowerUsers of a type frequent * (min. of edits and a poweruser property set to false) * 2. Check each one against statsdb/rollup_wiki_user_events * 3. Add the property to the new frequent PUs */ public function execute() { $aPotentialPowerUsersIds = $this->getPotentialNewFrequentPowerUsers(); foreach ($aPotentialPowerUsersIds as $iUserId) { if ($this->isNewFrequentPowerUser($iUserId)) { $oPowerUser = new PowerUser(User::newFromId($iUserId)); $oPowerUser->addPowerUserProperty(PowerUser::TYPE_FREQUENT); } } }
private function populatePowerUsersLifetime() { global $wgExternalSharedDB; $oDB = wfGetDB(DB_SLAVE, [], $wgExternalSharedDB); $aPowerUsersLifetimeIds = (new WikiaSQL())->SELECT('user_id')->FROM('user')->WHERE('user_editcount')->GREATER_THAN_OR_EQUAL(PowerUser::MIN_LIFETIME_EDITS)->runLoop($oDB, function (&$aPowerUsersLifetimeIds, $oRow) { $oPowerUser = new PowerUser(User::newFromId($oRow->user_id)); if ($oPowerUser->addPowerUserProperty(PowerUser::TYPE_LIFETIME)) { $this->iPowerUsersLifetimeCounter++; } }); $this->output("PowerUsers for lifetime edits populated! Count: {$this->iPowerUsersLifetimeCounter}\n"); }