Add/Use EasyList 类型的 URL 手动使用 Thunderbird 或添加 AdBlock/uBlock-Origin/Alt 插件

Add/Use EasyList type Of URLs Manually With Thunderbird Or Add AdBlock/uBlock-Origin/Alt Addon

如何将 URLs 的 EasyList 类型手动添加到 Thunderbird 中?或者,如何将 AdBlock 或 uBlock-Origin 或 Alternative 插件添加到 Thunderbird 中?

详情+额外信息:

Thunderbird主要是一个电子邮件客户端,但它也可以做很多其他的功能:instant-messaging/chat,它可以与各种类型的网络服务进行各种类型的交互以获得用户偏好的数据,它还包含轻量级网络浏览器。

我在 MacOS 10.15.0(仅限 64 位)(Catalina) 上使用 Thunderbird v68.11.0。
我还在 Windows10.

上使用 TB

对于那些不提供免费 IMAPS/POPS/SMTPS 服务的电子邮件服务提供商,我使用“BrowseInTab" addon inside TB to open a browser tab in TB, to

截至 2020 年 7 月,没有 AdBlock 或 AdBlockPlus or any alternative addon (uBlock-origin,etc) available directly from Thunderbird-addons 网站。 AdBlock 插件停止出现在 TB 内的搜索结果中。

问题:一些广告 play/show 不仅是图片,还有视频(或变化非常快的(又名动画)GIF),并且显示太多 annoying/flashing 或成人内容等,多个广告甚至显示在单个浏览选项卡内的多个弹出窗口中,并开始消耗过多的计算资源,这些活动达到了 TB 甚至比视频播放器消耗更多计算资源的程度! 我最多可以容忍:基于简单和小型文本的广告,或基于微型图像的非烦人的小型广告,我也可以容忍如果+当他们使用非常非常少的计算资源时,仅当计算机-硬件进入 IDLE 模式或当 AD 在最低优先级模式下使用资源时,(但即使那样这些活动仍然 using/consuming/occupying memory/files/etc )。
大问题是:大多数 AD 及其支持者及其实施者都在侵犯隐私或侵入或分析或 harvesting/mining/STEALING 用户数据等,从而破坏了隐私权,并且没有获得 my/user 的特定完全感知consent/permission 在显示每个特定广告之前,没有获得 my/user 的许可来消耗 my/user 的计算资源并剥夺 my/user 的实际 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,等等)用于列出有害行为者、剥削者、垃圾邮件发送者、成人广告网站、malware/virus-distributors、用户数据挖掘者等
在这里,我将仅使用“EasyList”等来表示所有这些不同的列表。

请针对这些建议解决方案+说明:

我更喜欢使用或兼容上述 cases/requests 的解决方案:使用或兼容 Bash[=81= 的脚本、解析器等] [v3.2.57(1)], Perl [perl 5, version 18, subversion 4 (v5.18.4)], 等等,或者基于 C/objC 的源代码程序可在 [Xcode 命令行工具 (CLT) 11.5、Apple clang 版本 11.0.3 (clang-1103.0.32.62) 上编译,目标:x86_64-apple-darwin19.6.0,线程模型:posix、MacOSX/Catalina/64bit、LLVM 9.0.0、Swift 5.2.4] 和 Windows] 上的 gcc/mingw64 或手动说明等

IDEAS/PARTIAL-SOLUTIONS:
我正在添加与上述部分相关的有用和更多 links/ideas,以便答案 provider/giver 可以获得更多有关如何更快更轻松地创建有用答案的想法,以回答我的问题:

  • AdBlockPlus-easylist 解析器,但基于 python。
  • 像这样在 /etc/pf.conf 文件中添加一个锚点(对于 MacOS):
    cmd: nano "/etc/pf.conf"(然后在下面添加两行):
    anchor "myBlocklist"
    load anchor "myBlocklist" from "/etc/pf.anchors/myBlocklist"
    cmd: nano "/etc/pf.anchors/myBlocklist"(然后像下面的行一样添加 IP-adrs 列表。在下面仅显示 1-example IP-adrs 行)
    block drop log quick on en0 from any to 1.2.3.4
  • 满怀希望,至少 uBlock-origin 会在 Thunderbird 中提供 absence 的解决方案,otoh 可能是我的希望太高了。 (有人可以通过在他们的 github 网站上提出更多 TB 发布请求来提供帮助吗?)。
  • download easylist等类型的列表文件,解析easylist等合并成一个文件,替换代码部分正确+完整URLs,在/etc/hosts中应用.

解决方案#1:
在 Thunderbird(TB) 中使用 uBlock 插件:
以这种方式加载 uBlock(总结:从 Firefox 插件站点下载插件 XPI 文件,然后将 XPI 加载到 Thunderbird):

  • 转到 Mozilla Firefox Addons 站点:
    https://addons.mozilla.org/en-US/firefox/
  • 搜索"uBlock""uBlock Origin"addon,搜索结果应该会显示,进去,确定是开发者"Raymond Hill".
  • right-click 在 [ + Add to Firefox ] 按钮上,并选择选项 "Save link as" 或类似的选项(如果您使用的不是 Firefox)。
    将 XPI 文件 ublock_origin-1.28.4-an+fx.xpi 保存在您的 Downloads ( ~/Downloads ) 文件夹中。
  • goto/start Thunderbird > Tools > Addons >
    找到显示 "Manage Your Extensions" 的行,在其 right-side 中有一个 ⚙ “GEAR” 按钮,该齿轮旁边还有一个小 ▼ down-arrow 符号,表示它有一个 drop-down menu/options,点击那个下拉选项,
    选择 "Install Add-on From File" 选项 > 浏览到 Downloads 文件夹并选择 ublock_origin-1.28.4-an+fx.xpi 文件 > "Open" >
    select "Accept" 到 permit/allow 它来访问它需要的东西 >
    select "Done"/“好的”。
  • 现在可以在 Thunderbird 中使用了。
    如果需要,转到其 "Preferences" 按钮以进一步配置。
    我已经尝试过,测试过,效果很好。也可以设置选项。

注意:在 uBlock 开发人员发布正确的替代品之前,这是一个很好的临时解决方案。所以我们确实需要请求 Github 中的 uBlock-Origin 开发人员(我认为 here)为 Thunderbird 正确发布一个正确的版本。


解决方案#2:
创建一个组合 block-list,并在适用的地方应用,即 /etc/hosts 文件:
Here(Reddit:/r/pihole) 是一个bash & perl 脚本组合,可以获取各种最新的列表文件,然后将它们组合起来,感谢 4 年前发布它的开发者。链接不再存在等等,但是脚本命令是有效的,并且需要大量改进。一个简单的适配如下所示,你必须了解编码模式和原因,并自己进一步修改:

  • MacOS(最多 Catalina/10.15 或 BugSur/11.0) pre-includes 各种 Unix 和 Linux 工具,因此下面的命令、示例等对其有效直接 package-manager。您可以尝试 MacPorts for more+latest Unix+Linux tools, (Homebrew package-manager does-not respect Privacy-Rights 1, 2, 3, 4, 5, 6、...,选择权在您手中。
    在 Windows 中,请获取 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 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,它不完整,但对于开发相关目的应该足够了,所以如果你需要 GNU/Linux 也可以使用它。另一个选择是 Homebrew package-manager 但它 does-not 尊重 Privacy-Rights,所以选择是你的。
  • easylist.pl 文件的内容:此脚本将遍历文件并过滤掉任何与域名不匹配的内容,这将允许您使用 easylist 格式的列表。
    #!/usr/bin/perl -w
    # Source: https://newspaint.wordpress.com/2014/08/18/filtering-easylist-for-hosts-file-style-adblock/
    
    use strict;
    
    my %hosts = ();
    while ( <> ) {
      if ( $_ =~ m/^\|\|([a-z][a-z0-9-_.]+\.([a-z]{2,3}))\^\s*$/ ) {
          $hosts{} = 1;
      }
    }
    
    foreach my $host ( sort keys %hosts ) {
      print( "$host\n" );
    }
    
  • MacOS 至 BigSur(11.0) pre-includes Perl。 Windows.
  • 获得 Strawberry Perl
  • 这里有一个示例 lists.lst 文件 w/only 6 个列表,请将它们修改为更新和正确的列表,您希望将其应用于您的实施案例:
    https://easylist-downloads.adblockplus.org/easylist.txt
    https://easylist-downloads.adblockplus.org/abpindo+easylist.txt
    https://raw.githubusercontent.com/ABPindo/indonesianadblockrules/master/subscriptions/abpindo.txt
    https://easylist-downloads.adblockplus.org/bulgarian_list+easylist.txt
    http://stanev.org/abp/adblock_bg.txt
    https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt
    
  • manual-easylist.sh 文件的内容(由 reddit 用户开发):它下载上面的源代码,然后使用 easylist.pl 解析它们,然后将它们附加到黑名单(并清除所有重复项),以及最后 运行s "gravity.sh" 更新 Raspberry-Pi 中的 HOSTS 文件,因此更改带有“gravity”的行以适合您的 OS/distro。
    #!/bin/bash
    for source in `cat lists.lst` ; do
      echo "$source" ;
      curl --silent $source >> ads.txt
      echo -e "\t`wc -l ads.txt | cut -d " " -f 1` lines downloaded"
    done
    
    echo -e "\nFiltering non-url content..."
    perl easylist.pl ads.txt > ads_parsed.txt
    rm ads.txt
    echo -e "\t`wc -l ads_parsed.txt | cut -d " " -f 1` lines after parsing"
    
    echo -e "\nRemoving duplicates..."
    sort -u ads_parsed.txt > ads_unique.txt
    rm ads_parsed.txt
    echo -e "\t`wc -l ads_unique.txt | cut -d " " -f 1` lines after deduping"
    
    cat ads_unique.txt >> /etc/pihole/blacklist.txt
    sort -u /etc/pihole/blacklist.txt > /etc/pihole/blacklist.txt2
    rm /etc/pihole/blacklist.txt
    mv /etc/pihole/blacklist.txt2 /etc/pihole/blacklist.txt
    rm ads_unique.txt
    
    # Below is for Raspberry-Pi. Change it suit with your OS/distro.
    sudo gravity.sh
    
  • 要再次下载列表并重新创建另一个组合的阻止列表文件,
    运行 cmd: bash "manual-easylist.sh" 或在 cron 中安排。
    (不要将单词 cmd: 用作命令的一部分,使用它后面显示的实际命令。)
  • 在 MacOS 中,要在 /etc/hosts 文件中添加列表,您可以这样做来更改 HOSTS 文件:
    cmd: sudo nano /private/etc/hosts
    copy-paste 从 "blacklist.txt" 进入终端中的 nano 编辑器。
    更改+编辑完成后,按[Control]+[X]退出纳米编辑器,按[Y]保存,按[Return]用新更改覆盖旧内容。
    (我稍后可能会添加完整的脚本来在 MacOS 和 Debian 上执行此操作-GNU/Linux & Windows )
  • 在 MacOS 上刷新 DNS(更多信息 here):
    对于 MacOSX 10.11、10.12 及更高版本:cmd: sudo killall -HUP mDNSResponder && { say DNS cache has been flushed } || { say Some error occurred, could not flush DNS cache }
    对于 MacOSX Snow-Leopard:cmd: sudo dscacheutil -flushcache
    对于 MacOS X Mavericks:cmd: sudo dscacheutil -flushcache ; sudo killall -HUP mDNSResponder
    对于 MacOS X Mountain Lion 和 Lion:cmd: sudo killall -HUP mDNSResponder ; sudo discoveryutil mdnsflushcache
    对于 MacOSX Yosemite:cmd: sudo discoveryutil mdnsflushcache && { say mdnsflushcache flushed } ; sudo discoveryutil udnsflushcaches && { say udnsflushcaches flushed }
  • 刷新 DNS(在 Windows 上):运行 Command-Prompt 具有管理权限,然后 运行 cmd: ipconfig /flushdns.
  • 测试一下:
    MacOS/Unix/Linux 通常 pre-includes “挖掘”工具。要在 Windows 中使用“dig”工具,请为 Windows & 运行 获取 ISC BIND 安装程序,选择“Tools-only”选项。
    cmd: dig www.google.com. +short
    172.217.4.164
    google 网站未被 /etc/hosts 阻止,所以您看到上面 ip-adrs 172.217.4.164.
    如果我们在 HOSTS 文件中添加以下两行来测试 google 域名:
    0.0.0.0 www.google.com
    0.0.0.0 google.com
    然后,运行ning dig 将再次显示如下结果:
    cmd: dig www.google.com. +short
    Host not found
    我们上面对 google 域名的测试已经完成,所以现在从 /etc/hosts HOSTS 文件中删除那两行 google ,否则你不会 b能够访问网站。
  • here/etc/host 和 AdBlocklist 上的旧讨论页面。