content-farm-terminator icon indicating copy to clipboard operation
content-farm-terminator copied to clipboard

建議提供hostfile以及uBlock Origin相容設定檔

Open ghost opened this issue 4 years ago • 14 comments

由於Android版Firefox暫不支援終結內容農場,也許可暫時作為替代方案,感謝。

ghost avatar Jan 27 '21 14:01 ghost

hostfile 我不熟,不曉得是否有規則文件?

#38 有試做 ABP (其實是 uBO) 規則轉換腳本,有興趣可以研究一下。

danny0838 avatar Jan 28 '21 14:01 danny0838

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>

ghost avatar Jan 30 '21 13:01 ghost

hosts 似乎不支援子網域篩選和 RegExp,這樣很難處理,或者轉換後遺失一大堆規則……

danny0838 avatar Jan 31 '21 09:01 danny0838

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。

預覽

Screenshot_20210202-224825_Fennec Screenshot_20210202-225058_AdAway

ghost avatar Feb 02 '21 14:02 ghost

@hashashin1191 uBO 的 filter 不是已經有了嗎? @danny0838 我覺得提供 hosts 檔雖然要放棄掉 RegExp 等規則,但對於沒辦法支援 uBO filter 的環境,我覺得這是必要的一個取捨,只是該不該由這個 repo 來提供我覺得可以再考慮,內容農場越來越多的情況下,維護 list 可能會比維護程式本身要來的複雜

DanSnow avatar Feb 04 '21 07:02 DanSnow

@hashashin1191 @DanSnow Blogger 支援 blogspot.tw 等頂層網域,只用 blogspot.com 無法完整封鎖。如果要自動轉換,光從 blogspot.* 無法反推該轉換成哪個頂層網域,如果要每個都轉成 blogspot.com + blogspot.tw + blogspot.us + ... 則可能讓清單爆炸性成長...

而 RegExp 規則該怎麼自動轉換也不好決定.....

這個專案主要是維護終結內容農場的規則表,我沒心力特地去管其他平台的事了,尤其很多需求沒有標準答案,要針對各種不同需求客製更為麻煩......

兩位如果有心,可以自己維護一個 repo 供 hostfile 或 uBO 使用,就像有人負責定期把 Git 的程式碼移植到 Git for Windows 一樣,只要說清楚原始檔來自這個 repo 並且把轉換腳本公開即可。

danny0838 avatar Feb 04 '21 15:02 danny0838

https://github.com/FutaGuard/FutaFilter/raw/master/nofarm_hosts.txt https://github.com/festum/anti-bias-media/raw/master/ublacklist.txt @danny0838 adblock規則相容性?

c2xusnpq6 avatar Mar 18 '21 14:03 c2xusnpq6

雖然說是有點久的 issue 了,不過我這邊把我以前寫的自己用的轉換成 uBO 規則的程式開源出來了,也弄了個會每天自動更新的 Github Action ,目前會無視 regex 的規則,只轉換 host 的部份 https://github.com/DanSnow/convert-content-farm-list

DanSnow avatar Apr 23 '22 16:04 DanSnow

@DanSnow 謝謝。能加個操作說明會更好。因為這樣看我也不清楚如何使用XD

danny0838 avatar Apr 24 '22 06:04 danny0838

加了個簡單的操作說明了

DanSnow avatar Apr 24 '22 11:04 DanSnow

我指的是 CLI script 如何執行。XD 不過有提供如何使用轉好的 uBO 規則總是好一點。

另外不提供 regex 規則的原因是?終結內容農場和 uBO 的 regex 規則應該差不多吧?

danny0838 avatar Apr 24 '22 12:04 danny0838

主要是因為 uBO 的主要規則並不是 regex ,而是有另外一種 syntax ,雖然 regex 的規則也是支援的,但可能會有效能問題,加上 uBO 是對所有的 request 執行規則的,目前是在打算要不要針對現有的 regex 各別寫專門的轉換規則,把 regex 轉成 uBO 的 filter

DanSnow avatar Apr 24 '22 16:04 DanSnow

regex 效能的確是一個問題,目前也在傷腦筋,目前終結內容農場也是把多個 regex 規則合併以減少總數,但是這樣就會有一些巨大的規則,比較醜。(參 #44)

或許可以考慮加個 flag,產生的規則集就分含 regex 及不含 regex 的讓使用者選XD

danny0838 avatar Apr 25 '22 15:04 danny0838

新版用腳本及可加參數的配置檔管理一些複雜規則,並加入 hostsubo 等規則表,可以參考看看。

danny0838 avatar Sep 18 '22 02:09 danny0838