mirror of
https://github.com/privacy-protection-tools/anti-AD.git
synced 2025-01-22 22:39:16 +08:00
84 lines
2.6 KiB
PHP
84 lines
2.6 KiB
PHP
<?php
|
||
/**
|
||
* 重新整理列表,分离出basic,full,剔除失效域名
|
||
*
|
||
* @file research-addr.php
|
||
* @author gently
|
||
* @date 2019.12.14
|
||
*
|
||
*/
|
||
|
||
set_time_limit(600);
|
||
|
||
error_reporting(0);
|
||
|
||
if(PHP_SAPI != 'cli'){
|
||
die('nothing.');
|
||
}
|
||
require dirname(__DIR__) . '/lib/utils.class.php';
|
||
|
||
define('ORIGIN_DIR', dirname(__DIR__) . '/origin-files/');
|
||
define('DIST_DIR', dirname(__DIR__) . '/dist/');
|
||
define('LIB_DIR', dirname(__DIR__) . '/lib/');
|
||
define('SRC_FILE', dirname(__DIR__) . '/adblock-for-dnsmasq.conf');
|
||
|
||
$arr_dead_horse = array();
|
||
$arr_china_list = array();
|
||
|
||
$dead_horse_files = glob(ORIGIN_DIR . 'dead-horse_*');
|
||
|
||
foreach($dead_horse_files as $f){
|
||
$arr_content = require_once $f;
|
||
$arr_dead_horse = utils::array_merge_plus($arr_dead_horse, $arr_content);
|
||
}
|
||
|
||
$china_list_files = glob(ORIGIN_DIR . 'china-list_*');
|
||
foreach($china_list_files as $f){
|
||
$arr_content = require_once $f;
|
||
$arr_china_list = array_merge($arr_china_list, $arr_content);
|
||
}
|
||
|
||
if(count($arr_china_list) <= 0 && count($arr_dead_horse) <= 0){
|
||
die('empty filter list');
|
||
}
|
||
|
||
//黑名单在basic中也是必须的
|
||
$black_list = require LIB_DIR . '/black_domain_list.php';
|
||
|
||
$src_fp = fopen(SRC_FILE, 'r');
|
||
$basic_fp = fopen(DIST_DIR . '/anti-ad-dnsmasq-basic.conf', 'w');
|
||
$full_fp = fopen(DIST_DIR . '/anti-ad-dnsmasq-full.conf', 'w');
|
||
$write_len = fwrite($basic_fp, '#TIME=' . date('YmdHis') . "\n");
|
||
$write_len += fwrite($basic_fp, '#URL=https://github.com/privacy-protection-tools/anti-AD' . "\n");
|
||
$write_len = fwrite($full_fp, '#TIME=' . date('YmdHis') . "\n");
|
||
$write_len += fwrite($full_fp, '#URL=https://github.com/privacy-protection-tools/anti-AD' . "\n");
|
||
|
||
while(!feof($src_fp)){
|
||
$row = fgets($src_fp, 512);
|
||
if(empty($row)){
|
||
continue;
|
||
}
|
||
|
||
if(preg_match('/^address=\/(.+)?\/$/', $row, $matches)){
|
||
if(array_key_exists($matches[1], $arr_dead_horse)){
|
||
if(isset($arr_dead_horse[$matches[1]]['dead']) && $arr_dead_horse[$matches[1]]['dead'] > 2){
|
||
continue;
|
||
}elseif(isset($arr_dead_horse[$matches[1]]['empty']) && $arr_dead_horse[$matches[1]]['empty'] > 3){
|
||
continue;
|
||
}elseif(isset($arr_dead_horse[$matches[1]]['problem']) && $arr_dead_horse[$matches[1]]['problem'] > 3){
|
||
continue;
|
||
}
|
||
}
|
||
|
||
fwrite($full_fp, "address=/{$matches[1]}/\n");
|
||
if(array_key_exists($matches[1], $arr_china_list) || array_key_exists($matches[1], $black_list)){
|
||
fwrite($basic_fp, "address=/{$matches[1]}/\n");
|
||
}
|
||
}
|
||
}
|
||
|
||
//删除之前验证工具生成的中间结果
|
||
foreach(array_merge($china_list_files, $dead_horse_files) as $f){
|
||
unlink($f);
|
||
}
|