content-farm-terminator
content-farm-terminator copied to clipboard
建議提供hostfile以及uBlock Origin相容設定檔
由於Android版Firefox暫不支援終結內容農場,也許可暫時作為替代方案,感謝。
hostfile 我不熟,不曉得是否有規則文件?
#38 有試做 ABP (其實是 uBO) 規則轉換腳本,有興趣可以研究一下。
hostfile 我不熟,不曉得是否有規則文件?
#38 有試做 ABP (其實是 uBO) 規則轉換腳本,有興趣可以研究一下。
指套用於/etc/hosts的檔案,從DNS層面阻擋內容農場,可以相容於各作業系統,也能套用在uBlock Origin和Android的AdAway。
# /etc/hosts
127.0.0.1 kknews.cc
127.0.0.1 read01.com
127.0.0.1 codertw.com
127.0.0.1 buzzhand.com
127.0.0.1 buzzorange.com
127.0.0.1 teepr.com
127.0.0.1 ptt01.cc
只是不會出現精美的警告畫面,實作的話需要架設HTTP Server+PHP再根據域名顯示警告頁面。底下為小弟文組程度的php試做品:
<html>
<head>
<title>"警告:內容農場"</title>
</head>
<body>
<?php
$contentFarms = array('kknews.cc', //內容農場
'read01.com',
'codertw.com',
'buzzhand.com',
'buzzorange.com',
'teepr.com',
'ptt01.cc');
$host = $_SERVER['HTTP_HOST']; //Server Hostname:Port
$domain = parse_url($host); //Server Hostname
if(in_array( $domain['host'], $contentFarms)) { //檢查Server Hostname是否在內容農場清單
//以下換成精美的警告頁面
echo "警告:內容農場: ";
echo $domain['host'];
}
?>
</body>
</html>
hosts 似乎不支援子網域篩選和 RegExp,這樣很難處理,或者轉換後遺失一大堆規則……
hosts能處理的的確有限。原本黑名單的規則中有*星號,除了blogspot.*以外不知道該替代成什麼?
SED1="s/\/\//#/g"
SED2="s/blogspot.\*/blogspot.com/g"
SED3="s/^/127.0.0.1\t/"
wget -O content-farms.txt "https://danny0838.github.io/content-farm-terminator/files/blocklist/content-farms.txt"
(cat content-farms.txt | grep -v https) >> content-farms-hosts.txt
sed -i "${SED1};${SED2};${SED3}" content-farms-hosts.txt
sed -i '1i# Title: 終結內容農場hosts' content-farms-hosts.txt
其中AdAway尚未測試成功,可能是因為self-signed certificate。
預覽

@hashashin1191 uBO 的 filter 不是已經有了嗎? @danny0838 我覺得提供 hosts 檔雖然要放棄掉 RegExp 等規則,但對於沒辦法支援 uBO filter 的環境,我覺得這是必要的一個取捨,只是該不該由這個 repo 來提供我覺得可以再考慮,內容農場越來越多的情況下,維護 list 可能會比維護程式本身要來的複雜
@hashashin1191 @DanSnow Blogger 支援 blogspot.tw 等頂層網域,只用 blogspot.com 無法完整封鎖。如果要自動轉換,光從 blogspot.* 無法反推該轉換成哪個頂層網域,如果要每個都轉成 blogspot.com + blogspot.tw + blogspot.us + ... 則可能讓清單爆炸性成長...
而 RegExp 規則該怎麼自動轉換也不好決定.....
這個專案主要是維護終結內容農場的規則表,我沒心力特地去管其他平台的事了,尤其很多需求沒有標準答案,要針對各種不同需求客製更為麻煩......
兩位如果有心,可以自己維護一個 repo 供 hostfile 或 uBO 使用,就像有人負責定期把 Git 的程式碼移植到 Git for Windows 一樣,只要說清楚原始檔來自這個 repo 並且把轉換腳本公開即可。
https://github.com/FutaGuard/FutaFilter/raw/master/nofarm_hosts.txt https://github.com/festum/anti-bias-media/raw/master/ublacklist.txt @danny0838 adblock規則相容性?
雖然說是有點久的 issue 了,不過我這邊把我以前寫的自己用的轉換成 uBO 規則的程式開源出來了,也弄了個會每天自動更新的 Github Action ,目前會無視 regex 的規則,只轉換 host 的部份 https://github.com/DanSnow/convert-content-farm-list
@DanSnow 謝謝。能加個操作說明會更好。因為這樣看我也不清楚如何使用XD
加了個簡單的操作說明了
我指的是 CLI script 如何執行。XD 不過有提供如何使用轉好的 uBO 規則總是好一點。
另外不提供 regex 規則的原因是?終結內容農場和 uBO 的 regex 規則應該差不多吧?
主要是因為 uBO 的主要規則並不是 regex ,而是有另外一種 syntax ,雖然 regex 的規則也是支援的,但可能會有效能問題,加上 uBO 是對所有的 request 執行規則的,目前是在打算要不要針對現有的 regex 各別寫專門的轉換規則,把 regex 轉成 uBO 的 filter
regex 效能的確是一個問題,目前也在傷腦筋,目前終結內容農場也是把多個 regex 規則合併以減少總數,但是這樣就會有一些巨大的規則,比較醜。(參 #44)
或許可以考慮加個 flag,產生的規則集就分含 regex 及不含 regex 的讓使用者選XD