2 // $Id: checker.php,v 1.6 2009/01/02 11:55:45 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' => 60 * 3,
93 //'non_uniquri' => 5 * 3,
94 //'non_uniqhost' => 50 * 3,
95 //'area_anchor' => 30 * 3,
96 //'area_bbcode' => 15 * 3,
103 $method = & $spam['method']['_default'];
104 //$method = & $spam['method']['edit'];
105 //$method = check_uri_spam_method();
107 // -----------------------------------------------------
109 if ($asap) $method['asap'] = TRUE;
111 $progress = check_uri_spam(
113 'a http://foobaA.example.com',
115 'b http://foobarB.example.com'
118 if (! empty($progress)) {
121 if (empty($progress['is_spam'])) {
122 echo 'ACTION: Seems not a spam';
125 echo 'ACTION: Blocked by ' . summarize_spam_progress($progress, TRUE);
129 echo 'METRICS: ' . summarize_spam_progress($progress) . '<br />' . "\n";
132 $action = 'Blocked by: ' . summarize_spam_progress($progress, TRUE);
134 $tmp = summarize_detail_badhost($progress);
136 echo 'DETAIL_BADHOST: ' .
137 str_replace(' ', ' ', nl2br(htmlspecialchars($tmp). "\n"));
141 $tmp = summarize_detail_newtral($progress);
142 if (! $asap && $tmp != '') {
143 echo 'DETAIL_NEUTRAL_HOST: ' .
144 str_replace(' ', ' ', nl2br(htmlspecialchars($tmp). "\n"));
149 echo '$progress:' . "\n";
150 echo htmlspecialchars(var_export($progress, TRUE));
157 $results = spam_uri_pickup($msg);
158 $results = uri_pickup_normalize($results);
159 $results = uri_pickup_normalize_pathfile($results);
160 echo '$results:' . "\n";
161 echo htmlspecialchars(var_export($results, TRUE));