public function testRootdomains()
 {
     foreach ($this->rootDomains as $root => $examples) {
         foreach ($examples as $url) {
             $parser = \Nabble\Domainparser::parseUrl($url);
             $this->assertEquals($root, $parser['topleveldomain']);
         }
     }
 }
Пример #2
0
<?php

/**
 * Merge a list with the blocked domains
 */
require_once './../vendor/autoload.php';
$semaltBlockerSources = \Nabble\Semalt::getBlocklist();
echo "Old list: " . count($semaltBlockerSources) . " sources\n";
echo "Paste domains (one on each line), then press ENTER twice:\n\n";
$handle = fopen("php://stdin", "r");
$newDomains = [];
while ($line = fgets($handle)) {
    if (trim($line) == '') {
        echo "Done, got " . count($newDomains) . " sources, new domains is ";
        $newList = array_merge($semaltBlockerSources, $newDomains);
        foreach ($newList as &$source) {
            $source = \Nabble\Domainparser::getToplevelDomain($source);
        }
        $newList = array_unique($newList);
        sort($newList);
        echo count($newList) . " sources:\n\n";
        echo implode("\n", $newList) . "\n\n";
        break;
    } else {
        $newDomains[] = trim($line);
    }
}
Пример #3
0
// iterate all sources
foreach ($sources as $source => $regex) {
    $raw = file_get_contents($source);
    if (!empty($regex)) {
        preg_match_all($regex, $raw, $list);
        $list = array_filter($list[1], function ($v) {
            return filter_var($v, FILTER_VALIDATE_URL) || filter_var('http://' . $v, FILTER_VALIDATE_URL);
        });
    } else {
        $list = explode("\n", $raw);
    }
    $spammers = array_merge($spammers, $list);
}
// only top-level domains
foreach ($spammers as &$spammer) {
    $spammer = \Nabble\Domainparser::getToplevelDomain($spammer);
}
// merge & cleanup spammers
$spammers = array_merge(\Nabble\Semalt::getBlocklist(), $spammers);
$spammers = array_map('strtolower', $spammers);
$spammers = array_map('trim', $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));
}
echo "Done\n";