forked from loweel/zabov
				
			
		
			
				
	
	
		
			82 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"bufio"
 | 
						|
	"fmt"
 | 
						|
	"os"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
func init() {
 | 
						|
 | 
						|
	fmt.Println("Ingesting local hosts file")
 | 
						|
	ingestLocalBlacklists()
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
func ingestLocalBlacklists() {
 | 
						|
 | 
						|
	fmt.Println("ingestLocalBlacklist: collecting urls from all configs...")
 | 
						|
	_files := urlsMap{}
 | 
						|
	for config := range ZabovConfigs {
 | 
						|
		ZabovHostsFile := ZabovConfigs[config].ZabovHostsFile
 | 
						|
		if len(ZabovHostsFile) == 0 {
 | 
						|
			continue
 | 
						|
		}
 | 
						|
		configs := _files[ZabovHostsFile]
 | 
						|
		if configs == nil {
 | 
						|
			configs = stringarray{}
 | 
						|
			_files[ZabovHostsFile] = configs
 | 
						|
		}
 | 
						|
		configs = append(configs, config)
 | 
						|
		_files[ZabovHostsFile] = configs
 | 
						|
	}
 | 
						|
 | 
						|
	for ZabovHostsFile, configs := range _files {
 | 
						|
		file, err := os.Open(ZabovHostsFile)
 | 
						|
		if err != nil {
 | 
						|
			fmt.Println(err.Error())
 | 
						|
		}
 | 
						|
		defer file.Close()
 | 
						|
 | 
						|
		scanner := bufio.NewScanner(file)
 | 
						|
		for scanner.Scan() {
 | 
						|
			d := scanner.Text()
 | 
						|
			if len(d) == 0 || strings.TrimSpace(d)[0] == '#' {
 | 
						|
				continue
 | 
						|
			}
 | 
						|
			DomainKill(d, ZabovHostsFile, configs)
 | 
						|
			incrementStats("Blacklist", 1)
 | 
						|
 | 
						|
		}
 | 
						|
 | 
						|
		if err := scanner.Err(); err != nil {
 | 
						|
			fmt.Println(err.Error())
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
func fileByLines(filename string) (blurls []string) {
 | 
						|
 | 
						|
	file, err := os.Open(filename)
 | 
						|
	if err != nil {
 | 
						|
		fmt.Println(err.Error())
 | 
						|
	}
 | 
						|
	defer file.Close()
 | 
						|
 | 
						|
	scanner := bufio.NewScanner(file)
 | 
						|
	for scanner.Scan() {
 | 
						|
		d := scanner.Text()
 | 
						|
		blurls = append(blurls, d)
 | 
						|
 | 
						|
	}
 | 
						|
 | 
						|
	if err := scanner.Err(); err != nil {
 | 
						|
		fmt.Println(err.Error())
 | 
						|
	}
 | 
						|
 | 
						|
	return
 | 
						|
 | 
						|
}
 |