getBlocklist() public static method

public static getBlocklist ( )
Example #1
0
<?php

/**
 * Export domains to various formats
 */
require_once './../vendor/autoload.php';
$domainsDir = __DIR__ . DIRECTORY_SEPARATOR . './../domains/';
$domains = \Nabble\SemaltBlocker\Blocker::getBlocklist();
file_put_contents($domainsDir . 'blocked.json', json_encode($domains, JSON_PRETTY_PRINT) . PHP_EOL);
echo "Written json file\n";
file_put_contents($domainsDir . 'blocked.csv', implode(PHP_EOL, array_map(function ($item) {
    return '"' . $item . '"';
}, $domains)) . PHP_EOL);
echo "Written csv file\n";
$xml = "<domains>" . PHP_EOL;
foreach ($domains as $domain) {
    $xml .= "\t<domain>" . $domain . "</domain>" . PHP_EOL;
}
$xml .= "</domains>" . PHP_EOL;
file_put_contents($domainsDir . 'blocked.xml', $xml);
echo "Written xml file\n";
$htaccess = "<IfModule mod_setenvif.c>" . PHP_EOL;
foreach ($domains as $domain) {
    $htaccess .= "\tSetEnvIfNoCase Referer " . $domain . " spambot=yes" . PHP_EOL;
}
$htaccess .= "</IfModule>";
file_put_contents($domainsDir . 'blocked.conf', $htaccess);
echo "Written apache conf file\n";
echo "Done\n";
exit;
Example #2
0
 public function testRetrieveDomainlist()
 {
     $domainlist = Blocker::getBlocklist();
     $this->assertTrue(is_array($domainlist), 'Domain list should be an array');
     $this->assertFalse(empty($domainlist), 'Domain list should not be an empty array');
 }
Example #3
0
        }
        function statusHtml($status, $redirect = null)
        {
            if ($status == STATUS_RED) {
                return '<span class="danger">Not blocked</span>';
            }
            if ($status == STATUS_ORANGE) {
                return '<span class="warning">Redirect </span> &rarr; <a href="?url=' . urlencode($redirect) . '">' . $redirect . '</a>';
            }
            return '<span class="success">Blocked</span>';
        }
        ob_implicit_flush(true);
        ob_end_flush();
        $list = [];
        if ($url) {
            $list = \Nabble\SemaltBlocker\Blocker::getBlocklist();
            $client = new \Guzzle\Http\Client(null, array('redirect.disable' => true));
        }
        ?>

        <p><a href=".">recent scores</a></p>
        <div class="progress">
            <div class="progress-bar progress-bar-success" style="width: 0%"></div>
            <div class="progress-bar progress-bar-warning" style="width: 0%"></div>
            <div class="progress-bar progress-bar-danger" style="width: 0%"></div>
        </div>
        <table class='table table-bordered table-condensed table-hover' data-total='<?php 
        echo count($list);
        ?>
'>
Example #4
0
                $annotated['d' . crc32($cleaned . '-' . $source)] = (object) ['url' => $url, 'source' => $source, 'added' => date('c')];
            }
        }
    }
}
uasort($annotated, function ($a, $b) {
    if ($a->url . $a->source == $b->url . $b->source) {
        return 0;
    }
    return $a->url . $a->source < $b->url . $b->source ? -1 : 1;
});
file_put_contents('../domains/annotated.json', json_encode((object) $annotated, JSON_PRETTY_PRINT));
echo "Updated annotated.json\n";
// merge & cleanup spammers
if ($includeOldList) {
    $spammers = array_merge(Blocker::getBlocklist(), $spammers);
}
// cleanup
foreach ($spammers as &$spammer) {
    $spammer = clean($spammer, $spammers);
}
$spammers = array_unique($spammers);
$spammers = array_filter($spammers);
sort($spammers);
// echo some info
echo "New list: " . count($spammers) . " sources\n";
// write
if (count($spammers)) {
    file_put_contents('../domains/blocked', implode("\n", $spammers) . PHP_EOL);
}
echo "Updated blocklist\n";
Example #5
0
                return filter_var($v, FILTER_VALIDATE_URL) || filter_var('http://' . $v, FILTER_VALIDATE_URL);
            });
        } else {
            $list = explode("\n", $raw);
        }
    }
    echo $source . " contains " . count($list) . " source(s)\n";
    $spammers = array_merge($spammers, $list);
}
// only top-level domains
foreach ($spammers as &$spammer) {
    $spammer = \Nabble\SemaltBlocker\Domainparser::getRootDomain($spammer);
}
// merge & cleanup spammers
if ($includeOldList) {
    $spammers = array_merge(\Nabble\SemaltBlocker\Blocker::getBlocklist(), $spammers);
}
$spammers = array_map('strtolower', $spammers);
$spammers = array_map('trim', $spammers);
$punicode = new \TrueBV\Punycode();
foreach ($spammers as &$spammer) {
    $spammer = iconv("UTF-8", "ISO-8859-1", $punicode->encode($spammer));
}
$spammers = array_unique($spammers);
$spammers = array_filter($spammers);
sort($spammers);
// echo some info
echo "New list: " . count($spammers) . " sources\n";
// write
if (count($spammers)) {
    file_put_contents('../domains/blocked', implode("\n", $spammers) . PHP_EOL);