public static function processEdit($change) { if (time() - Globals::$tfas >= 1800 and preg_match('/\\(\'\'\'\\[\\[([^|]*)\\|more...\\]\\]\'\'\'\\)/iU', Api::$q->getpage('Wikipedia:Today\'s featured article/' . date('F j, Y')), $tfam)) { Globals::$tfas = time(); Globals::$tfa = $tfam[1]; } if (Config::$fork) { $pid = pcntl_fork(); if ($pid != 0) { echo 'Forked - ' . $pid . "\n"; return; } } $change = parseFeedData($change); $change['justtitle'] = $change['title']; if (in_array('namespace', $change) && $change['namespace'] != 'Main:') { $change['title'] = $change['namespace'] . $change['title']; } self::processEditThread($change); if (Config::$fork) { die; } }
public static function shouldRevert($change) { $reason = 'Default revert'; if (preg_match('/(assisted|manual)/iS', Config::$status)) { echo 'Revert [y/N]? '; if (strtolower(substr(fgets(Globals::$stdin, 3), 0, 1)) != 'y') { return array(false, 'Manual mode says no'); } } if (!preg_match('/(yes|enable|true)/iS', Globals::$run)) { return array(false, 'Run disabled'); } if ($change['user'] == Config::$user) { return array(false, 'User is myself'); } if (Config::$angry) { return array(true, 'Angry-reverting in angry mode'); } if (time() - Globals::$tfas >= 1800) { if (preg_match('/\\(\'\'\'\\[\\[([^|]*)\\|more...\\]\\]\'\'\'\\)/iU', Api::$q->getpage('Wikipedia:Today\'s featured article/' . date('F j, Y')), $tfam)) { Globals::$tfas = time(); Globals::$tfa = $tfam[1]; } } if (!self::findAndParseBots($change)) { return array(false, 'Exclusion compliance'); } if ($change['all']['user'] == $change['all']['common']['creator']) { return array(false, 'User is creator'); } if ($change['all']['user_edit_count'] > 50) { if ($change['all']['user_warns'] / $change['all']['user_edit_count'] < 0.1) { return array(false, 'User has edit count'); } else { $reason = 'User has edit count, but warns > 10%'; } } if (Globals::$tfa == $change['title']) { return array(true, 'Angry-reverting on TFA'); } if (preg_match('/\\* \\[\\[(' . preg_quote($change['title'], '/') . ')\\]\\] \\- .*/i', Globals::$aoptin)) { IRC::say('debugchannel', 'Angry-reverting [[' . $change['title'] . ']].'); return array(true, 'Angry-reverting on angry-optin'); } $titles = unserialize(file_get_contents('titles.txt')); if (!isset($titles[$change['title'] . $change['user']]) or time() - $titles[$change['title'] . $change['user']] > 24 * 60 * 60) { $titles[$change['title'] . $change['user']] = time(); file_put_contents('titles.txt', serialize($titles)); return array(true, $reason); } return array(false, 'Reverted before'); }