Compare commits

..

39 Commits

Author SHA1 Message Date
MkQtS
02b8972009 Docs: add a notice about the removal of xxx-ads 2026-02-04 15:05:57 +08:00
MkQtS
f3e8356ea8 category-ads: reorder 2026-02-04 15:05:57 +08:00
MkQtS
814ac1b847 category-ads: merge television-ads 2026-02-04 15:05:57 +08:00
MkQtS
c7490e5e1a remove fqnovel-ads
use fqnovel@ads instead
2026-02-04 15:05:57 +08:00
MkQtS
5e35b2f0fe remove yahoo-ads
use yahoo@ads instead
2026-02-04 15:05:57 +08:00
MkQtS
7a43dc1797 remove ximalaya-ads
use ximalaya@ads instead
2026-02-04 15:05:57 +08:00
MkQtS
949be9e864 remove xiaomi-ads
use xiaomi@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
04e3d3c4ed remove xhamster-ads
use xhamster@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
af846eb56e remove tencent-ads
use tencent@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
bf72fb4573 remove spotify-ads
use spotify@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
145fb05f30 remove sohu-ads
use sohu@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
a051513234 remove sina-ads
use sina@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
d63d559927 remove qihoo360-ads
use qihoo360@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
6a4d7868e3 remove ookla-speedtest-ads
use ookla-speedtest@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
ccb953cbb3 remove netease-ads
use netease@ads instead
2026-02-04 15:05:56 +08:00
MkQtS
ad7d0a9c75 remove microsoft-ads github-ads
use microsoft@ads github@ads instead
2026-02-04 15:05:51 +08:00
MkQtS
5880250c42 remove meta-ads facebook-ads instagram-ads whatsapp-ads
use xxx@ads instead
2026-02-04 15:04:50 +08:00
MkQtS
fe71ae3f25 remove letv-ads
use le@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
f96e4fe4d1 remove kugou-ads
use kugou@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
461831b0ad remove kuaishou-ads
use kuaishou@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
5c9adb3f41 remove jd-ads
use jd@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
c8a3d148d3 remove iqiyi-ads
use iqiyi@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
8af7efe291 remove hunantv-ads
use hunantv@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
5ada1f77d4 remove google-ads
use google@ads instead

the only regexp rule is dropped as there's no such rules in EasyList
2026-02-04 15:04:49 +08:00
MkQtS
64e3b3353c remove duolingo-ads
use duolingo@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
d5611da0f2 remove dmm-ads
use dmm@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
3a28c7dfec remove bytedance-ads
use bytedance@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
e56d3fd197 remove baidu-ads zuoyebang-ads
use baidu@ads zuoyebang@ads instead
2026-02-04 15:04:49 +08:00
MkQtS
606bf268eb remove apple-ads
use apple@ads instead
2026-02-04 15:04:48 +08:00
MkQtS
d461a6d501 remove amazon-ads
use amazon@ads instead
2026-02-04 15:04:48 +08:00
MkQtS
51d4d0fa89 remove alibaba-ads amap-ads umeng-ads youku-ads
use xxx@ads instead
2026-02-04 15:04:48 +08:00
MkQtS
c2edbb4212 remove adobe-ads
use adobe@ads instead
2026-02-04 15:04:48 +08:00
MkQtS
b8e8b4d38c remove acfun-ads
use acfun@ads instead
2026-02-04 15:04:48 +08:00
MkQtS
ee7b1cbe97 remove mihoyo-ads
use mihoyo@ads instead
2026-02-04 15:04:48 +08:00
MkQtS
311b281000 improve codes (#3246) 2026-02-04 15:03:04 +08:00
秋野かえで
bfb35d7b68 split githubcopilot.com to github-copilot (#3245) 2026-02-04 14:34:55 +08:00
深鸣
daf4c10d0c category-entertainment-cn: add anitabi.cn (#3244) 2026-02-04 13:58:38 +08:00
深鸣
a188c2c058 geolocation-!cn: add osmand.net (#3243) 2026-02-04 13:57:46 +08:00
MkQtS
947556aa16 Improve codes (#3242)
* main.go: improve code

* main.go: move refMap from global variable to local

* main.go: allow tld to be a parent domain

* datdump: improve code
2026-02-03 22:38:18 +08:00
98 changed files with 770 additions and 720 deletions

View File

@@ -15,7 +15,8 @@ This project is not opinionated. In other words, it does NOT endorse, claim or i
## Notice
Rules with `@!cn` attribute has been cast out from cn lists. `geosite:geolocation-cn@!cn` is no longer available. Check [#390](https://github.com/v2fly/domain-list-community/issues/390), [#3119](https://github.com/v2fly/domain-list-community/pull/3119) and [#3198](https://github.com/v2fly/domain-list-community/pull/3198) for more information.
- Rules with `@!cn` attribute has been cast out from cn lists. `geosite:geolocation-cn@!cn` is no longer available. Check [#390](https://github.com/v2fly/domain-list-community/issues/390), [#3119](https://github.com/v2fly/domain-list-community/pull/3119) and [#3198](https://github.com/v2fly/domain-list-community/pull/3198) for more information.
- Dedicated non-category ad lists like `geosite:xxx-ads` has been removed. Use `geosite:xxx@ads` instead. `geosite:category-ads[-xx]` is not affected.
Please report if you have any problems or questions.

View File

@@ -31,11 +31,21 @@ type DomainList struct {
}
func (d *DomainRule) domain2String() string {
dstring := d.Type + ":" + d.Value
if len(d.Attrs) != 0 {
dstring += ":@" + strings.Join(d.Attrs, ",@")
var dstr strings.Builder
dstr.Grow(len(d.Type) + len(d.Value) + 10)
dstr.WriteString(d.Type)
dstr.WriteByte(':')
dstr.WriteString(d.Value)
for i, attr := range d.Attrs {
if i == 0 {
dstr.WriteByte(':')
} else {
dstr.WriteByte(',')
}
dstr.WriteByte('@')
dstr.WriteString(attr)
}
return dstring
return dstr.String()
}
func loadGeosite(path string) ([]DomainList, map[string]*DomainList, error) {
@@ -82,10 +92,10 @@ func loadGeosite(path string) ([]DomainList, map[string]*DomainList, error) {
func exportSite(name string, domainListByName map[string]*DomainList) error {
domainList, ok := domainListByName[strings.ToUpper(name)]
if !ok {
return fmt.Errorf("list '%s' does not exist", name)
return fmt.Errorf("list %q does not exist", name)
}
if len(domainList.Rules) == 0 {
return fmt.Errorf("list '%s' is empty", name)
return fmt.Errorf("list %q is empty", name)
}
file, err := os.Create(filepath.Join(*outputDir, name+".yml"))
if err != nil {
@@ -119,22 +129,16 @@ func exportAll(filename string, domainLists []DomainList) error {
return w.Flush()
}
func main() {
flag.Parse()
// Create output directory if not exist
if _, err := os.Stat(*outputDir); os.IsNotExist(err) {
if mkErr := os.MkdirAll(*outputDir, 0755); mkErr != nil {
fmt.Println("Failed to create output directory:", mkErr)
os.Exit(1)
}
func run() error {
// Make sure output directory exists
if err := os.MkdirAll(*outputDir, 0755); err != nil {
return fmt.Errorf("failed to create output directory: %w", err)
}
fmt.Printf("Loading %s...\n", *inputData)
fmt.Printf("loading source data %q...\n", *inputData)
domainLists, domainListByName, err := loadGeosite(*inputData)
if err != nil {
fmt.Println("Failed to loadGeosite:", err)
os.Exit(1)
return fmt.Errorf("failed to loadGeosite: %w", err)
}
var exportListSlice []string
@@ -150,15 +154,24 @@ func main() {
for _, eplistname := range exportListSlice {
if strings.EqualFold(eplistname, "_all_") {
if err := exportAll(filepath.Base(*inputData)+"_plain.yml", domainLists); err != nil {
fmt.Println("Failed to exportAll:", err)
fmt.Printf("failed to exportAll: %v\n", err)
continue
}
} else {
if err := exportSite(eplistname, domainListByName); err != nil {
fmt.Println("Failed to exportSite:", err)
fmt.Printf("failed to exportSite: %v\n", err)
continue
}
}
fmt.Printf("list: '%s' has been exported successfully.\n", eplistname)
fmt.Printf("list: %q has been exported successfully.\n", eplistname)
}
return nil
}
func main() {
flag.Parse()
if err := run(); err != nil {
fmt.Printf("Fatal error: %v\n", err)
os.Exit(1)
}
}

View File

@@ -8,4 +8,5 @@ acfunchina.com
acfunchina.net
aixifan.com
include:acfun-ads
# Ads/tracking
full:apilog-web.acfun.cn @ads

View File

@@ -1 +0,0 @@
full:apilog-web.acfun.cn @ads

View File

@@ -1,5 +1,4 @@
include:adobe-activation
include:adobe-ads
include:typekit
10xfotolia.com
@@ -142,3 +141,7 @@ scene7.com
# Adobe Stats IO
adobestats.io
# Ads/tracking
advertising.adobe.com @ads
tubemogul.com @ads

View File

@@ -1,2 +0,0 @@
advertising.adobe.com @ads
tubemogul.com @ads

View File

@@ -11,10 +11,10 @@ taobao
tmall
include:9game
include:alibaba-ads
include:alibabacloud
include:aliyun
include:aliyun-drive
include:amap
include:cainiao
include:dingtalk
include:eleme
@@ -196,9 +196,6 @@ fliggy.com
fliggy.hk @!cn
iuynfg.com
# 高德地图
include:amap
# 虾米音乐
xiami.com
xiami.fm
@@ -228,3 +225,29 @@ lydaas.net
lydass.cn
lydass.com.cn
lydass.net
# Ads/tracking
a.alimama.cn @ads
adash-c.m.taobao.com @ads
adash-c.ut.taobao.com @ads
adash.m.taobao.com @ads
adashbc.m.taobao.com @ads
adashbc.ut.taobao.com @ads
adashx.m.taobao.com @ads
adashx4ae.ut.taobao.com @ads
adashx4yt.m.taobao.com @ads
adashxgc.ut.taobao.com @ads
adsh.m.taobao.com @ads
adtrack.quark.cn @ads
c-adash.m.taobao.com @ads
fourier.taobao.com @ads
g.click.taobao.com @ads
h-adashx.ut.taobao.com @ads
h-adashx4yt.ut.taobao.com @ads
m-adash.m.taobao.com @ads
marketing.alibaba.com @ads
nbsdk-baichuan.taobao.com @ads
retcode.taobao.com @ads
tns.simba.taobao.com @ads
track.lc.quark.cn @ads
v6-adashx.ut.taobao.com @ads

View File

@@ -1,43 +0,0 @@
include:amap-ads
include:youku-ads
a.alimama.cn @ads
acjs.aliyun.com @ads
adash-c.m.taobao.com @ads
adash-c.ut.taobao.com @ads
adash-emas.cn-hangzhou.aliyuncs.com @ads
adash.m.taobao.com @ads
adash.man.aliyuncs.com @ads
adashbc.m.taobao.com @ads
adashbc.ut.taobao.com @ads
adashx.m.taobao.com @ads
adashx.ut.ele.me @ads
adashx4ae.ut.taobao.com @ads
adashx4yt.m.taobao.com @ads
adashxgc.ut.taobao.com @ads
ads.uc.cn @ads
adsh.m.taobao.com @ads
adslot.uc.cn @ads
adtrack.quark.cn @ads
alimama.alicdn.com @ads
atanx.alicdn.com @ads
atanx2.alicdn.com @ads
baichuan-sdk.alicdn.com @ads
c-adash.m.taobao.com @ads
fourier.taobao.com @ads
g.click.taobao.com @ads
h-adashx.ut.ele.me @ads
h-adashx.ut.taobao.com @ads
h-adashx4yt.ut.taobao.com @ads
log.umtrack.com @ads
m-adash.m.taobao.com @ads
marketing.alibaba.com @ads
nbsdk-baichuan.alicdn.com @ads
nbsdk-baichuan.taobao.com @ads
retcode.taobao.com @ads
tce.alicdn.com @ads
tns.simba.taobao.com @ads
track.lc.quark.cn @ads
v6-adashx.ut.cainiao.com @ads
v6-adashx.ut.ele.me @ads
v6-adashx.ut.taobao.com @ads

View File

@@ -67,3 +67,14 @@ oss-eu-west-1.aliyuncs.com @!cn
oss-me-east-1.aliyuncs.com @!cn
oss-us-east-1.aliyuncs.com @!cn
oss-us-west-1.aliyuncs.com @!cn
# Ads/tracking
acjs.aliyun.com @ads
adash-emas.cn-hangzhou.aliyuncs.com @ads
adash.man.aliyuncs.com @ads
alimama.alicdn.com @ads
atanx.alicdn.com @ads
atanx2.alicdn.com @ads
baichuan-sdk.alicdn.com @ads
nbsdk-baichuan.alicdn.com @ads
tce.alicdn.com @ads

View File

@@ -1,5 +1,3 @@
include:amap-ads
a-map.cn
a-map.co
a-map.link
@@ -10,3 +8,10 @@ amapauto.com
anav.com
autonavi.com
gaode.com
# Ads/tracking
adashx.ut.amap.com @ads
dualstack-logs.amap.com @ads
logs.amap.com @ads
optimus-ads.amap.com @ads
v6-adashx.ut.amap.com @ads

View File

@@ -1,5 +0,0 @@
adashx.ut.amap.com @ads
dualstack-logs.amap.com @ads
logs.amap.com @ads
optimus-ads.amap.com @ads
v6-adashx.ut.amap.com @ads

View File

@@ -1,4 +1,3 @@
include:amazon-ads
include:amazontrust
include:aws
include:imdb
@@ -122,3 +121,7 @@ createspace.com
full:images-cn.ssl-images-amazon.com @cn
full:images-cn-8.ssl-images-amazon.com @cn
# Ads/tracking
amazon-adsystem.com @ads
serving-sys.com @ads

View File

@@ -1,2 +0,0 @@
amazon-adsystem.com @ads
serving-sys.com @ads

View File

@@ -1,4 +1,3 @@
include:apple-ads
include:apple-dev # swift inside
# Not include:apple-intelligence
include:apple-pki
@@ -983,3 +982,10 @@ full:weatherkit.apple.com @cn
full:www.apple.com @cn
full:www.apple.com.edgekey.net.globalredir.akadns.net @cn
full:xp.apple.com @cn
# Ads/tracking
advertising.apple.com @ads
api-adservices.apple.com @ads
iadsdk.apple.com @ads
iad.apple.com @ads
qwapi.com @ads

View File

@@ -1,5 +0,0 @@
advertising.apple.com @ads
api-adservices.apple.com @ads
iadsdk.apple.com @ads
iad.apple.com @ads
qwapi.com @ads

View File

@@ -1,4 +1,3 @@
include:baidu-ads
include:zuoyebang
# All .baidu domains
@@ -83,3 +82,57 @@ dxmpay.com
dxmstatic.com
dxmyqh.com
paydxm.com
# Ads/tracking
adscdn.baidu.com @ads
adx.xiaodutv.com @ads
afd.baidu.com @ads
afdconf.baidu.com @ads
baifen.music.baidu.com @ads
bzclk.baidu.com @ads
cb.baidu.com @ads
cbjs.baidu.com @ads
cm.baidu.com @ads
cpro.baidu.com @ads
cpro.baidustatic.com @ads
cpu.baidu.com @ads
cstm.baidu.com @ads
dlswbr.baidu.com @ads
drmcmm.baidu.com @ads
duiwai.baidu.com @ads
dup.baidustatic.com @ads
eclick.baidu.com @ads
ecma.bdimg.com @ads
ecmb.bdimg.com @ads
ecmc.bdimg.com @ads
eduad.baidu.com @ads
eiv.baidu.com @ads
fclick.baidu.com @ads
fclog.baidu.com @ads
h2tcbox.baidu.com @ads
hao123union.baidu.com @ads
hm.baidu.com @ads
hmma.baidu.com @ads
imgstat.baidu.com @ads
iwanad.baidu.com @ads
miao.baidu.com @ads
miaowu.baidu.com @ads
mipcache.bdstatic.com @ads
mobads.baidu.com @ads
mobads-logs.baidu.com @ads
mobads-pre-config.cdn.bcebos.com @ads
mountain.zhidao.baidu.com @ads
nsclick.baidu.com @ads
nsclickvideo.baidu.com @ads
pimlog.baidu.com @ads
pos.baidu.com @ads
sclick.baidu.com @ads
spcode.baidu.com @ads
tcbox.baidu.com @ads
ubmcvideo.baidustatic.com @ads
union.baidu.com @ads
unionimage.baidu.com @ads
wangmeng.baidu.com @ads
wkctj.baidu.com @ads
wm.baidu.com @ads
zz.bdstatic.com @ads

View File

@@ -1,54 +0,0 @@
include:zuoyebang-ads
adscdn.baidu.com @ads
adx.xiaodutv.com @ads
afd.baidu.com @ads
afdconf.baidu.com @ads
baifen.music.baidu.com @ads
bzclk.baidu.com @ads
cb.baidu.com @ads
cbjs.baidu.com @ads
cm.baidu.com @ads
cpro.baidu.com @ads
cpro.baidustatic.com @ads
cpu.baidu.com @ads
cstm.baidu.com @ads
dlswbr.baidu.com @ads
drmcmm.baidu.com @ads
duiwai.baidu.com @ads
dup.baidustatic.com @ads
eclick.baidu.com @ads
ecma.bdimg.com @ads
ecmb.bdimg.com @ads
ecmc.bdimg.com @ads
eduad.baidu.com @ads
eiv.baidu.com @ads
fclick.baidu.com @ads
fclog.baidu.com @ads
h2tcbox.baidu.com @ads
hao123union.baidu.com @ads
hm.baidu.com @ads
hmma.baidu.com @ads
imgstat.baidu.com @ads
iwanad.baidu.com @ads
miao.baidu.com @ads
miaowu.baidu.com @ads
mipcache.bdstatic.com @ads
mobads.baidu.com @ads
mobads-logs.baidu.com @ads
mobads-pre-config.cdn.bcebos.com @ads
mountain.zhidao.baidu.com @ads
nsclick.baidu.com @ads
nsclickvideo.baidu.com @ads
pimlog.baidu.com @ads
pos.baidu.com @ads
sclick.baidu.com @ads
spcode.baidu.com @ads
tcbox.baidu.com @ads
ubmcvideo.baidustatic.com @ads
union.baidu.com @ads
unionimage.baidu.com @ads
wangmeng.baidu.com @ads
wkctj.baidu.com @ads
wm.baidu.com @ads
zz.bdstatic.com @ads

View File

@@ -1,5 +1,3 @@
include:bytedance-ads
#include:bytedance-ai-!cn # not serving for cn
include:doubao
include:douyin # douyin, huoshan and qishuimusic inside
@@ -358,3 +356,31 @@ rsproxy.cn
#bcysnssdk.com
#bcystatic.com
#bcyvod.com
# Ads/tracking
ad.toutiao.com @ads
bds.snssdk.com @ads
byteadverts.com @ads
ctobsnssdk.com @ads
dig.bdurl.net @ads
extlog.snssdk.com @ads
i.snssdk.com @ads
log.zijieapi.com @ads
mcs.snssdk.com @ads
pangolin-dsp-toutiao-b.com @ads
pangolin-dsp-toutiao.com @ads
pangolin-hl.snssdk.com @ads
pangolin-lf.snssdk.com @ads
pangolin-lq.snssdk.com @ads
pangolin-sdk-toutiao-b.com @ads
pangolin-sdk-toutiao.com @ads
pangolin-sdk-toutiao1.com @ads
pangolin.snssdk.com @ads
panplayable-toutiao-b.com @ads
panplayable-toutiao.com @ads
pglstatp-sdk-toutiao.com @ads
pglstatp-snssdk-toutiao.com @ads
pglstatp-toutiao-b.com @ads
pglstatp-toutiao.com @ads
sf3-ttcdn-tos.pstatp.com @ads
shoppingads.cn @ads

View File

@@ -1,29 +0,0 @@
include:fqnovel-ads
ad.toutiao.com @ads
analytics.tiktok.com @ads
bds.snssdk.com @ads
byteadverts.com @ads
ctobsnssdk.com @ads
dig.bdurl.net @ads
extlog.snssdk.com @ads
i.snssdk.com @ads
log.zijieapi.com @ads
mcs.snssdk.com @ads
pangolin-dsp-toutiao-b.com @ads
pangolin-dsp-toutiao.com @ads
pangolin-hl.snssdk.com @ads
pangolin-lf.snssdk.com @ads
pangolin-lq.snssdk.com @ads
pangolin-sdk-toutiao-b.com @ads
pangolin-sdk-toutiao.com @ads
pangolin-sdk-toutiao1.com @ads
pangolin.snssdk.com @ads
panplayable-toutiao-b.com @ads
panplayable-toutiao.com @ads
pglstatp-sdk-toutiao.com @ads
pglstatp-snssdk-toutiao.com @ads
pglstatp-toutiao-b.com @ads
pglstatp-toutiao.com @ads
sf3-ttcdn-tos.pstatp.com @ads
shoppingads.cn @ads

View File

@@ -3,3 +3,6 @@ cainiao.com
cainiao.com.cn
cainiaoyizhan.com
guoguo-app.com
# Ads/tracking
v6-adashx.ut.cainiao.com @ads

View File

@@ -1,51 +1,51 @@
# This file contains domains that clearly serving ads
include:acfun-ads
include:adobe-ads
include:alibaba-ads
include:amazon-ads
include:apple-ads
include:baidu-ads
include:bytedance-ads
include:category-ads-ir
include:acfun @ads
include:adobe @ads
include:alibaba @ads
include:amazon @ads
include:apple @ads
include:baidu @ads
include:bytedance @ads
include:cctv @ads
include:disney @ads
include:dmm-ads
include:duolingo-ads
include:dmm @ads
include:duolingo @ads
include:gamersky @ads
include:google-ads
include:google @ads
include:hetzner @ads
include:hunantv-ads
include:iqiyi-ads
include:jd-ads
include:kuaishou-ads
include:kugou-ads
include:letv-ads
include:meta-ads
include:microsoft-ads
include:netease-ads
include:ookla-speedtest-ads
include:hunantv @ads
include:iqiyi @ads
include:jd @ads
include:kuaishou @ads
include:kugou @ads
include:le @ads
include:meta @ads
include:microsoft @ads
include:mihoyo @ads
include:netease @ads
include:ookla-speedtest @ads
include:openai @ads
include:picacg @ads
include:pikpak @ads
include:pixiv @ads
include:qihoo360-ads
include:qihoo360 @ads
include:samsung @ads
include:sina-ads
include:sina @ads
include:snap @ads
include:sohu-ads
include:spotify-ads
include:television-ads
include:tencent-ads
include:sohu @ads
include:spotify @ads
include:tcl @ads
include:tencent @ads
include:tendcloud @ads
include:twitter @ads
include:umeng-ads
include:unity @ads
include:unitychina @ads
include:xhamster-ads
include:xiaomi-ads
include:ximalaya-ads
include:yahoo-ads
include:xhamster @ads
include:xiaomi @ads
include:ximalaya @ads
include:yahoo @ads
include:zhihu @ads
# Other domains for ads serving
@@ -58,6 +58,8 @@ ad.api.moji.com
ad.wang502.com
adbutter.net
addthisedge.com
ads.huan.tv
ads.huantest.com
ads.trafficjunky.net
ads.wteam.xyz
adservice.sigmob.cn
@@ -152,6 +154,11 @@ stat.chinaso.com
mlog.hiido.com
ylog.hiido.com
# hpply
ad.hpplay.cn
adc.hpplay.cn
adeng.hpplay.cn
# Httpool
toboads.com
@@ -160,6 +167,10 @@ analytics-data.io
atom-data.io
ironbeast.io
# joyplus
advapi.joyplus.tv
advapikj.joyplus.tv
# pocoiq
cdn.pocoiq.cn
oct.pocoiq.cn
@@ -219,6 +230,9 @@ zhugeapi.com
zhugeapi.net
zhugeio.com
# 酷云互动
kuyun.com
# 车来了
atrace.chelaile.net.cn
logs.chelaile.net.cn

View File

@@ -4,6 +4,7 @@ include:cerebras
include:comfy
include:cursor
include:elevenlabs
include:github-copilot
include:google-deepmind
include:groq
include:huggingface

View File

@@ -50,6 +50,8 @@ yeshen.com
51zmt.top
# 广东南方新媒体
aisee.tv
# 动画巡礼
anitabi.cn
# 暴风影音
baofeng.com
baofeng.net

View File

@@ -1,7 +1,21 @@
include:dmm-ads
include:dmm-porn
dmm.com
dmm-extension.com
dmmapis.com
full:api-p.videomarket.jp
# Ads/tracking
# Refer: https://tonahazana.com/kancolle-2nd-weight-saving
# If you use support tools to play DMM games(such as playing Kantai Collection by poi), this list maybe useful.
ad.games.dmm.com @ads
bluekai.com @ads
fout.jp @ads
gmossp-sp.jp @ads
i-mobile.co.jp @ads
im-apps.net @ads
impact-ad.jp @ads
ladsp.com @ads
microad.co.jp @ads
microad.jp @ads
socdm.com @ads

View File

@@ -1,14 +0,0 @@
# Refer: https://tonahazana.com/kancolle-2nd-weight-saving
# If you use support tools to play DMM games(such as playing Kantai Collection by poi), this list maybe useful.
ad.games.dmm.com @ads
bluekai.com @ads
fout.jp @ads
gmossp-sp.jp @ads
i-mobile.co.jp @ads
im-apps.net @ads
impact-ad.jp @ads
ladsp.com @ads
microad.co.jp @ads
microad.jp @ads
socdm.com @ads

View File

@@ -1,4 +1,7 @@
include:duolingo-ads
duolingo.com
duolingo.cn @cn
# Ads/tracking
ads-api.duolingo.com @ads
analytics.vpc.duolingo.com @ads
metrics.duolingo.com @ads

View File

@@ -1,3 +0,0 @@
ads-api.duolingo.com @ads
metrics.duolingo.com @ads
analytics.vpc.duolingo.com @ads

View File

@@ -6,3 +6,8 @@ eleme.io
elemecdn.cn
elemecdn.com
elenet.me
# Ads/tracking
adashx.ut.ele.me @ads
h-adashx.ut.ele.me @ads
v6-adashx.ut.ele.me @ads

View File

@@ -395,3 +395,8 @@ workplace.com
workplaceusecases.com
full:fbcdn-a.akamaihd.net
# Ads/tracking
analytics.facebook.com @ads
facebookads.com @ads
pixel.facebook.com @ads

View File

@@ -1,3 +0,0 @@
analytics.facebook.com @ads
facebookads.com @ads
pixel.facebook.com @ads

View File

@@ -1,5 +1,3 @@
include:fqnovel-ads
activity-zhendingtech.com
changdunovel.com
fanqienovel.com
@@ -31,3 +29,20 @@ qznovelvod.com
full:p3-novel.byteimg.com
full:p6-novel.byteimg.com
# Ads/tracking
full:ads3-normal-hl.zijieapi.com @ads
full:ads3-normal.zijieapi.com @ads
full:ads5-normal-hl.zijieapi.com @ads
full:ads5-normal.zijieapi.com @ads
full:log3-applog-hl.fqnovel.com @ads
full:log3-applog.fqnovel.com @ads
full:log5-applog-hl.fqnovel.com @ads
full:log5-applog.fqnovel.com @ads
full:p3-ad-sign.byteimg.com @ads
full:p6-ad-sign.byteimg.com @ads
full:p9-ad-sign.byteimg.com @ads
full:rtlog3-applog-hl.fqnovel.com @ads
full:rtlog3-applog.fqnovel.com @ads
full:rtlog5-applog-hl.fqnovel.com @ads
full:rtlog5-applog.fqnovel.com @ads

View File

@@ -1,15 +0,0 @@
full:ads3-normal-hl.zijieapi.com @ads
full:ads3-normal.zijieapi.com @ads
full:ads5-normal-hl.zijieapi.com @ads
full:ads5-normal.zijieapi.com @ads
full:log3-applog-hl.fqnovel.com @ads
full:log3-applog.fqnovel.com @ads
full:log5-applog-hl.fqnovel.com @ads
full:log5-applog.fqnovel.com @ads
full:p3-ad-sign.byteimg.com @ads
full:p6-ad-sign.byteimg.com @ads
full:p9-ad-sign.byteimg.com @ads
full:rtlog3-applog-hl.fqnovel.com @ads
full:rtlog3-applog.fqnovel.com @ads
full:rtlog5-applog-hl.fqnovel.com @ads
full:rtlog5-applog.fqnovel.com @ads

View File

@@ -271,6 +271,8 @@ ldoceonline.com
immersivetranslate.com # 沉浸式翻译 (国际版)
## OriginLab (Graphing for Science and Engineering)
originlab.com
## OsmAnd
osmand.net
# Software development
include:category-dev

View File

@@ -1,4 +1,4 @@
include:github-ads
include:github-copilot
include:npmjs
atom.io
@@ -14,7 +14,6 @@ github.dev
github.io
githubapp.com
githubassets.com
githubcopilot.com
githubhackathon.com
githubnext.com
githubpreview.dev
@@ -33,3 +32,7 @@ blob.core.windows.net
full:github-api.arkoselabs.com
full:github-cloud.s3.amazonaws.com
regexp:^github-production-release-asset-[0-9a-zA-Z]{6}\.s3\.amazonaws\.com$
# Ads/tracking
collector.github.com @ads
copilot-telemetry.githubusercontent.com @ads

View File

@@ -1,2 +0,0 @@
collector.github.com @ads
copilot-telemetry.githubusercontent.com @ads

1
data/github-copilot Normal file
View File

@@ -0,0 +1 @@
githubcopilot.com

View File

@@ -6,7 +6,6 @@ include:fastlane
include:firebase
include:flutter
include:golang
include:google-ads
include:google-deepmind
include:google-gemini
include:google-play
@@ -542,6 +541,62 @@ zukunftswerkstatt.de
# https://www.fastly.com/press/press-releases/google-selects-Fastly-Oblivious-HTTP-Relay-for-Privacy-Sandbox/
full:google-ohttp-relay-safebrowsing.fastly-edge.com
# Ads/tracking
2mdn-cn.net @ads
2mdn.net @ads
admob-cn.com @ads
admob.com @ads
adsense.com @ads
adsensecustomsearchads.com @ads
adsenseformobileapps.com @ads
adservice.google.com @ads
adtrafficquality.google @ads
advertisercommunity.com @ads
advertiserscommunity.com @ads
adwords-community.com @ads
adwords.com @ads
adwordsexpress.com @ads
analytics-alv.google.com @ads
app-analytics-services.com @ads
app-analytics-services-att.com @ads
app-measurement-cn.com @ads
app-measurement.com @ads
doubleclick-cn.net @ads
doubleclick.cn @ads
doubleclick.com @ads
doubleclick.net @ads
fcmatch.google.com @ads
google-analytics-cn.com @ads
google-analytics.com @ads
googleadapis.com @ads
googleadapis.l.google.com @ads
googleads-cn.com @ads
googleads.com @ads
googleadservices-cn.com @ads
googleadservices.com @ads
googleadsserving.cn @ads
googleanalytics.com @ads
googleoptimize-cn.com @ads
googleoptimize.com @ads
googlesyndication-cn.com @ads
googlesyndication.com @ads
googletagmanager-cn.com @ads
googletagmanager.com @ads
googletagservices-cn.com @ads
googletagservices.com @ads
googletraveladservices-cn.com @ads
googletraveladservices.com @ads
googlevads-cn.com @ads
mail-ads.google.com @ads
mobileads.google.com @ads
marketingplatform.google.com @ads
pagead.l.google.com @ads
partnerad.l.google.com @ads
urchin.com @ads
full:analytics.google.com @ads
# https://github.com/AdguardTeam/FiltersRegistry/pull/1154
# full:fundingchoicesmessages.google.com @ads
# Domains and services below are available in China mainland
# Use in config file like this: "geosite:google@cn"
gvt1-cn.com @cn

View File

@@ -1,58 +0,0 @@
2mdn-cn.net @ads
2mdn.net @ads
admob-cn.com @ads
admob.com @ads
ads.youtube.com @ads
adsense.com @ads
adsensecustomsearchads.com @ads
adsenseformobileapps.com @ads
adservice.google.com @ads
adtrafficquality.google @ads
advertisercommunity.com @ads
advertiserscommunity.com @ads
adwords-community.com @ads
adwords.com @ads
adwordsexpress.com @ads
analytics-alv.google.com @ads
app-analytics-services.com @ads
app-analytics-services-att.com @ads
app-measurement-cn.com @ads
app-measurement.com @ads
doubleclick-cn.net @ads
doubleclick.cn @ads
doubleclick.com @ads
doubleclick.net @ads
fcmatch.google.com @ads
google-analytics-cn.com @ads
google-analytics.com @ads
googleadapis.com @ads
googleadapis.l.google.com @ads
googleads-cn.com @ads
googleads.com @ads
googleadservices-cn.com @ads
googleadservices.com @ads
googleadsserving.cn @ads
googleanalytics.com @ads
googleoptimize-cn.com @ads
googleoptimize.com @ads
googlesyndication-cn.com @ads
googlesyndication.com @ads
googletagmanager-cn.com @ads
googletagmanager.com @ads
googletagservices-cn.com @ads
googletagservices.com @ads
googletraveladservices-cn.com @ads
googletraveladservices.com @ads
googlevads-cn.com @ads
mail-ads.google.com @ads
mobileads.google.com @ads
marketingplatform.google.com @ads
pagead.l.google.com @ads
partnerad.l.google.com @ads
urchin.com @ads
full:analytics.google.com @ads
# https://github.com/AdguardTeam/FiltersRegistry/pull/1154
# full:fundingchoicesmessages.google.com @ads
regexp:^adservice\.google\.([a-z]{2}|com?)(\.[a-z]{2})?$ @ads

View File

@@ -21,3 +21,6 @@ n0vadesktop.com
# 絕區零(Zenless Zone Zero)
zenlesszonezero.com
# ads/tracking
log-upload-os.hoyoverse.com @ads

View File

@@ -1,5 +1,4 @@
# 湖南广电芒果TV
include:hunantv-ads
hifuntv.com
hitv.com
hnbntv.com
@@ -7,3 +6,11 @@ hunaniptv.com
hunantv.com
imgo.tv
mgtv.com
# Ads/tracking
click.hunantv.com @ads
da.hunantv.com @ads
da.mgtv.com @ads
log.hunantv.com @ads
log.v2.hunantv.com @ads
res.hunantv.com @ads

View File

@@ -1,6 +0,0 @@
click.hunantv.com @ads
da.hunantv.com @ads
da.mgtv.com @ads
log.hunantv.com @ads
log.v2.hunantv.com @ads
res.hunantv.com @ads

View File

@@ -1,5 +1,3 @@
include:instagram-ads
achat-followers-instagram.com
acheter-followers-instagram.com
acheterdesfollowersinstagram.com
@@ -72,3 +70,7 @@ online-instagram.com
onlineinstagram.com
web-instagram.net
wwwinstagram.com
# Ads/tracking
graph.instagram.com @ads
graph-fallback.instagram.com @ads

View File

@@ -1,2 +0,0 @@
graph.instagram.com @ads
graph-fallback.instagram.com @ads

View File

@@ -11,4 +11,14 @@ qy.net
# CDN used by iqiyi
71edge.com
include:iqiyi-ads
# Ads/tracking
ad.m.iqiyi.com @ads
afp.iqiyi.com @ads
c.uaa.iqiyi.com @ads
cloudpush.iqiyi.com @ads
cupid.iqiyi.com @ads
ifacelog.iqiyi.com @ads
mbdlog.iqiyi.com @ads
msg.video.qiyi.com @ads
msg2.video.qiyi.com @ads
policy.video.iqiyi.com @ads

View File

@@ -1,10 +0,0 @@
ad.m.iqiyi.com @ads
afp.iqiyi.com @ads
c.uaa.iqiyi.com @ads
cloudpush.iqiyi.com @ads
cupid.iqiyi.com @ads
ifacelog.iqiyi.com @ads
mbdlog.iqiyi.com @ads
msg.video.qiyi.com @ads
msg2.video.qiyi.com @ads
policy.video.iqiyi.com @ads

12
data/jd
View File

@@ -1,5 +1,3 @@
include:jd-ads
1huizhan.com
3.cn
300hu.com
@@ -236,3 +234,13 @@ imdada.cn
# 哆啦宝
duolabao.com
# Ads/tracking
ads-union.jd.com @ads
ads.union.jd.com @ads
c-nfa.jd.com @ads
cps.360buy.com @ads
gia.jd.com @ads
img-x.jd.com @ads
jzt.jd.com @ads
stat.m.jd.com @ads

View File

@@ -1,8 +0,0 @@
ads.union.jd.com @ads
ads-union.jd.com @ads
c-nfa.jd.com @ads
cps.360buy.com @ads
gia.jd.com @ads
img-x.jd.com @ads
jzt.jd.com @ads
stat.m.jd.com @ads

View File

@@ -1,5 +1,3 @@
include:kuaishou-ads
ecukwai.com
gifshow.com
inkuai.com
@@ -16,3 +14,12 @@ kwaizt.com
kwimgs.com
wsukwai.com
yximgs.com
# Ads/tracking
adbkwai.com @ads
adkwai.com @ads
adukwai.com @ads
e.kuaishou.cn @ads
e.kuaishou.com @ads
full:log-sdk.gifshow.com @ads
full:wlog.kuaishou.com @ads

View File

@@ -1,8 +0,0 @@
adbkwai.com @ads
adkwai.com @ads
adukwai.com @ads
e.kuaishou.cn @ads
e.kuaishou.com @ads
full:log-sdk.gifshow.com @ads
full:wlog.kuaishou.com @ads

View File

@@ -1,5 +1,3 @@
include:kugou-ads
fanxingliveshow.com
kgimg.com
kglink.cn
@@ -16,3 +14,8 @@ kugousenior.com
kugoustore.com
kugouvoice.com
kugouyouth.com
# Ads/tracking
ads.service.kugou.com @ads
adserviceretry.kglink.cn @ads
adserviceretry.kugou.com @ads

View File

@@ -1,3 +0,0 @@
ads.service.kugou.com @ads
adserviceretry.kglink.cn @ads
adserviceretry.kugou.com @ads

View File

@@ -1,5 +1,3 @@
include:letv-ads
le.com
leautolink.com
lecloud.com
@@ -9,3 +7,9 @@ leso.cn
letv.com
letvcdn.com
letvimg.com
# Ads/tracking
apple.www.letv.com @ads
ark.letv.com @ads
dc.letv.com @ads
g3.letv.com @ads

View File

@@ -1,4 +0,0 @@
apple.www.letv.com @ads
ark.letv.com @ads
dc.letv.com @ads
g3.letv.com @ads

View File

@@ -1,3 +0,0 @@
include:facebook-ads
include:instagram-ads
include:whatsapp-ads

View File

@@ -1,7 +1,6 @@
include:azure
include:bing
include:github
include:microsoft-ads
include:microsoft-dev
include:microsoft-pki
include:msn
@@ -306,6 +305,12 @@ yammer.com
skype-edf.akadns.net
skypedata.akadns.net
# Ads/tracking
clarity.ms @ads
microsoftads.com @ads
msads.net @ads
nelreports.net @ads
# Domains and services below are available in China mainland
# Use in config file like this: "geosite:microsoft@cn"
dl.delivery.mp.microsoft.com @cn

View File

@@ -1,8 +0,0 @@
include:github-ads
browser.events.data.msn.cn @ads
browser.events.data.msn.com @ads
clarity.ms @ads
microsoftads.com @ads
msads.net @ads
nelreports.net @ads

View File

@@ -1,4 +1,2 @@
include:hoyoverse
include:mihoyo-cn
include:mihoyo-ads

View File

@@ -1,2 +0,0 @@
log-upload-os.hoyoverse.com @ads
log-upload.mihoyo.com @ads

View File

@@ -29,3 +29,6 @@ juequling.com
# Akamai
regexp:^.+-mihayo\.akamaized\.net$ @cn
# Ads/tracking
log-upload.mihoyo.com @ads

View File

@@ -17,3 +17,7 @@ msnewskids.org
msnkids.com
microsoftstart.com
start.com
# Ads/tracking
browser.events.data.msn.cn @ads @cn
browser.events.data.msn.com @ads

View File

@@ -1,5 +1,3 @@
include:netease-ads
126.com
126.link
126.net
@@ -35,3 +33,17 @@ yeah.net
youdao.com
yunxinfw.com
zhuanzfx.com
# Ads/tracking
a.youdao.com @ads
admusicpic.music.126.net @ads
ads.music.126.net @ads
analytics.163.com @ads
crash.163.com @ads
crashlytics.163.com @ads
g.163.com @ads
iadmat.nosdn.127.net @ads
iadmatapk.nosdn.127.net @ads
iadmusicmat.music.126.net @ads
iadmusicmatvideo.music.126.net @ads
sentry.music.163.com @ads

View File

@@ -1,12 +0,0 @@
a.youdao.com @ads
admusicpic.music.126.net @ads
ads.music.126.net @ads
analytics.163.com @ads
crash.163.com @ads
crashlytics.163.com @ads
g.163.com @ads
iadmat.nosdn.127.net @ads
iadmatapk.nosdn.127.net @ads
iadmusicmat.music.126.net @ads
iadmusicmatvideo.music.126.net @ads
sentry.music.163.com @ads

View File

@@ -12,7 +12,8 @@ webtest.net
full:www.speedtest.net.cdn.cloudflare.net
include:ookla-speedtest-ads
# SpeedTest Node
ookla-speedtest-central.hgconair.hgc.com.hk # HGC Global Communications 香港環電
# Ads/tracking
regexp:^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ @ads

View File

@@ -1 +0,0 @@
regexp:^speed\.(coe|open)\.ad\.[a-z]{2,6}\.prod\.hosts\.ooklaserver\.net$ @ads

View File

@@ -1,4 +1,3 @@
include:qihoo360-ads
include:starworld
360.cn
@@ -74,3 +73,15 @@ yunpan.cn
beifangsl.cn
zhaomi.cn
zhaomishijie.com
# Ads/tracking
c.sayhi.360.cn @ads
fenxi.360.cn @ads
fenxi.com @ads
lianmeng.360.cn @ads
mediav.com @ads
mvad.com @ads
qhupdate.com @ads
s.360.cn @ads
s.so.360.cn @ads
s.union.360.cn @ads

View File

@@ -1,10 +0,0 @@
c.sayhi.360.cn @ads
fenxi.360.cn @ads
fenxi.com @ads
lianmeng.360.cn @ads
mediav.com @ads
mvad.com @ads
qhupdate.com @ads
s.360.cn @ads
s.so.360.cn @ads
s.union.360.cn @ads

View File

@@ -1,5 +1,3 @@
include:sina-ads
97973.com
hk.weibo.com @!cn
my.weibo.com @!cn
@@ -29,3 +27,29 @@ weibo.com
weibo.com.cn
weibocdn.com
xhaiwai.com
# Ads/tracking
ad.sina.com.cn @ads
ad.us.sinaimg.cn @ads
adbox.sina.com.cn @ads
adimg.mobile.sina.cn @ads
adimg.uve.weibo.com @ads
ads.sina.com @ads
alitui.weibo.com @ads
beacon.sina.com.cn @ads
biz.weibo.com @ads
click.uve.mobile.sina.cn @ads
click.uve.weibo.com @ads
log.mix.sina.com.cn @ads
log.sina.cn @ads
log2.sina.cn @ads
mixer.sina.cn @ads
p4p.sina.com.cn @ads
rs.sinajs.cn @ads
sa.sina.cn @ads
sbeacon.sina.com.cn @ads
sdkclick.mobile.sina.cn @ads
slog.sina.cn @ads
slog.sina.com.cn @ads
wapwbclick.mobile.sina.cn @ads
wbclick.mobile.sina.cn @ads

View File

@@ -1,24 +0,0 @@
ad.sina.com.cn @ads
ad.us.sinaimg.cn @ads
adbox.sina.com.cn @ads
adimg.mobile.sina.cn @ads
adimg.uve.weibo.com @ads
ads.sina.com @ads
alitui.weibo.com @ads
beacon.sina.com.cn @ads
biz.weibo.com @ads
click.uve.mobile.sina.cn @ads
click.uve.weibo.com @ads
log.mix.sina.com.cn @ads
log.sina.cn @ads
log2.sina.cn @ads
mixer.sina.cn @ads
p4p.sina.com.cn @ads
rs.sinajs.cn @ads
sa.sina.cn @ads
sbeacon.sina.com.cn @ads
sdkclick.mobile.sina.cn @ads
slog.sina.cn @ads
slog.sina.com.cn @ads
wapwbclick.mobile.sina.cn @ads
wbclick.mobile.sina.cn @ads

View File

@@ -30,3 +30,13 @@ yeyousg.com
yidianliulan.cn
yidianliulan.com
yuweikuijianzhan.com
# Ads/tracking
inte.sogou.com @ads
inte.sogoucdn.com @ads
lu.sogou.com @ads
lu.sogoucdn.com @ads
pb.i.sogou.com @ads
theta.sogoucdn.com @ads
uranus.sogou.com @ads
wuliao.epro.sogou.com @ads

View File

@@ -1,5 +1,4 @@
include:sogou
include:sohu-ads
# All .sohu domains
sohu
@@ -9,3 +8,21 @@ focus.cn
itc.cn
sohu.com
sohucs.com
# Ads/tracking
adnet.sohu.com @ads
ads.sohu.com @ads
adv-sv-show.focus.cn @ads
adv-sv-stat.focus.cn @ads
assp.sohu.com @ads
bdu.focus.cn @ads
fpb.sohu.com @ads
imp.go.sohu.com @ads
m.aty.sohu.com @ads
p.aty.sohu.com @ads
pv.hd.sohu.com @ads
pv.sohu.com @ads
qpb.sohu.com @ads
qpb1.sohu.com @ads
reke.at.sohu.com @ads
track.sohu.com @ads

View File

@@ -1,24 +0,0 @@
adnet.sohu.com @ads
ads.sohu.com @ads
adv-sv-show.focus.cn @ads
adv-sv-stat.focus.cn @ads
assp.sohu.com @ads
bdu.focus.cn @ads
fpb.sohu.com @ads
imp.go.sohu.com @ads
inte.sogou.com @ads
inte.sogoucdn.com @ads
lu.sogou.com @ads
lu.sogoucdn.com @ads
m.aty.sohu.com @ads
p.aty.sohu.com @ads
pb.i.sogou.com @ads
pv.hd.sohu.com @ads
pv.sohu.com @ads
qpb.sohu.com @ads
qpb1.sohu.com @ads
reke.at.sohu.com @ads
theta.sogoucdn.com @ads
track.sohu.com @ads
uranus.sogou.com @ads
wuliao.epro.sogou.com @ads

View File

@@ -22,3 +22,8 @@ full:heads4-ak-spotify-com.akamaized.net
full:spotify.com.edgesuite.net
full:spotify.map.fastly.net
full:spotify.map.fastlylb.net
# Ads/tracking
full:adeventtracker.spotify.com @ads
full:adstudio-assets.scdn.co @ads
full:bloodhound.spotify.com @ads

View File

@@ -1,3 +0,0 @@
full:adeventtracker.spotify.com @ads
full:adstudio-assets.scdn.co @ads
full:bloodhound.spotify.com @ads

View File

@@ -8,3 +8,14 @@ tcltech.com
# 粤ICP备17088321号
leiniao.com
# 粤ICP备14002670号
my7v.com
# Ads/tracking
ads-uo.api.leiniao.com @ads
ads-ut.api.leiniao.com @ads
ads.api.my7v.com @ads
euads-o.api.leiniao.com @ads
hwads-t.api.my7v.com @ads
testads.api.my7v.com @ads

View File

@@ -1,14 +0,0 @@
ad.hpplay.cn @ads
adc.hpplay.cn @ads
adeng.hpplay.cn @ads
ads-uo.api.leiniao.com @ads
ads-ut.api.leiniao.com @ads
ads.api.my7v.com @ads
ads.huan.tv @ads
ads.huantest.com @ads
advapi.joyplus.tv @ads
advapikj.joyplus.tv @ads
euads-o.api.leiniao.com @ads
hwads-t.api.my7v.com @ads
kuyun.com @ads
testads.api.my7v.com @ads

View File

@@ -1,5 +1,4 @@
include:qcloud #腾讯云
include:tencent-ads
include:tencent-dev
include:tencent-games
include:yuewen
@@ -90,3 +89,61 @@ tdnsdl4.cn
tdnsdl4.com.cn
tdnsdl5.cn
tdnsdl5.com.cn
# Ads/tracking
ad.browser.qq.com @ads
ad.qq.com @ads
ad.qun.qq.com @ads
ad.tencentmusic.com @ads
ad.weixin.qq.com @ads
adfilter.imtt.qq.com @ads
adnet.qq.com @ads
adping.qq.com @ads
adpm.app.qq.com @ads
adsclick.qq.com @ads
adsfile.qq.com @ads
adshmmsg.qq.com @ads
adslvfile.qq.com @ads
adslvseed.qq.com @ads
adsmind.apdcdn.tc.qq.com @ads
adsqqclick.qq.com @ads
adstats.tencentmusic.com @ads
adstestview.qq.com @ads
adsview.qq.com @ads
adsview2.qq.com @ads
adv.app.qq.com @ads
adver.qq.com @ads
beacon.cdn.qq.com @ads
beacon.qq.com @ads
beaconcdn.qq.com @ads
btrace.qq.com @ads
bugly.qq.com @ads
e.qq.com @ads
gdt.qq.com @ads
hq-tracking.qq.com @ads
htrace.wetvinfo.com @!cn @ads
isdspeed.qq.com @ads
log.tbs.qq.com @ads
mdt.qq.com @ads
monitor.music.qq.com @ads
monitor.uu.qq.com @ads
mpush.qq.com @ads
mtrace.qq.com @ads
pgdt.gtimg.cn @ads
pingjs.qq.com @ads
pmir.3g.qq.com @ads
push.qq.com @ads
qqdata.ab.qq.com @ads
report.qqweb.qq.com @ads
report.tencentmusic.com @ads
rmonitor.qq.com @ads
sngmta.qq.com @ads
stat.y.qq.com @ads
tajs.qq.com @ads
tcss.qq.com @ads
tmead.y.qq.com @ads
tmeadcomm.y.qq.com @ads
tpstelemetry.tencent.com @ads
trace.qq.com @ads
ugdtimg.com @ads
wit.qq.com @ads

View File

@@ -1,57 +0,0 @@
ad.browser.qq.com @ads
ad.qq.com @ads
ad.qun.qq.com @ads
ad.tencentmusic.com @ads
ad.weixin.qq.com @ads
adfilter.imtt.qq.com @ads
adnet.qq.com @ads
adping.qq.com @ads
adpm.app.qq.com @ads
adsclick.qq.com @ads
adsfile.qq.com @ads
adshmmsg.qq.com @ads
adslvfile.qq.com @ads
adslvseed.qq.com @ads
adsmind.apdcdn.tc.qq.com @ads
adsqqclick.qq.com @ads
adstats.tencentmusic.com @ads
adstestview.qq.com @ads
adsview.qq.com @ads
adsview2.qq.com @ads
adv.app.qq.com @ads
adver.qq.com @ads
badjs.weixinbridge.com @ads
beacon.cdn.qq.com @ads
beacon.qq.com @ads
beaconcdn.qq.com @ads
btrace.qq.com @ads
bugly.qq.com @ads
e.qq.com @ads
gdt.qq.com @ads
hq-tracking.qq.com @ads
htrace.wetvinfo.com @ads
isdspeed.qq.com @ads
log.tbs.qq.com @ads
mdt.qq.com @ads
monitor.music.qq.com @ads
monitor.uu.qq.com @ads
mpush.qq.com @ads
mtrace.qq.com @ads
pgdt.gtimg.cn @ads
pingjs.qq.com @ads
pmir.3g.qq.com @ads
push.qq.com @ads
qqdata.ab.qq.com @ads
report.qqweb.qq.com @ads
report.tencentmusic.com @ads
rmonitor.qq.com @ads
sngmta.qq.com @ads
stat.y.qq.com @ads
tajs.qq.com @ads
tcss.qq.com @ads
tmead.y.qq.com @ads
tmeadcomm.y.qq.com @ads
tpstelemetry.tencent.com @ads
trace.qq.com @ads
ugdtimg.com @ads
wit.qq.com @ads

View File

@@ -12,3 +12,6 @@ tjstats.com
wegamedeveloper.com
weixinbridge.com
weui.io
# Ads/tracking
badjs.weixinbridge.com @ads

View File

@@ -34,3 +34,6 @@ full:roovza-launches.appsflyersdk.com @!cn
full:roovza.inapps.appsflyersdk.com @!cn
full:roovza.launches.appsflyersdk.com @!cn
full:roovza.skadsdk.appsflyersdk.com @!cn
# Ads/tracking
analytics.tiktok.com @!cn @ads

View File

@@ -2,3 +2,7 @@ uc.cn
uc123.com
ucweb.com
uczzd.cn
# Ads/tracking
ads.uc.cn @ads
adslot.uc.cn @ads

View File

@@ -1,5 +1,3 @@
include:umeng-ads
cnzz.com
mobmore.com
puata.info
@@ -10,3 +8,31 @@ umsns.com
umtrack.com
uyunad.com
whalecloud.com
# Ads/tracking
aaid.umeng.com @ads
alog.umeng.com @ads
alog.umengcloud.com @ads
alogs.umeng.com @ads
alogus.umeng.com @ads
ar.umeng.com @ads
aspect-upush.umeng.com @ads
audid.umeng.com @ads
ccs.umeng.com @ads
cnlogs.umeng.com @ads
cnlogs.umengcloud.com @ads
log.umtrack.com @ads
new-aaid.umeng.com @ads
new-aaid.umeng.com.gds.alibabadns.com @ads
oc.umeng.com @ads
plbslog.umeng.com @ads
resolve.umeng.com @ads
ulogs.umeng.com @ads
ulogs.umengcloud.com @ads
utoken.umeng.com @ads
w.cnzz.com @ads
z.gds.cnzz.com @ads
# https://github.com/TG-Twilight/AWAvenue-Ads-Rule/issues/185
# errlog.umeng.com @ads
# errnewlog.umeng.com @ads

View File

@@ -1,26 +0,0 @@
aaid.umeng.com @ads
alog.umeng.com @ads
alog.umengcloud.com @ads
alogs.umeng.com @ads
alogus.umeng.com @ads
ar.umeng.com @ads
aspect-upush.umeng.com @ads
audid.umeng.com @ads
ccs.umeng.com @ads
cnlogs.umeng.com @ads
cnlogs.umengcloud.com @ads
# https://github.com/TG-Twilight/AWAvenue-Ads-Rule/issues/185
# errlog.umeng.com @ads
# errnewlog.umeng.com @ads
new-aaid.umeng.com @ads
new-aaid.umeng.com.gds.alibabadns.com @ads
oc.umeng.com @ads
plbslog.umeng.com @ads
resolve.umeng.com @ads
ulogs.umeng.com @ads
ulogs.umengcloud.com @ads
utoken.umeng.com @ads
# CNZZ
w.cnzz.com @ads
z.gds.cnzz.com @ads

View File

@@ -1,5 +1,3 @@
include:whatsapp-ads
wa.me
whatsapp-plus.info
whatsapp-plus.me
@@ -11,3 +9,7 @@ whatsapp.net
whatsapp.org
whatsapp.tv
whatsappbrand.com
# Ads/tracking
graph.whatsapp.com @ads
graph.whatsapp.net @ads

View File

@@ -1,2 +0,0 @@
graph.whatsapp.com @ads
graph.whatsapp.net @ads

View File

@@ -1,6 +1,3 @@
include:xhamster-ads
xhamster.com
xhamster.desi
xhamster.xxx
@@ -9,7 +6,8 @@ xhamster18.desi
xhamsterlive.com
xhcdn.com
# xhamsterlive thumbnails
full:widgets.stripst.com
# Ads/tracking
collector.xhamster.com @ads

View File

@@ -1 +0,0 @@
collector.xhamster.com @ads

View File

@@ -1,4 +1,3 @@
include:xiaomi-ads
include:xiaomi-ai
include:xiaomi-iot
@@ -60,3 +59,26 @@ saxyit.com
# Overseas only
c.mi.com @!cn
global.market.xiaomi.com @!cn
# Ads/tracking
a.market.xiaomi.com @ads
ad.intl.xiaomi.com @ads
ad.mi.com @ads
ad.xiaomi.com @ads
ad1.xiaomi.com @ads
admob.xiaomi.com @ads
adv.sec.intl.miui.com @ads
adv.sec.miui.com @ads
data.mistat.india.xiaomi.com @ads
data.mistat.intl.xiaomi.com @ads
data.mistat.rus.xiaomi.com @ads
data.mistat.xiaomi.com @ads
logupdate.avlyun.sec.miui.com @ads
misc.in.duokanbox.com @ads
sentry.d.mi.com @ads
sentry.d.xiaomi.net @ads
stats.music.xiaomi.com @ads
tjqonline.cn @ads
tracker.ai.xiaomi.com @ads
tracker.xiaomixiaoai.com @ads
tracking.miui.com @ads

View File

@@ -1,21 +0,0 @@
a.market.xiaomi.com @ads
ad.intl.xiaomi.com @ads
ad.mi.com @ads
ad.xiaomi.com @ads
ad1.xiaomi.com @ads
admob.xiaomi.com @ads
adv.sec.intl.miui.com @ads
adv.sec.miui.com @ads
data.mistat.india.xiaomi.com @ads
data.mistat.intl.xiaomi.com @ads
data.mistat.rus.xiaomi.com @ads
data.mistat.xiaomi.com @ads
logupdate.avlyun.sec.miui.com @ads
misc.in.duokanbox.com @ads
sentry.d.mi.com @ads
sentry.d.xiaomi.net @ads
stats.music.xiaomi.com @ads
tjqonline.cn @ads
tracker.ai.xiaomi.com @ads
tracker.xiaomixiaoai.com @ads
tracking.miui.com @ads

View File

@@ -1,2 +1,7 @@
ximalaya.com
xmcdn.com
# Ads/tracking
adbehavior.ximalaya.com @ads
adse.wsa.ximalaya.com @ads
adse.ximalaya.com @ads

View File

@@ -1,3 +0,0 @@
adbehavior.ximalaya.com @ads
adse.wsa.ximalaya.com @ads
adse.ximalaya.com @ads

View File

@@ -1,5 +1,4 @@
include:flickr
include:yahoo-ads
# All .yahoo domains
yahoo
@@ -173,3 +172,8 @@ ymail.com
yusercontent.com
full:cdn.js7k.com
# Ads/tracking
ads.yahoo.com @ads
gemini.yahoo.com @ads
ysm.yahoo.com @ads

View File

@@ -1,3 +0,0 @@
ads.yahoo.com @ads
gemini.yahoo.com @ads
ysm.yahoo.com @ads

View File

@@ -10,3 +10,26 @@ soku.com
# youku video cdn
cibntv.net
# Ads/tracking
ad.api.3g.youku.com @ads
ad.api.mobile.youku.com @ads
ad.mobile.youku.com @ads
adashx.ut.youku.com @ads
atm.youku.com @ads
e.stat.ykimg.com @ads
ems.youku.com @ads
guanggaoad.youku.com @ads
h-adashx.ut.youku.com @ads
lstat.youku.com @ads
mobilemsg.youku.com @ads
msg.youku.com @ads
p-log.ykimg.com @ads
passport-log.youku.com @ads
pl.youku.com @ads
s-adashx.ut.youku.com @ads
stat.youku.com @ads
statis.api.3g.youku.com @ads
v6-adashx.ut.youku.com @ads
yk-ssp.ad.youku.com @ads
ykad-data.youku.com @ads

View File

@@ -1,21 +0,0 @@
ad.api.3g.youku.com @ads
ad.api.mobile.youku.com @ads
ad.mobile.youku.com @ads
adashx.ut.youku.com @ads
atm.youku.com @ads
e.stat.ykimg.com @ads
ems.youku.com @ads
guanggaoad.youku.com @ads
h-adashx.ut.youku.com @ads
lstat.youku.com @ads
mobilemsg.youku.com @ads
msg.youku.com @ads
p-log.ykimg.com @ads
passport-log.youku.com @ads
pl.youku.com @ads
s-adashx.ut.youku.com @ads
stat.youku.com @ads
statis.api.3g.youku.com @ads
v6-adashx.ut.youku.com @ads
yk-ssp.ad.youku.com @ads
ykad-data.youku.com @ads

View File

@@ -177,3 +177,6 @@ youtubemobilesupport.com
yt.be
ytimg.com
full:yt3.googleusercontent.com
# Ads/tracking
ads.youtube.com @ads

View File

@@ -1,5 +1,6 @@
include:zuoyebang-ads
zuoyebang.cc
zuoyebang.com
zybang.com
# Ads/tracking
syh.zybang.com @ads

View File

@@ -1 +0,0 @@
syh.zybang.com @ads

189
main.go
View File

@@ -23,7 +23,6 @@ var (
)
var (
refMap = make(map[string][]*Entry)
plMap = make(map[string]*ParsedList)
finalMap = make(map[string][]*Entry)
cirIncMap = make(map[string]bool) // Used for circular inclusion detection
@@ -78,18 +77,14 @@ func makeProtoList(listName string, entries []*Entry) (*router.GeoSite, error) {
return site, nil
}
func writePlainList(exportedName string) error {
targetList, exist := finalMap[strings.ToUpper(exportedName)]
if !exist || len(targetList) == 0 {
return fmt.Errorf("list %q does not exist or is empty.", exportedName)
}
file, err := os.Create(filepath.Join(*outputDir, strings.ToLower(exportedName)+".txt"))
func writePlainList(listname string, entries []*Entry) error {
file, err := os.Create(filepath.Join(*outputDir, strings.ToLower(listname)+".txt"))
if err != nil {
return err
}
defer file.Close()
w := bufio.NewWriter(file)
for _, entry := range targetList {
for _, entry := range entries {
fmt.Fprintln(w, entry.Plain)
}
return w.Flush()
@@ -99,7 +94,7 @@ func parseEntry(line string) (Entry, error) {
var entry Entry
parts := strings.Fields(line)
if len(parts) == 0 {
return entry, fmt.Errorf("empty line: %q", line)
return entry, fmt.Errorf("empty line")
}
// Parse type and value
@@ -138,7 +133,7 @@ func parseEntry(line string) (Entry, error) {
}
}
// Parse/Check attributes and affiliations
// Parse attributes and affiliations
for _, part := range parts[1:] {
if strings.HasPrefix(part, "@") {
attr := strings.ToLower(part[1:]) // Trim attribute prefix `@` character
@@ -159,10 +154,21 @@ func parseEntry(line string) (Entry, error) {
// Sort attributes
slices.Sort(entry.Attrs)
// Formated plain entry: type:domain.tld:@attr1,@attr2
entry.Plain = entry.Type + ":" + entry.Value
if len(entry.Attrs) != 0 {
entry.Plain = entry.Plain + ":@" + strings.Join(entry.Attrs, ",@")
var plain strings.Builder
plain.Grow(len(entry.Type) + len(entry.Value) + 10)
plain.WriteString(entry.Type)
plain.WriteByte(':')
plain.WriteString(entry.Value)
for i, attr := range entry.Attrs {
if i == 0 {
plain.WriteByte(':')
} else {
plain.WriteByte(',')
}
plain.WriteByte('@')
plain.WriteString(attr)
}
entry.Plain = plain.String()
return entry, nil
}
@@ -200,25 +206,21 @@ func validateSiteName(name string) bool {
return true
}
func loadData(path string) error {
func loadData(path string) ([]*Entry, error) {
file, err := os.Open(path)
if err != nil {
return err
return nil, err
}
defer file.Close()
listName := strings.ToUpper(filepath.Base(path))
if !validateSiteName(listName) {
return fmt.Errorf("invalid list name: %s", listName)
}
var entries []*Entry
scanner := bufio.NewScanner(file)
lineIdx := 0
for scanner.Scan() {
line := scanner.Text()
lineIdx++
// Remove comments
if idx := strings.Index(line, "#"); idx != -1 {
line = line[:idx]
line = line[:idx] // Remove comments
}
line = strings.TrimSpace(line)
if line == "" {
@@ -226,11 +228,11 @@ func loadData(path string) error {
}
entry, err := parseEntry(line)
if err != nil {
return fmt.Errorf("error in %s at line %d: %v", path, lineIdx, err)
return entries, fmt.Errorf("error in %q at line %d: %w", path, lineIdx, err)
}
refMap[listName] = append(refMap[listName], &entry)
entries = append(entries, &entry)
}
return nil
return entries, nil
}
func parseList(refName string, refList []*Entry) error {
@@ -242,7 +244,7 @@ func parseList(refName string, refList []*Entry) error {
for _, entry := range refList {
if entry.Type == dlc.RuleTypeInclude {
if len(entry.Affs) != 0 {
return fmt.Errorf("affiliation is not allowed for include:%s", entry.Value)
return fmt.Errorf("affiliation is not allowed for include:%q", entry.Value)
}
inc := &Inclusion{Source: entry.Value}
for _, attr := range entry.Attrs {
@@ -268,11 +270,31 @@ func parseList(refName string, refList []*Entry) error {
return nil
}
func polishList(roughMap *map[string]*Entry) []*Entry {
finalList := make([]*Entry, 0, len(*roughMap))
queuingList := make([]*Entry, 0, len(*roughMap)) // Domain/full entries without attr
func isMatchAttrFilters(entry *Entry, incFilter *Inclusion) bool {
if len(incFilter.MustAttrs) == 0 && len(incFilter.BanAttrs) == 0 {
return true
}
if len(entry.Attrs) == 0 {
return len(incFilter.MustAttrs) == 0
}
for _, m := range incFilter.MustAttrs {
if !slices.Contains(entry.Attrs, m) {
return false
}
}
for _, b := range incFilter.BanAttrs {
if slices.Contains(entry.Attrs, b) {
return false
}
}
return true
}
func polishList(roughMap map[string]*Entry) []*Entry {
finalList := make([]*Entry, 0, len(roughMap))
queuingList := make([]*Entry, 0, len(roughMap)) // Domain/full entries without attr
domainsMap := make(map[string]bool)
for _, entry := range *roughMap {
for _, entry := range roughMap {
switch entry.Type { // Bypass regexp, keyword and "full/domain with attr"
case dlc.RuleTypeRegexp:
finalList = append(finalList, entry)
@@ -306,9 +328,6 @@ func polishList(roughMap *map[string]*Entry) []*Entry {
break
}
pd = pd[idx+1:] // Go for next parent
if !strings.Contains(pd, ".") {
break
} // Not allow tld to be a parent
if domainsMap[pd] {
isRedundant = true
break
@@ -331,32 +350,11 @@ func resolveList(pl *ParsedList) error {
}
if cirIncMap[pl.Name] {
return fmt.Errorf("circular inclusion in: %s", pl.Name)
return fmt.Errorf("circular inclusion in: %q", pl.Name)
}
cirIncMap[pl.Name] = true
defer delete(cirIncMap, pl.Name)
isMatchAttrFilters := func(entry *Entry, incFilter *Inclusion) bool {
if len(incFilter.MustAttrs) == 0 && len(incFilter.BanAttrs) == 0 {
return true
}
if len(entry.Attrs) == 0 {
return len(incFilter.MustAttrs) == 0
}
for _, m := range incFilter.MustAttrs {
if !slices.Contains(entry.Attrs, m) {
return false
}
}
for _, b := range incFilter.BanAttrs {
if slices.Contains(entry.Attrs, b) {
return false
}
}
return true
}
roughMap := make(map[string]*Entry) // Avoid basic duplicates
for _, dentry := range pl.Entries { // Add direct entries
roughMap[dentry.Plain] = dentry
@@ -375,80 +373,75 @@ func resolveList(pl *ParsedList) error {
}
}
}
finalMap[pl.Name] = polishList(&roughMap)
finalMap[pl.Name] = polishList(roughMap)
return nil
}
func main() {
flag.Parse()
func run() error {
dir := *dataPath
fmt.Println("Use domain lists in", dir)
fmt.Printf("using domain lists data in %q\n", dir)
// Generate refMap
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
refMap := make(map[string][]*Entry)
err := filepath.WalkDir(dir, func(path string, d os.DirEntry, err error) error {
if err != nil {
return err
}
if info.IsDir() {
if d.IsDir() {
return nil
}
if err := loadData(path); err != nil {
return err
listName := strings.ToUpper(filepath.Base(path))
if !validateSiteName(listName) {
return fmt.Errorf("invalid list name: %q", listName)
}
return nil
refMap[listName], err = loadData(path)
return err
})
if err != nil {
fmt.Println("Failed to loadData:", err)
os.Exit(1)
return fmt.Errorf("failed to loadData: %w", err)
}
// Generate plMap
for refName, refList := range refMap {
if err := parseList(refName, refList); err != nil {
fmt.Println("Failed to parseList:", err)
os.Exit(1)
return fmt.Errorf("failed to parseList %q: %w", refName, err)
}
}
// Generate finalMap
for _, pl := range plMap {
for plname, pl := range plMap {
if err := resolveList(pl); err != nil {
fmt.Println("Failed to resolveList:", err)
os.Exit(1)
return fmt.Errorf("failed to resolveList %q: %w", plname, err)
}
}
// Create output directory if not exist
if _, err := os.Stat(*outputDir); os.IsNotExist(err) {
if mkErr := os.MkdirAll(*outputDir, 0755); mkErr != nil {
fmt.Println("Failed to create output directory:", mkErr)
os.Exit(1)
}
// Make sure output directory exists
if err := os.MkdirAll(*outputDir, 0755); err != nil {
return fmt.Errorf("failed to create output directory: %w", err)
}
// Export plaintext list
var exportListSlice []string
for raw := range strings.SplitSeq(*exportLists, ",") {
if trimmed := strings.TrimSpace(raw); trimmed != "" {
exportListSlice = append(exportListSlice, trimmed)
for rawEpList := range strings.SplitSeq(*exportLists, ",") {
if epList := strings.TrimSpace(rawEpList); epList != "" {
entries, exist := finalMap[strings.ToUpper(epList)]
if !exist || len(entries) == 0 {
fmt.Printf("list %q does not exist or is empty\n", epList)
continue
}
if err := writePlainList(epList, entries); err != nil {
fmt.Printf("failed to write list %q: %v\n", epList, err)
continue
}
fmt.Printf("list %q has been generated successfully.\n", epList)
}
}
for _, exportList := range exportListSlice {
if err := writePlainList(exportList); err != nil {
fmt.Println("Failed to write list:", err)
continue
}
fmt.Printf("list %q has been generated successfully.\n", exportList)
}
// Generate dat file
protoList := new(router.GeoSiteList)
for siteName, siteEntries := range finalMap {
site, err := makeProtoList(siteName, siteEntries)
if err != nil {
fmt.Println("Failed to makeProtoList:", err)
os.Exit(1)
return fmt.Errorf("failed to makeProtoList %q: %w", siteName, err)
}
protoList.Entry = append(protoList.Entry, site)
}
@@ -459,13 +452,19 @@ func main() {
protoBytes, err := proto.Marshal(protoList)
if err != nil {
fmt.Println("Failed to marshal:", err)
os.Exit(1)
return fmt.Errorf("failed to marshal: %w", err)
}
if err := os.WriteFile(filepath.Join(*outputDir, *outputName), protoBytes, 0644); err != nil {
fmt.Println("Failed to write output:", err)
return fmt.Errorf("failed to write output: %w", err)
}
fmt.Printf("%q has been generated successfully.\n", *outputName)
return nil
}
func main() {
flag.Parse()
if err := run(); err != nil {
fmt.Printf("Fatal error: %v\n", err)
os.Exit(1)
} else {
fmt.Println(*outputName, "has been generated successfully.")
}
}