if (isset($_GET['url']) && $_GET['url']) { function status($code, $redirect = false) { if (substr($code, 0, 1) == '2') { return '<span class="danger">Not blocked</span>'; } if (substr($code, 0, 1) == '3') { return '<span class="warning">Redirect </span> → ' . $redirect; } return '<span class="success">Blocked</span>'; } ob_implicit_flush(true); ob_end_flush(); $list = []; if ($url) { $list = \Nabble\Semalt::getBlocklist(); $client = new \Guzzle\Http\Client(null, array('redirect.disable' => true)); } ?> <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); ?> '> <?php
<?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); } }
public function testRetrieveDomainlist() { $domainlist = \Nabble\Semalt::getBlocklist(); $this->assertTrue(is_array($domainlist), 'Domain list should be an array'); $this->assertFalse(empty($domainlist), 'Domain list should not be an empty array'); }
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"; exit;