How can I add EasyList type of URLs manually into Thunderbird? Or, how can I add AdBlock or uBlock-Origin or Alternative addon into Thunderbird?
DETAILS+EXTRA INFO:
Thunderbird is primarily an email client, but it can also do many other functions: instant-messaging/chat, it can do various type of interactions with various types of webservices to obtain user-preferred data, it also contains lightweight web-browser.
I'm using Thunderbird v68.11.0 on MacOS 10.15.0 (64bit-only) (Catalina).
I also use TB on Windows10.
I use "BrowseInTab" addon inside TB to open a browser tab in TB, to access email websites directly inside TB, for those email-service providers who do not provide free IMAPS/POPS/SMTPS service.
As of July-2020, there is NO AdBlock or AdBlockPlus or any alternative addon (uBlock-origin,etc) available directly from Thunderbird-addons site. AdBlock addon stopped appearing in search results inside TB.
ISSUES: Some ADs play/show not only images, but videos too (or very fast changing (aka, animated) GIFs), & show too many annoying/flashing or adult contents, etc , Multiple ADs are shown even inside multiple popups inside a single browsing tab, and began to consume too much computing resources, and those activities reach to a point where TB consumes much more computing-resource than even a video player!
I can tolerate up to: simple & small-size TEXT based ADs, or tiny-image based non-annoying & small ADs , I can also tolerate if+when they use very-very less-amount of computing resources ONLY-WHEN computer-hardwares go into IDLE mode or when AD uses resources in lowest-priority mode, ( but even then those activities are still using/consuming/occupying memory/files/etc ).
Big Problems are: most ADs & their supporters & their implementors are invading Privacy or intrusive or profiling or harvesting/mining/STEALING user's data, etc thus breaking Privacy-Rights, and did not obtain my/user's specific fully-aware consent/permission before showing each specific AD, and did not obtain my/user's permission to consume my/user's computing-resources & deprive my/user's actual works/programs, etc.
EasyList contain list of websites that has list of AD-providers, privacy invaders, etc . There are also few other lists (EasyPrivacy, Peter Lowe’s ad/tracking/malware servers, Malicious URL Blocklist, uBlock-Origin, etc) for listing harmful actors, exploiters, Spammers, adult-AD-sites, malware/virus-distributors, user's-data-miners, etc.
Here i will use just "EasyList",etc to indicate all of those various lists.
Please suggest solutions+instructions for these:
- how can i load AdBlock or uBlock-origin addon into Thunderbird ?
- or, AdBlock/uBlockOrigin alternative addon for TB ?
- or, how to manually extract/obtain the EasyList or similar-list that is used by AdBlock or similar addon to block ADs,
how to manually add/join/combine those to create one final combined list & how to add it into TB or use for TB ? i'm ok with using 'regex' on TextMate,etc.
as AdBlock (or uBlock-Origin) is now(July-2020) Not-available do i need to use another addon to load the URL list & use it to block or redirect into void ? - or, how to convert EasyList type of lists into a standard-URL list ? how to copy-paste that directly+manually into system's
/etc/hostsfile, to block all those websites/URLs ? - or, how to convert EasyList based URLs into standard-URL list, & how to configure PF-firewall on MacOS to block sites based-on URLs/website-address (aka: domain-name) (and not-only based-on IP-adrs) ?
I would prefer solutions for above cases/requests that utilize or compatible-with these : scripts,parsers,etc that is using or compatible-with Bash [v3.2.57(1)], Perl [perl 5, version 18, subversion 4 (v5.18.4)], etc, Or source-code of C/objC based programs compile-able on [Xcode command-line-tools(CLT) 11.5, Apple clang version 11.0.3 (clang-1103.0.32.62), Target: x86_64-apple-darwin19.6.0, Thread model: posix, MacOSX/Catalina/64bit, LLVM 9.0.0, Swift 5.2.4] and gcc/mingw64 on Windows], or manual instructions, etc.
IDEAS/PARTIAL-SOLUTIONS:
I'm adding helpful & more links/ideas related to above sections, so that an answer provider/giver can get more ideas on how to create helpful answer more quickly & easily, to answer my question:
- AdBlockPlus-easylist parser, but python based.
- add an anchor in /etc/pf.conf file like this (for MacOS):
cmd: nano "/etc/pf.conf"(then add below 2-lines):
anchor "myBlocklist"
load anchor "myBlocklist" from "/etc/pf.anchors/myBlocklist"
cmd: nano "/etc/pf.anchors/myBlocklist"(then add IP-adrs list like below line. in below only 1-example IP-adrs line is shown)
block drop log quick on en0 from any to 1.2.3.4 - hopefull, atleast uBlock-origin will come with a solution for absence in Thunderbird, otoh may be my hopes are too high . ( Can someone help by placing more requests for a TB release in their github site? ).
- download easylist,etc type of list file , parse easylist,etc to combine into one file , replace code portions to have correct+full URLs, apply in
/etc/hosts.
SOLUTION # 1 :
Use uBlock addon in Thunderbird(TB) :
Load uBlock in this way (summary: download addon XPI file from Firefox addon site, then load XPI into Thunderbird):
https://addons.mozilla.org/en-US/firefox/
"uBlock"or"uBlock Origin"addon, search result should show it, go into it, make sure it is from Developer"Raymond Hill".[ + Add to Firefox ]button, & choose the option"Save link as"or something similar (if you use different than Firefox).save the XPI file
ublock_origin-1.28.4-an+fx.xpiin yourDownloads( ~/Downloads ) folder.Thunderbird>Tools>Addons>find the line that shows
"Manage Your Extensions", there is a ⚙ "GEAR" button in its right-side, that gear also has a tiny ▼ down-arrow symbol next to it, to indicate it has a drop-down menu/options, Click on that dropdown option,choose
"Install Add-on From File"option > browse intoDownloadsfolder & choose theublock_origin-1.28.4-an+fx.xpifile >"Open">select
"Accept"to permit/allow it to access what it needs to >select
"Done"/"Ok".Goto its
"Preferences"button to configure further, if you need to.i have tried it, tested it, works great. Options can be set as well.
Note: this is a good temporary solution for now until uBlock devs release correct replacement. So we do need to request uBlock-Origin devs in Github (here i think) to release a correct one correctly for the Thunderbird.
SOLUTION # 2 :
Create a combined block-list, & apply on where applicable, i.e
/etc/hostsfile:Here(Reddit:/r/pihole) is a bash & perl script combination, that can obtain various latest list file, then combine them, Thank to the dev who posted it there 4yrs ago. Links are not right there anymore, etc, but script commands are valid, and needs lots of improvements . A simple adaptation is shown below, you must understand coding pattern & reason, & modify further yourself:
In Windows, please get Cygwin package manager to get Unix, Linux tools, in Cygwin based (bash)-shell you can use/run below commands, examples, etc . Instead of Cygwin you can also obtain MSYS2 shell for the mingw64 toolchain, as you indicated you want to use those Open-Source tools to develop/compile programs . Windows10 also allows to get Debian-GNU/Linux from AppStore, its not complete but should be sufficient for development related purpose, so you may use that also if you need GNU/Linux . And another option is Homebrew package-manager but it does-not respect Privacy-Rights, so choice is yours.
easylist.plfile : this script will go thru a file and filter out anything that doesn't match a domain name, which will allow you to use lists in the easylist format.lists.lstfile w/only 6 lists, please modify them to updated & correct list(s), which you want to apply for your implementation case:manual-easylist.shfile (developed by reddit user) : it downloads the sources above, then parses them using easylist.pl, then appends them to the blacklist (and cleans any duplicates), and finally runs"gravity.sh"to update the HOSTS file in Raspberry-Pi, so change the line with "gravity" to suit with your OS/distro.either run
cmd: bash "manual-easylist.sh"Or schedule it in cron.( Do not use the word
cmd:as part of a command, use the actual command shown after it. )/etc/hostsfile you could do something like this to change HOSTS file:cmd: sudo nano /private/etc/hostscopy-paste from
"blacklist.txt"into nano editor in Terminal.when changes+editing completes, press
[Control]+[X]to exit nano editor, press[Y]to save, and press[Return]to overwrite old content with new changes.( i may later add complete script(s) to do this on MacOS & Debian-GNU/Linux & Windows )
for MacOSX 10.11, 10.12 & later :
cmd: sudo killall -HUP mDNSResponder && { say DNS cache has been flushed } || { say Some error occurred, could not flush DNS cache }for MacOSX Snow-Leopard :
cmd: sudo dscacheutil -flushcachefor MacOS X Mavericks :
cmd: sudo dscacheutil -flushcache ; sudo killall -HUP mDNSResponderfor MacOS X Mountain Lion, and Lion :
cmd: sudo killall -HUP mDNSResponder ; sudo discoveryutil mdnsflushcachefor MacOSX Yosemite :
cmd: sudo discoveryutil mdnsflushcache && { say mdnsflushcache flushed } ; sudo discoveryutil udnsflushcaches && { say udnsflushcaches flushed }cmd: ipconfig /flushdns.MacOS/Unix/Linux usually pre-includes "dig" tool. To use "dig" tool in Windows, get ISC BIND installer for Windows & run it, choose "Tools-only" option.
cmd: dig www.google.com. +short172.217.4.164google website was not blocked by
/etc/hostsso you see above ip-adrs172.217.4.164.if we add below 2-lines in HOSTS file to test google domain name:
0.0.0.0 www.google.com0.0.0.0 google.comthen, running
digagain will show result like this:cmd: dig www.google.com. +shortHost not foundOur above test with google domain name is done, So now remove those two google lines from
/etc/hostsHOSTS file, or else you'll not be able to visit the site./etc/host& AdBlocklist.