- if (is_array($target)) {
- // Recurse
- foreach($target as $str) {
- list($_is_spam, $_progress) = check_uri_spam($str, $method, $asap);
- $is_spam = $is_spam || $_is_spam;
- $progress['quantity'] += $_progress['quantity'];
- $progress['area']['total'] += $_progress['area']['total'];
- $progress['area']['anchor'] += $_progress['area']['anchor'];
- $progress['area']['bbcode'] += $_progress['area']['bbcode'];
- $progress['non_uniq'] += $_progress['non_uniq'];
- $progress['uniqhost'] += $_progress['uniqhost'];
- $progress['badhost'] += $_progress['badhost'];
- foreach($_progress['_action'] as $key => $value) {
- if (is_array($value)) {
- foreach(array_keys($value) as $_key) {
- $progress['_action'][$key][$_key] = TRUE;
- }
- } else {
- $progress['_action'][$key] = TRUE;
- }
- }
- if ($is_spam && $asap) break;
- }
- } else {
- $pickups = spam_uri_pickup($target);
- if (! empty($pickups)) {
- $progress['quantity'] += count($pickups);
-
- // URI quantity
- if ((! $is_spam || ! $asap) && isset($method['quantity']) &&
- $progress['quantity'] > $method['quantity']) {
- $is_spam = TRUE;
- $progress['_action']['quantity'] = TRUE;
- }
- //var_dump($method['quantity'], $is_spam);
-
- // Using invalid area
- if ((! $is_spam || ! $asap) && isset($method['area'])) {
- foreach($pickups as $pickup) {
- foreach ($pickup['area'] as $key => $value) {
- if ($key == 'offset') continue;
- $progress['area']['total'] += $value;
- $progress['area'][$key] += $value;
- if (isset($method['area']['total']) &&
- $progress['area']['total'] > $method['area']['total']) {
- $is_spam = TRUE;
- $progress['_action']['area']['total'] = TRUE;
- if ($is_spam && $asap) break;
- }
- if(isset($method['area'][$key]) &&
- $progress['area'][$key] > $method['area'][$key]) {
- $is_spam = TRUE;
- $progress['_action']['area'][$key] = TRUE;
- if ($is_spam && $asap) break;
- }
- }
- if ($is_spam && $asap) break;
- }
- }
- //var_dump($method['area'], $is_spam);