109 lines
3.2 KiB
Python
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"))
|
|
|
|
|