Skip to content

Commit

Permalink
Add support for Adblock Plus, Hosts, Domains and Wildcard Domains fil…
Browse files Browse the repository at this point in the history
…terlist types (#8)

* Add support for other filterlist formats

* Add all new blocklist formats to readme

* Add wildcard domains filterlist format

* Fix annoying markdown issue

* Fix markdown, AGAIN

---------

Co-authored-by: MIOG_MIOG <[email protected]>
  • Loading branch information
MIOGMIOG and MIOGMIOG authored May 19, 2024
1 parent 0638dc8 commit 77d3618
Show file tree
Hide file tree
Showing 10 changed files with 1,161 additions and 229 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,16 @@ FMHY Filterlist, Blocks Unsafe Sites listed in unsafe sites.
1. Open a new tab In Brave and type ```brave://settings/```
2. Click Shields/Content Filtering/ Scroll down to Add custom filter lists
3. Enter this url ```https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt``` and click add.
### Other blockers:
Add blocklist url with right syntax/formatting according to documentation of your blocker.
Blocklist formats:
1. Adblock Plus syntax (example uses: Pi-hole) - ```https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist-abp.txt```
2. uBlock Origin syntax - ```https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist.txt```
3. List of domains - ```https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist-domains.txt```
4. Hosts file - ```https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist-hosts.txt```
5. List of domains with wildcards - ```https://raw.githubusercontent.com/WindowsAurora/FMHYFilterlist/main/filterlist-wildcard-domains.txt```

If your blocker doesn't support any of these formats, feel free to create an issue for adding support for your blocker.

## How to contribute.

Expand Down
56 changes: 45 additions & 11 deletions build.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import datetime
import subprocess

def combine_files(header_file, sitelist_file, combined_file):
def generate_blocklist(header_file, sitelist_file, output_file, format, filterlist_file_ublock_only=''):
"""
Combines content of two files into a new file,
replacing placeholders and counting entries.
Combines and modifies content of two files into a new file,
replacing placeholders, counting entries and adding text characters for proper format support.
"""
# Get current time in desired format with timezone-aware object
current_time = datetime.datetime.now(datetime.timezone.utc).strftime("%d %b %Y %H:%M UTC")
Expand All @@ -17,23 +17,57 @@ def combine_files(header_file, sitelist_file, combined_file):
num_entries += 1

# Open header and combined files
with open(header_file, 'r') as f_header, open(combined_file, 'w') as f_combined:
with open(header_file, 'r') as f_header, open(sitelist_file, 'r') as f_domains, open(output_file, 'w') as f_combined:
header_lines = f_header.readlines()

# Replace placeholders in header lines
for i, line in enumerate(header_lines):
if line.startswith('! Last modified:'):
header_lines[i] = line.replace('ReplaceString1', current_time)
elif line.startswith('! Entries:'):
header_lines[i] = line.replace('ReplaceString2', str(num_entries))
if line.startswith('Last modified:'):
header_lines[i] = line.replace('${current_time}', current_time)
elif line.startswith('Entries:'):
header_lines[i] = line.replace('${num_entries}', str(num_entries))
elif line.startswith('Format:'):
header_lines[i] = line.replace('${format}', format)
# Add comment symbols before every header line
if format == 'ublock' or format == 'abp':
header_lines[i] = ('! ' + header_lines[i])
if format == 'hosts' or format == 'domains' or format == 'wildcard_domains':
header_lines[i] = ('# ' + header_lines[i])

# Add proper filterlist formatting to the domains
domains_lines = f_domains.readlines()
for i, line in enumerate(domains_lines):
if not line.startswith('!'):
if format == 'ublock' or format == 'abp':
domains_lines[i] = line.replace("\n", '')
domains_lines[i] = ('||' + domains_lines[i] + '^' + "\n")
elif format == 'hosts':
domains_lines[i] = line.replace("\n", '')
domains_lines[i] = ('0.0.0.0 ' + domains_lines[i] + "\n")
elif format == 'wildcard_domains':
domains_lines[i] = line.replace("\n", '')
domains_lines[i] = ('*.' + domains_lines[i] + "\n")
if line.startswith('!'):
if format == 'hosts' or format == 'domains' or format == 'wildcard_domains':
domains_lines[i] = line.replace('!', '#')
line.format()

# Write modified header and filtered content
if format == 'abp':
f_combined.writelines("[Adblock Plus]\n")
f_combined.writelines(header_lines)
f_combined.writelines(open(sitelist_file, 'r'))
f_combined.writelines("\n")
f_combined.writelines(domains_lines)
if format == 'ublock':
f_combined.writelines(open(filterlist_file_ublock_only, 'r'))

print("Generated filterlist!")
print("Generated filterlist with " + format + " format as " + output_file + "!")

# Generate Header to make filterlist
print("Generating filterlist.")
combine_files("header.txt", "sitelist.txt", "filterlist.txt")
generate_blocklist("header.txt", "sitelist.txt", "filterlist.txt", "ublock", "filters-ublock-only.txt")
generate_blocklist("header.txt", "sitelist.txt", "filterlist-abp.txt", "abp")
generate_blocklist("header.txt", "sitelist.txt", "filterlist-domains.txt", "domains")
generate_blocklist("header.txt", "sitelist.txt", "filterlist-wildcard-domains.txt", "wildcard_domains")
generate_blocklist("header.txt", "sitelist.txt", "filterlist-hosts.txt", "hosts")
print("Build Finished")
222 changes: 222 additions & 0 deletions filterlist-abp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
[Adblock Plus]
! Title: FMHY Unsafe sites filterlist
! Description: Blocks sites in the fmhy unsafe sites filterlists
! Last modified: 19 May 2024 17:42 UTC
! Homepage: https://github.com/WindowsAurora/FMHYFilterlist
! License: https://github.com/WindowsAurora/FMHYFilterlist/blob/main/LICENSE
! Issues: https://github.com/WindowsAurora/FMHYFilterlist/issues
! Entries: 204
! Format: abp

! Unsafe game sites
||igg-games.com^
||igg-games.cc^
||oceanofgames.com^
||oceansofgamess.com^
||oceantogames.com^
||oceanofgamesu.com^
||oceanofapks.com^
||oceanofgame.cc^
||blackboxrepacke.com^
||crackingpatching.com^
||www.crackingpatching.org^
||crackingpatching.org^
||cracked-games.org^
||www.wifi4games.com^
||wifi4games.com^
||wifi4games.net^
||gamefabrique.com^
||gamefabrique.ru^
||steamunlocked.net^
! Pirate bay proxies And clones
||thepiratebay.org^
||pirate-bays.net^
||piratebayproxy.net^
||www.pirateproxy-bay.com^
||pirateproxy-bay.com^
||thepiratebay3.co^
||thepiratebay10.info^
||thepiratebay7.com^
||thepiratebay0.org^
||thepiratebay10.org^
||pirateproxy.live^
||thehiddenbay.com^
||piratebay.live^
||thepiratebay.zone^
||tpb.party^
||thepiratebay.party^
||piratebay.party^
||piratebayproxy.live^
||pirateproxylive.org^
||thepiratebay10.xyz^
||thepiratebay1.live^
||thepiratebays.info^
||thepiratebays.live^
||thepiratebay1.top^
||thepiratebay1.info^
||thepiratebay.rocks^
||thepiratebay.vet^
! Fake Fitgirl repacks sites
||fitgirl-repack.site^
||fitgirl-repack.com^
||fitgirlrepacks.org^
||fitgirl-repacks.website^
||fitgirlrepacks.co^
||fitgirlrepack.games^
||fitgirl.cc^
||fitgirlrepacksite.com^
||fitgirlrepacks.in^
||fitgirl-repacks.cc^
||fitgirl-repacks.to^
||ww9.fitgirl-repacks.xyz^
||fitgirl-repacks.xyz^
||fitgirl-repack.net^
||fitgirlpack.site^
||fitgirl-repack.org^
||fitgirlrepacks.pro^
||fitgirlrepack.games^
||fitgirltorrent.com^
||fitgirl-repacks.vip^
||fitgirlrepackz.com^
||fitgirl-repacks.theproxy.vip^
! Software / App Sites
||getintopc.com^
||getintopc.cc^
||igetintopc.com^
||www.getintomac.net^
||getintomac.net^
||getinmac.com^
||getitintopc.com^
||www.sadeempc.com^
||sadeempc.com^
||sadeemapk.com^
||karanpc.com^
||filecr.com^
||ftuapps.io^
||ftuapps.dev^
||www.ftuapps.me^
||ftuapps.me^
||s0ft4pc.com^
||soft4pc.net^
||portable4pc.com^
||crackshash.org^
||crackshash.com.atlaq.com^
||haxnode.net^
||mrepo.org^
||mainrepo.org^
||yasdl.com^
||allpcworld.com^
||allpcworld.co^
||allpcworlds.com^
||rsload.net^
||store.app-valley.vip^
||app-valley.vip^
||appvalley-apk.com^
||tutubox.io^
||www.cnet.com^
||cnet.com^
||download.com^
||www.zdnet.com^
||zdnet.com^
||en.softonic.com^
||softonic.com^
! Torrent Sites / Clients
||thekickasstorrents.com^
||kickass-official.blue^
||vstorrent.org^
||www.utorrent.com^
||utorrent.com^
||www.bittorrent.com^
||bittorrent.com^
||www.bitcomet.com^
||bitcomet.com^
||www.frostwire.com^
||frostwire.com^
||www.bitlord.com^
||bitlord.com^
||bitlorddl.com^
||1377x.to^
! Software / Apps
||limewire.com^
||downloadlynet.ir^
||downloadly.ir^
||downloadly.net^
||downloadlyir.com^
||www.opera.com^
||opera.com^
||www.mcafee.com^
||mcafee.com^
||www.mcafeemobilesecurity.com^
||mcafeemobilesecurity.com^
||avast.com^
||www.avg.com^
||avg.com^
||www.gendigital.com^
||gendigital.com^
||us.norton.com^
||norton.com^
||login.norton.com^
||www.nortonlifelock.com^
||nortonlifelock.com^
||www.avira.com^
||avira.com^
||my.avira.com^
||www.ccleaner.com^
||ccleaner.com^
||www.ccleanercloud.com^
||ccleanercloud.com^
||www.privateinternetaccess.com^
||privateinternetaccess.com^
||www.expressvpn.com^
||expressvpn.com^
||zenmate.com^
||www.cyberghostvpn.com^
||cyberghostvpn.com^
||www.kape.com^
||kape.com^
||bluesmods.com^
||bluekik.pro^
||kik.com^
||tlauncher.org^
||tlauncher.co.com^
||polymc.org^
||www.gshade.org^
||gshade.org^
||www.totalav.com^
||totalav.com^
||help.totalav.com^
||www.pcprotect.com^
||pcprotect.com^
! Fake Zlib Sites
||zlib.is^
||z-lib.ai^
||z-lib.club^
||z-lib.dev^
||z-lib.ink^
||z-lib.li^
||z-lib.nl^
||zlib.to^
||zlibrary.to^
||zlibrary.is^
||z-lib.io^
||z-lib.ee^
||z-lib.tf^
||z-lib.wf^
||z-lib.yt^
||z-lib.id^
||z-lib.ws^
||z-lib.lol^
||zlibis.com^
||zlibrary-global.com^
||zlib-official.com^
||zlibrary.lol^
||z-library.live^
||z-library.wiki^
||z-lib.wiki^
||-library.blog^
||z-library.help^
||z-library-proxy.com^
! Fake Windows Activators
||kmsmatrix.com^
||kms-pc.com^
||ezcrack.info^
Loading

0 comments on commit 77d3618

Please sign in to comment.