2 // $Id: checker.php,v 1.7 2009/01/04 05:01:34 henoheno Exp $
3 // Concept-work of spam-uri metrics
4 // Copyright (C) 2006-2007 PukiWiki Developers Team
5 // License: GPL v2 or (at your option) any later version
7 error_reporting(E_ALL); // Debug purpose
11 // Recursive array_map()
12 // e.g. Sanitilze ALL values (Debug purpose): var_dump(recursive_map('htmlspecialchars', $array));
13 function recursive_map($func, $array)
15 if (is_array($array)) {
16 if (! empty($array)) {
17 $array = array_map('recursive_map',
18 array_fill(0, count($array), $func), $array);
21 $array = $func($array);
26 function show_form($string, $asap = FALSE, $progress = TRUE, $pickup = TRUE)
28 $string = htmlspecialchars($string);
29 $asap = $asap ? ' checked' : '';
30 $progress = $progress ? ' checked' : '';
31 $pickup = $pickup ? ' checked' : '';
32 $base = basename(__FILE__);
35 <form action="$base" method="post">
37 <textarea name="msg" rows="8" cols="80">$string</textarea><br />
39 <input type="checkbox" name="asap" id="asap" value="on"$asap>
40 <label for="asap">asap</label><br />
42 <input type="checkbox" name="progress" id="progress" value="on"$progress>
43 <label for="progress">Show \$progress</label><br />
45 <input type="checkbox" name="pickup" id="pickup" value="on"$pickup>
46 <label for="pickup">Show pickuped URIs</label><br />
48 <input type="submit" name="write" value="Submit" />
56 // ---- Show form and result
57 echo basename(__FILE__) . '<br />';
59 $msg = isset($_POST['msg']) ? $_POST['msg'] : '';
60 $asap = isset($_POST['asap']) ? TRUE : FALSE;
61 $prog = isset($_POST['progress']) ? TRUE : FALSE;
62 $pickup = isset($_POST['pickup']) ? TRUE : FALSE;
64 echo show_form(stripslashes($msg), $asap, $prog, $pickup);
68 // -----------------------------------------------------
71 // Threshold and rules for insertion (default)
72 $spam['method']['_default'] = array(
73 '_comment' => '_default',
81 //'asap' => TRUE, // Stop as soon as possible (quick but less-info)
86 // Any thresholds may LOCK your contents by
87 // "posting one URL" many times.
88 // Any rules will lock contents that have NG things already.
89 $spam['method']['edit'] = array(
90 // Supposed_by_you(n) * Edit_form_spec(2) * Margin(1.5)
92 'quantity' => 150 * 1.5,
93 'non_uniq' => 5 * 1.5,
94 //'non_uniquri' => 5 * 1.5,
95 //'non_uniqhost' => 50 * 1.5,
96 'area_anchor' => 3 * 1.5,
97 'area_bbcode' => 1 * 1.5,
104 $method = & $spam['method']['_default'];
105 //$method = & $spam['method']['edit'];
106 //$method = check_uri_spam_method();
108 // -----------------------------------------------------
110 if ($asap) $method['asap'] = TRUE;
112 $progress = check_uri_spam(
114 'a http://foobaA.example.com',
116 'b http://foobarB.example.com'
119 if (! empty($progress)) {
122 if (empty($progress['is_spam'])) {
123 echo 'ACTION: Seems not a spam';
126 echo 'ACTION: Blocked by ' . summarize_spam_progress($progress, TRUE);
130 echo 'METRICS: ' . summarize_spam_progress($progress) . '<br />' . "\n";
133 $action = 'Blocked by: ' . summarize_spam_progress($progress, TRUE);
135 $tmp = summarize_detail_badhost($progress);
137 echo 'DETAIL_BADHOST: ' .
138 str_replace(' ', ' ', nl2br(htmlspecialchars($tmp). "\n"));
142 $tmp = summarize_detail_newtral($progress);
143 if (! $asap && $tmp != '') {
144 echo 'DETAIL_NEUTRAL_HOST: ' .
145 str_replace(' ', ' ', nl2br(htmlspecialchars($tmp). "\n"));
150 echo '$progress:' . "\n";
151 echo htmlspecialchars(var_export($progress, TRUE));
158 $results = spam_uri_pickup($msg);
159 $results = uri_pickup_normalize($results);
160 $results = uri_pickup_normalize_pathfile($results);
161 echo '$results:' . "\n";
162 echo htmlspecialchars(var_export($results, TRUE));