diff --git a/Sandbox/AGHtest.py b/Sandbox/AGHtest.py deleted file mode 100644 index e0b46f297..000000000 --- a/Sandbox/AGHtest.py +++ /dev/null @@ -1,160 +0,0 @@ -import requests -import re - -SOURCES = ['https://easylist-downloads.adblockplus.org/easylist_noelemhide.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt', 'https://raw.githubusercontent.com/NanoAdblocker/NanoFilters/master/NanoMirror/NanoDefender.txt', 'https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt', 'https://easylist-downloads.adblockplus.org/liste_fr.txt'] - -UNSUPPORTED_AGH = ['##', '#@#', '#?#', 'domain=', 'generichide', '$csp', 'badfilter', 'xmlhttprequest', '$xhr', '$stylesheet', '~image', '$elemhide', '$inline-script', '$other', '$~object', 'redirect='] - -OUTPUT = 'xyzzyx.txt' -OUTPUT_AGH = 'AdGuardHomeCompilationList.txt' - -# function that downloads the filter list -def download_filters() -> str: - text = '' - for url in SOURCES: - r = requests.get(url) - text += r.text - return text - -def is_supported_agh(line) -> bool: - for token in UNSUPPORTED_AGH: - if token in line: - return False - - return True - -# function that prepares the filter list for AdGuard Home -def prepare_agh(lines) -> str: - text = '' - - # remove or modifiy entries with unsupported modifiers - for line in lines: - - line = re.sub( - r"([$,])third-party", - "", - line - ) - - line = re.sub( - r"([$,])~third-party", - "", - line - ) - - line = re.sub( - r"([$,])3p", - "", - line - ) - - line = re.sub( - r"([$,])first-party", - "", - line - ) - - line = re.sub( - r"([$,])1p", - "", - line - ) - - line = re.sub( - r"([$,])image", - "", - line - ) - - line = re.sub( - r"([$,])media", - "", - line - ) - - line = re.sub( - r"([$,])script", - "", - line - ) - - line = re.sub( - r"([$,])popup", - "", - line - ) - - line = re.sub( - r"([$,])popunder", - "", - line - ) - - line = re.sub( - r"([$,])document", - "", - line - ) - - line = re.sub( - r"([$,])subdocument", - "", - line - ) - - line = re.sub( - r"([$,])~subdocument", - "", - line - ) - - line = re.sub( - r"([$,])object", - "", - line - ) - - line = re.sub( - r"([$,])~object-subrequest", - "", - line - ) - - line = re.sub( - r"([$,])frame", - "", - line - ) - - line = re.sub( - r"([$,])all", - "", - line - ) - - line = re.sub( - r",important", - "$important", - line - ) - - if is_supported_agh(line): - text += line + '\r\n' - - return text - -if __name__ == "__main__": - print('Starting the script') - text = download_filters() - lines = text.splitlines(False) - print('Total number of rules: ' + str(len(lines))) - - agh_filter = prepare_agh(lines) - - with open(OUTPUT, "w") as text_file: - text_file.write(text) - - with open(OUTPUT_AGH, "w") as text_file: - text_file.write(agh_filter) - - print('The domains-based list versions have been generated.') \ No newline at end of file