$value) { if (substr($key, 0, 7) == "target_") $targets[] = str_replace(["target_", "_"], ["", "-"], $key); } if (empty($targets)) Message::Fail("No target was specified"); if (!isset($_POST['sf_bantype'])) Message::Fail("No action was chosen"); else { $bantype = $_POST['sf_bantype']; $targ_chars = ""; foreach($targets as $targ) { switch ($targ) { case "channel": $targ_chars .= "c"; break; case "private": $targ_chars .= "p"; break; case "channel-notice": $targ_chars .= "N"; break; case "private-notice": $targ_chars .= "n"; break; case "part": $targ_chars .= "P"; break; case "quit": $targ_chars .= "q"; break; case "dcc": $targ_chars .= "d"; break; case "away": $targ_chars .= "a"; break; case "topic": $targ_chars .= "t"; break; case "messagetag": $targ_chars .= "T"; break; case "user": $targ_chars .= "u"; break; } } /* duplicate code for now [= */ $banlen_w = (isset($_POST['banlen_w'])) ? $_POST['banlen_w'] : NULL; $banlen_d = (isset($_POST['banlen_d'])) ? $_POST['banlen_d'] : NULL; $banlen_h = (isset($_POST['banlen_h'])) ? $_POST['banlen_h'] : NULL; $duration = ""; if (!$banlen_d && !$banlen_h && !$banlen_w) $duration .= "0"; else { if ($banlen_w) $duration .= $banlen_w; if ($banlen_d) $duration .= $banlen_d; if ($banlen_h) $duration .= $banlen_h; } $match_type = $_POST['matchtype']; // should default to 'simple' $reason = isset($_POST['ban_reason']) ? $_POST['ban_reason'] : "No reason"; $soft = (isset($_POST['soft'])) ? true : false; if ($soft) $targ_chars = "%" . $targ_chars; if ($rpc->spamfilter()->add($sf, $match_type, $targ_chars, $bantype, $duration, $reason)) Message::Success("Added spamfilter entry \"$sf\" [match type: $match_type] [targets: $targ_chars] [reason: $reason]"); else Message::Fail("Could not add spamfilter entry \"$sf\" [match type: $match_type] [targets: $targ_chars] [reason: $reason]: $rpc->error"); } } else if (!empty($_POST['sf'])) foreach ($_POST as $key => $value) foreach ($value as $tok) { $tok = explode(",", $tok); $name = base64_decode($tok[0]); $match_type = base64_decode($tok[1]); $spamfilter_targets = base64_decode($tok[2]); $ban_action = base64_decode($tok[3]); if ($rpc->spamfilter()->delete($name, $match_type, $spamfilter_targets, $ban_action)) Message::Success("Spamfilter on $name has been removed"); else Message::Fail("Unable to remove spamfilter on $name: $rpc->error"); } } $spamfilter = $rpc->spamfilter()->getAll(); ?>