This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
zhuyujia-webhopper/Tools/adt/ATFilter.py

109 lines
3.2 KiB
Python

import os
import requests
from adblockparser import AdblockRules
class AdFilter:
"""
Usage: ad.blocker.should_block(url)
"""
def __init__(self, new):
if new:
self.latest()
self.ad_rules = []
self.pp = os.path.dirname(__file__)
self.load_ad()
self.blocker = AdblockRules(self.ad_rules)
def latest(self):
os.system("git clone https://github.com/easylist/easylist.git")
def load_ad(self):
# adserver
f = open(self.pp + "/easylist-master/easylist/easylist_adservers.txt", "r")
rules = f.read().split("\n")[1:]
for rule in rules:
self.ad_rules.append(rule.split("$")[0])
f.close()
# adserver_popup
f = open(self.pp + "/easylist-master/easylist/easylist_thirdparty_popup.txt", "r")
rules = f.read().split("\n")
for rule in rules:
self.ad_rules.append(rule.split("$")[0])
f.close()
# general_block
f = open(self.pp + "/easylist-master/easylist/easylist_general_block.txt", "r")
rules = f.read().split("\n")
self.ad_rules.extend(rules)
f.close()
# general_block_popup
f = open(self.pp + "/easylist-master/easylist/easylist_general_block.txt", "r")
rules = f.read().split("\n")
for rule in rules:
self.ad_rules.append(rule.split("$")[0])
f.close()
# thirdparty
f = open(self.pp + "/easylist-master/easylist/easylist_thirdparty.txt", "r")
rules = f.read().split("\n")
for rule in rules:
self.ad_rules.append(rule.split("$")[0])
f.close()
class TrackerFilter:
"""
Usage: tr.blocker.should_block(url)
"""
def __init__(self, new):
if new:
self.latest()
self.tracker_filter = []
self.pp = os.path.dirname(__file__)
self.load_tracker()
self.blocker = AdblockRules(self.tracker_filter)
def latest(self):
os.system("git clone https://github.com/easylist/easylist.git")
def load_tracker(self):
# general
f = open(self.pp + "/easylist-master/easyprivacy/easyprivacy_general.txt", "r")
rules = f.read().split("\n")
for rule in rules:
self.tracker_filter.append(rule.split("$")[0])
f.close()
# specific
f = open(self.pp + "/easylist-master/easyprivacy/easyprivacy_specific.txt", "r")
rules = f.read().split("\n")
self.tracker_filter.extend(rules)
f.close()
# thirdparty
f = open(self.pp + "/easylist-master/easyprivacy/easyprivacy_thirdparty.txt", "r")
rules = f.read().split("\n")
for rule in rules:
self.tracker_filter.append(rule.split("$")[0])
f.close()
# trackingserviers
f = open(self.pp + "/easylist-master/easyprivacy/easyprivacy_trackingservers.txt", "r")
rules = f.read().split("\n")
for rule in rules:
self.tracker_filter.append(rule.split("$")[0])
f.close()
if __name__ == "__main__":
ad = AdFilter(0)
tr = TrackerFilter()
print(ad.pp)
print(ad.blocker.should_block("https://www.baidu.com"))