-2

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

详情+额外信息:

Thunderbird主要是一个电子邮件客户端,但它还可以做许多其他功能:即时消息/聊天,它可以与各种类型的 Web 服务进行各种类型的交互以获取用户喜欢的数据,它还包含轻量级 Web 浏览器。

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

对于不提供免费 IMAPS/POPS/SMTPS 服务的电子邮件服务提供商,我使用 TB 内的“ BrowseInTab ”插件在 TB 中打开浏览器选项卡,以直接访问 TB 内的电子邮件网站。

截至 2020 年 7 月, Thunderbird- addons网站上没有直接可用的 AdBlock 或AdBlockPlus或任何替代插件(uBlock-origin等) 。AdBlock 插件停止出现在 TB 内的搜索结果中。

问题:一些广告不仅播放/显示图像,还播放视频(或非常快速变化的(又名动画)GIF),并显示太多烦人/闪烁或成人内容等,甚至在多个弹出窗口内显示多个广告单个浏览标签,开始消耗过多的计算资源,这些活动达到了TB消耗的计算资源甚至比视频播放器还要多的地步!我最多可以容忍:基于简单和小尺寸文本的广告,或基于小图像的非烦人和小型广告,我也可以容忍如果+当他们使用非常非常少的计算资源时-仅在计算机时-硬件进入空闲模式或当 AD 以最低优先级模式使用资源时,(但即便如此,这些活动仍在使用/消耗/占用内存/文件/等)。
大问题是:大多数广告及其支持者及其实施者正在侵犯隐私或侵入或剖析或收集/挖掘/窃取用户的数据等,从而违反隐私权,并且之前没有获得我/用户的具体完全知情同意/许可显示每个特定的广告,并且没有获得我/用户的许可来消耗我/用户的计算资源和剥夺我/用户的实际作品/程序

EasyList包含具有广告提供者、隐私入侵者等列表的网站列表。还有一些其他列表(EasyPrivacyPeter Lowe 的广告/跟踪/恶意软件服务器恶意 URL 阻止列表uBlock-Origin等)用于列出有害参与者、利用者、垃圾邮件发送者、成人广告站点、恶意软件/病毒分发者、用户的-data-miners 等。
这里我将只使用“ EasyList ”等来表示所有这些不同的列表。

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

  • 如何将 AdBlock 或uBlock-origin插件加载到 Thunderbird 中?
  • 或者,用于 TB 的 AdBlock/uBlockOrigin 替代插件?
  • 或者,如何手动提取/获取AdBlock 或类似插件用于阻止广告的EasyList
    或类似列表, 如何手动添加/加入/组合这些以创建最终组合列表以及如何将其添加到 TB 或使用结核病?我可以在 TextMate 等上使用“正则表达式”。
    由于 AdBlock(或 uBlock-Origin)现在(2020 年 7 月)不可用,我需要使用另一个插件来加载 URL 列表并使用它来阻止或重定向到 void 吗?
  • 或者,如何将 EasyList 类型的列表转换为标准 URL 列表?如何直接+手动将其复制粘贴到系统/etc/hosts文件中,以阻止所有这些网站/URL?
  • 或者,如何将基于 EasyList 的 URL 转换为标准 URL 列表,以及如何在 MacOS 上配置 PF 防火墙以阻止基于 URL/网站地址(又名:域名)的站点(而不仅仅是基于 IP -adrs) ?

我更喜欢使用或兼容的上述情况/请求的解决方案:使用或兼容的脚本、解析器等Bash [v3.2.57(1)]、Perl [perl 5、版本 18、颠覆 4 ( v5.18.4)] 等,或基于 C/objC 的程序的源代码,可在 [Xcode command-line-tools(CLT) 11.5、Apple clang 版本 11.0.3 (clang-1103.0.32.62) 上编译,目标: 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],或者手动说明等。

想法/部分解决方案:
我正在添加与上述部分相关的有用和更多链接/想法,以便答案提供者/提供者可以获得更多关于如何更快速、更轻松地创建有用答案的想法,以回答我的问题:

  • AdBlockPlus-easylist解析器,但基于 python。
  • 像这样在 /etc/pf.conf 文件中添加一个锚点(对于 MacOS):(
    cmd: nano "/etc/pf.conf"然后添加以下 2 行):(
       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 的缺席提供解决方案,otoh 可能是我的希望太高了。(有人可以通过在他们的 github 网站上提出更多关于 TB 版本的请求来提供帮助吗?)。
  • 下载easylist等类型的列表文件,解析easylist等合并为一个文件,替换代码部分以获得正确+完整的URL,应用于/etc/hosts.
4

1 回答 1

-2

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

  • 转到 Mozilla Firefox 插件站点:
        https ://addons.mozilla.org/en-US/firefox/
  • 搜索"uBlock"or "uBlock Origin" addon,搜索结果应该显示它,进入它,确保它来自 Developer "Raymond Hill"
  • 右键单击[ + Add to Firefox ]按钮,并选择选项"Save link as"或类似的东西(如果您使用的不是 Firefox)。
    将 XPI 文件保存ublock_origin-1.28.4-an+fx.xpiDownloads( ~/Downloads ) 文件夹中。
  • 转到/开始Thunderbird> Tools> Addons>
    找到显示的行,"Manage Your Extensions"右侧有一个⚙“齿轮”按钮,该齿轮旁边还有一个小 ▼ 向下箭头符号,表示它有一个下拉菜单/选项,单击该下拉选项,
    选择"Install Add-on From File"选项>浏览Downloads文件夹并选择ublock_origin-1.28.4-an+fx.xpi文件>>"Open"选择
    允许"Accept"/允许它访问所需的内容>
    选择"Done"/“确定”。
  • 现在它可以在 Thunderbird 中使用了。如果需要,请
    转到其按钮以进一步配置。 我试过了,测试了,效果很好。也可以设置选项。"Preferences"

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


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

  • MacOS(至 Catalina/10.15 或 BugSur/11.0)预包含各种 Unix 和 Linux 工具,因此以下命令、示例等对其直接有效,无需任何进一步的包管理器。您可以尝试MacPorts以获得更多+最新的 Unix+Linux 工具,(Homebrew 包管理器不尊重隐私权123456、 ...,所以选择是你的)。
    在 Windows 中,请获取Cygwin包管理器以获取 Unix、Linux 工具,在基于 Cygwin 的 (bash)-shell 中,您可以使用/运行以下命令、示例等。除了 Cygwin,您还可以获得MSYS2 shell对于 mingw64 工具链,正如您所指出的,您想使用这些开源工具来开发/编译程序。Windows10 还允许从AppStore获取 Debian-GNU/Linux ,它并不完整,但应该足以用于开发相关目的,所以如果你需要 GNU/Linux 也可以使用它。另一个选项是 Homebrew package-manager,但它不尊重隐私权,所以选择权在你。
  • 文件内容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} = 1;
      }
    }
    
    foreach my $host ( sort keys %hosts ) {
      print( "$host\n" );
    }
    
  • MacOS 到 BigSur(11.0) 预包含 Perl。获取适用于 Windows 的草莓 Perl
  • 这是一个示例lists.lst文件,仅包含 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解析它们,然后将它们附加到黑名单(并清除所有重复项),最后运行"gravity.sh"以更新Raspberry-Pi中的HOSTS文件,所以用“重力”改变线以适应你的操作系统/发行版。
    #!/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
    
  • 要再次下载列表并重新创建另一个组合的阻止列表文件,请在 cron
    中运行或安排它。 (不要将这个词用作命令的一部分,使用后面显示的实际命令。)cmd: bash "manual-easylist.sh"
    cmd:
  • 在 MacOS 中,要在/etc/hosts文件中添加列表,您可以执行以下操作来更改 HOSTS 文件:从终端
    cmd: sudo nano /private/etc/hosts
    复制粘贴"blacklist.txt"到 nano 编辑器中。
    更改+编辑完成后,按[Control]+[X]退出 nano 编辑器,按[Y]保存,然后按[Return]用新更改覆盖旧内容。
    (我稍后可能会在 MacOS 和 Debian-GNU/Linux 和 Windows 上添加完整的脚本来执行此操作)
  • 在 MacOS 上刷新 DNS(更多信息在这里):
    对于 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 上):以管理权限运行命令提示符,然后运行cmd: ipconfig /flushdns​​.
  • 测试一下:
    MacOS/Unix/Linux 通常预先包含“挖掘”工具。要在 Windows 中使用“挖掘”工具,请获取适用于 Windows 的 ISC BIND 安装程序并运行它,选择“仅工具”选项。
      cmd: dig www.google.com. +short
      172.217.4.164
    谷歌网站没有被阻止,/etc/hosts所以你看到上面的 ip-adrs 172.217.4.164
    如果我们在 HOSTS 文件中添加以下 2 行来测试 google 域名:
      0.0.0.0 www.google.com
      0.0.0.0 google.com
    然后,dig再次运行将显示如下结果:
      cmd: dig www.google.com. +short
      Host not found
    我们上面的 google 域名测试已完成,所以现在从/etc/hostsHOSTS 文件中删除这两个 google 行,否则你'将无法访问该站点。
  • /etc/host是关于& AdBlocklist的旧讨论页面。
于 2020-08-06T14:45:53.187 回答