diff --git a/html/ops/delete_spammers.php b/html/ops/delete_spammers.php
index 70c0ebd472..c6c6e454c2 100755
--- a/html/ops/delete_spammers.php
+++ b/html/ops/delete_spammers.php
@@ -30,6 +30,10 @@
// - have no hosts
// - have no message-board posts
//
+// --profiles_strict
+// delete accounts that have a profile and no message-board posts.
+// For the BOINC message boards.
+//
// --forums
// delete accounts that
// - have no hosts
@@ -166,6 +170,24 @@ function delete_profiles() {
}
}
+function delete_profiles_strict() {
+ global $test;
+ $profiles = BoincProfile::enum("");
+ foreach ($profiles as $p) {
+ $user = BoincUser::lookup_id($p->userid);
+ if (!$user) {
+ echo "profile has missing user: $p->userid\n";
+ continue;
+ }
+ $n = BoincPost::count("user=$p->userid");
+ if ($n) continue;
+ do_delete_user($user);
+ if ($test) {
+ echo "\n$p->userid\n$p->response1\n$p->response2\n";
+ }
+ }
+}
+
function delete_user_url() {
global $test, $days;
$users = BoincUser::enum("url <> ''");
@@ -269,6 +291,8 @@ for ($i=1; $i<$argc; $i++) {
delete_list($argv[++$i]);
} else if ($argv[$i] == "--profiles") {
delete_profiles();
+ } else if ($argv[$i] == "--profiles_strict") {
+ delete_profiles_strict();
} else if ($argv[$i] == "--forums") {
delete_forums();
} else if ($argv[$i] == "--id_range") {
@@ -304,7 +328,7 @@ for ($i=1; $i<$argc; $i++) {
} else if ($argv[$i] == "--user_url") {
delete_user_url();
} else {
- echo "usage: delete_spammers.php [--days N] [--test] [--list filename] [--profiles] [--forums] [--id_range N M] [--teams] [--user_url]\n";
+ echo "usage: delete_spammers.php [--days N] [--test] [--list filename] [--profiles] [--profiles_strict] [--forums] [--id_range N M] [--teams] [--user_url]\n";
exit;
}
}