X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2FActivitySpam%2Fscripts%2Fsilencespammer.php;h=3a5e585fd5218c4296678459990c37f3569f3981;hb=53e820b46667c2f0e22ffa0a2f91e847a02f4cb8;hp=2eb9461e456e1af00532516866de186a73e285e2;hpb=0362ba7e32227164a3a9f90ef94c6a6d94403563;p=quix0rs-gnu-social.git diff --git a/plugins/ActivitySpam/scripts/silencespammer.php b/plugins/ActivitySpam/scripts/silencespammer.php index 2eb9461e45..3a5e585fd5 100644 --- a/plugins/ActivitySpam/scripts/silencespammer.php +++ b/plugins/ActivitySpam/scripts/silencespammer.php @@ -64,28 +64,34 @@ function silencespammer($filter, $user, $minimum, $percent) { printfnq("Testing user %s\n", $user->nickname); - $profile = Profile::staticGet('id', $user->id); + $profile = Profile::getKV('id', $user->id); + if ($profile->isSilenced()) { + printfnq("Already silenced %s\n", $user->nickname); + return; + } + $cnt = $profile->noticeCount(); if ($cnt < $minimum) { printfnq("Only %d notices posted (minimum %d); skipping\n", $cnt, $minimum); - } + return; + } $ss = new Spam_score(); $ss->query(sprintf("SELECT count(*) as spam_count ". "FROM notice join spam_score on notice.id = spam_score.notice_id ". - "WHERE notice.profile_id = %d", $profile->id)); + "WHERE notice.profile_id = %d AND spam_score.is_spam = 1", $profile->id)); while ($ss->fetch()) { $spam_count = $ss->spam_count; } - $spam_percent = ($spam_count * 100 / $cnt); + $spam_percent = ($spam_count * 100.0 / $cnt); if ($spam_percent > $percent) { - printfnq("Silencing user %d (%0.2f%% spam)\n", $user->nickname, $spam_percent); + printfnq("Silencing user %s (%d/%d = %0.2f%% spam)\n", $user->nickname, $spam_count, $cnt, $spam_percent); try { $profile->silence(); } catch(Exception $e) {