如何手动将 EasyList 类型的 URL 添加到 Thunderbird 中?或者,如何将 AdBlock 或 uBlock-Origin 或 Alternative 插件添加到 Thunderbird 中?
详情+额外信息:
Thunderbird主要是一个电子邮件客户端,但它也可以做许多其他功能:即时消息/聊天,它可以与各种类型的Web服务进行各种类型的交互以获取用户喜欢的数据,它还包含轻量级Web浏览器。
我在MacOS 10.15.0(仅限64位)(Catalina).
我也在Windows10上使用TB。
我使用TB内的"BrowseInTab"插件打开TB中的浏览器选项卡,直接在TB内访问电子邮件网站,适用于那些不提供免费IMAPS/POPS/SMTPS服务的电子邮件服务提供商。
截至 2020 年 7 月,没有 AdBlock 或 AdBlockPlus 或任何替代插件(uBlock 来源等)直接从 Thunderbird-addons 站点获得。AdBlock 插件不再出现在 TB 内的搜索结果中。
问题:一些广告不仅播放/显示图像,还播放/显示视频(或非常快速变化(又名动画)GIF),并显示太多烦人/闪烁或成人内容等,甚至在单个浏览选项卡内的多个弹出窗口中显示多个广告,并开始消耗过多的计算资源,这些活动达到TB消耗的计算资源甚至比视频播放器多得多的程度! 我可以容忍:基于简单和小尺寸的基于文本的广告,或基于小图像的非烦人和小广告,我也可以容忍如果+当他们使用非常非常少的计算资源时,只有当计算机硬件进入空闲模式或当AD以最低优先级模式使用资源时,(但即便如此,这些活动仍在使用/消耗/占用内存/文件/等).
最大的问题是:大多数广告及其支持者及其实施者正在侵犯隐私或侵入或分析或收集/挖掘/窃取用户的数据等,从而侵犯了隐私权,并且在显示每个特定广告之前没有获得我/用户特定的完全知情同意/许可,也没有获得我/用户的许可来消费我/用户的计算资源并剥夺我/用户的实际作品/程序, 等。
简易列表包含包含广告提供商、隐私入侵者等列表的网站列表。还有一些其他列表(EasyPrivacy,Peter Lowe的广告/跟踪/恶意软件服务器,恶意URL阻止列表,uBlock-Origin等)用于列出有害行为者,攻击者,垃圾邮件发送者,成人广告站点,恶意软件/病毒分发者,用户数据挖掘者等
在这里我将仅使用"EasyList"等来指示所有这些不同的列表。
请提出解决方案+说明:
- 如何将 AdBlock 或 uBlock 源插件加载到 Thunderbird 中?
- 或者,AdBlock/uBlockOrigin替代TB插件?
- 或者,如何手动提取/获取 AdBlock 或类似插件用来阻止广告的 EasyList 或类似列表,
如何手动添加/加入/组合它们以创建一个最终的组合列表以及如何将其添加到 TB 中或用于 TB ? 我可以在 TextMate 上使用"正则表达式"等
as 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 [perl5,版本18,subversion 4(v5.18.4)]等,或可在[Xcode命令行工具(CLT)11.5,Apple clang版本11.0.3(clang-1103.0.32.62)上编译的基于C/objC的程序的源代码,目标:x86_64-苹果-达尔文19.6.0,线程模型: posix, MacOSX/Catalina/64bit, LLVM 9.0.0, Swift 5.2.4] 和 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 个示例 IP-ADRS 行)block drop log quick on en0 from any to 1.2.3.4
- 希望,至少uBlock起源会为雷鸟缺席提供解决方案,otoh可能是我的希望太高了。(有人可以通过在他们的 github 站点中提出更多 TB 发布请求来提供帮助吗? 下载易列表
- 等类型的列表文件,解析易名单等合并为一个文件,替换代码部分以获得正确+完整URL,在
/etc/hosts
中应用。
在 Thunderbird(TB) 中使用 uBlock 插件 :
以这种方式加载 uBlock(摘要:从 Firefox 插件站点下载插件 XPI 文件,然后将 XPI 加载到 Thunderbird):
- 转到 Mozilla Firefox 插件站点 :
https://addons.mozilla.org/en-US/firefox/ - 搜索
"uBlock"
或"uBlock Origin"
插件,搜索结果应该显示它,进入它,确保它来自开发者"Raymond Hill"
。 - 右键单击
[ + Add to Firefox ]
按钮,然后选择选项"Save link as"
或类似的东西(如果您使用与Firefox不同的选项).
将XPI文件ublock_origin-1.28.4-an+fx.xpi
保存在Downloads
(~/下载)文件夹中。 - 转到/开始
Thunderbird
>Tools
>Addons
>
找到显示"Manage Your Extensions"
的行,⚙其右侧有一个"GEAR"按钮,该齿轮旁边还有一个微小的 ▼ 向下箭头符号,表示它有一个下拉菜单/选项,单击该下拉选项,
选择"Install Add-on From File"
选项>浏览到Downloads
文件夹并选择ublock_origin-1.28.4-an+fx.xpi
文件>"Open"
>
select"Accept"
以允许/允许它访问所需的内容>
select"Done"
/"Ok"。 - 现在它可以在 Thunderbird.
转到它的"Preferences"
按钮进行进一步配置,如果您需要的话.
我已经尝试过,测试过它,效果很好。也可以设置选项。
注意:这是一个很好的临时解决方案,直到uBlock开发人员发布正确的替换。因此,我们确实需要在Github中请求uBlock-Origin开发人员(我认为在这里)为Thunderbird正确发布正确的版本。
SOLUTION # 2 :
创建一个组合的阻止列表,并在适用的情况下应用,即/etc/hosts
file:
Here(Reddit:/r/pihole)是一个bash&perl脚本组合,可以获得各种最新的列表文件,然后组合它们,感谢4年前在那里发布它的开发人员。链接不再存在,等等,但脚本命令是有效的,需要很多改进。一个简单的改编如下所示,你必须了解编码模式和原因,并进一步修改自己:
- MacOS(最高至Catalina/10.15或BugSur/11.0)预先包含各种Unix和Linux工具,因此下面的命令,示例等直接有效,无需任何进一步的软件包管理器。你可以尝试MacPorts获得更多+最新的Unix + Linux工具,(Homebrew包管理器不尊重隐私权1,2,3,4,5,6,...,所以选择权在你).
在Windows中,请获取Cygwin包管理器以获取Unix,Linux工具,在基于Cygwin的(bash)-shell中,您可以使用/运行以下命令,示例等。除了Cygwin,您还可以获得mingw64工具链的MSYS2 shell,因为您表示要使用这些开源工具来开发/编译程序。Windows10还允许从AppStore获取Debian-GNU/Linux,它不完整,但应该足以用于开发相关的目的,所以如果你需要GNU/Linux,你也可以使用它。另一种选择是Homebrew包管理器,但它不尊重隐私权,所以选择权在你。 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( "$hostn" ); }
- MacOS 到 BigSur(11.0) 预包含 Perl。获取 Strawberry Perl for Windows。
- 这是一个只有6个列表的示例
lists.lst
文件,请将它们修改为更新和正确的列表,您要将其应用于您的实施案例: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
- 要再次下载列表并重新创建另一个组合的阻止列表文件,
要么运行cmd: bash "manual-easylist.sh"
要么在 cron.
( 不要使用单词cmd:
作为命令的一部分,请使用它后面显示的实际命令。 - 在 MacOS 中,要在
/etc/hosts
文件中添加列表,您可以执行以下操作来更改 HOSTS file:cmd: sudo nano /private/etc/hosts
复制粘贴从"blacklist.txt"
到 Terminal.
当更改+编辑完成后,按[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 }
for MacOSX Snow-Leopard :cmd: sudo dscacheutil -flushcache
for MacOS X Mavericks :cmd: sudo dscacheutil -flushcache ; sudo killall -HUP mDNSResponder
for MacOS X Mountain Lion和Lion :cmd: sudo killall -HUP mDNSResponder ; sudo discoveryutil mdnsflushcache
for MacOSX Yosemite :cmd: sudo discoveryutil mdnsflushcache && { say mdnsflushcache flushed } ; sudo discoveryutil udnsflushcaches && { say udnsflushcaches flushed }
- 刷新 DNS(在 Windows 上):使用管理权限运行命令提示符,然后运行
cmd: ipconfig /flushdns
。 - 测试它:
MacOS/Unix/Linux 通常预先包含"挖掘"工具。要在Windows中使用"dig"工具,请获取适用于Windows的ISC BIND安装程序并运行它,选择"仅限工具"选项.cmd: dig www.google.com. +short
172.217.4.164
google网站未被/etc/hosts
阻止,因此您会看到上面的ip-adrs172.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
我们上面对谷歌域名的测试已经完成,所以现在从/etc/hosts
HOSTS 文件中删除这两条谷歌行,否则您将无法访问该网站。 - 这是
/etc/host
和AdBlocklist上的一个旧讨论页面。