require_once 'commandLine.inc';
require_once 'removeUnusedAccounts.inc';
echo "Remove Unused Accounts\n\n";
$fname = 'removeUnusedAccounts';
if (isset($options['help'])) {
    showHelp();
    exit;
}
# Do an initial scan for inactive accounts and report the result
echo "Checking for unused user accounts...\n";
$del = array();
$dbr =& wfGetDB(DB_SLAVE);
$res = $dbr->select('user', array('user_id', 'user_name'), '', $fname);
while ($row = $dbr->fetchObject($res)) {
    # Check the account, but ignore it if it's the primary administrator
    if ($row->user_id > 1 && isInactiveAccount($row->user_id, true)) {
        # Inactive; print out the name and flag it
        $del[] = $row->user_id;
        echo $row->user_name . "\n";
    }
}
$count = count($del);
echo "...found {$count}.\n";
# If required, go back and delete each marked account
if ($count > 0 && isset($options['delete'])) {
    echo "\nDeleting inactive accounts...";
    $dbw =& wfGetDB(DB_MASTER);
    $dbw->delete('user', array('user_id' => $del), $fname);
    echo "done.\n";
    # Update the site_stats.ss_users field
    $users = $dbw->selectField('user', 'COUNT(*)', array(), $fname);
        if ($options['ignore-touched'] <= 0) {
            $touchedParamError = 1;
        }
    } else {
        $touchedParamError = 1;
    }
    if ($touchedParamError == 1) {
        die("Please put a valid positive integer on the --ignore-touched parameter.\n");
    } else {
        $touchedSeconds = 86400 * $options['ignore-touched'];
    }
}
while ($row = $dbr->fetchObject($res)) {
    # Check the account, but ignore it if it's within a $excludedGroups group or if it's touched within the $touchedSeconds seconds.
    $instance = User::newFromId($row->user_id);
    if (count(array_intersect($instance->getEffectiveGroups(), $excludedGroups)) == 0 && isInactiveAccount($row->user_id, true) && wfTimestamp(TS_UNIX, $row->user_touched) < wfTimestamp(TS_UNIX, time() - $touchedSeconds)) {
        # Inactive; print out the name and flag it
        $del[] = $row->user_id;
        echo $row->user_name . "\n";
    }
}
$count = count($del);
echo "...found {$count}.\n";
# If required, go back and delete each marked account
if ($count > 0 && isset($options['delete'])) {
    echo "\nDeleting inactive accounts...";
    $dbw = wfGetDB(DB_MASTER);
    $dbw->delete('user', array('user_id' => $del), $fname);
    echo "done.\n";
    # Update the site_stats.ss_users field
    $users = $dbw->selectField('user', 'COUNT(*)', array(), $fname);