You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

490 lines
14 KiB
YAML

- RULE-SET,Reject,AdBlock
- RULE-SET,Special,DIRECT
- RULE-SET,Netflix,Netflix
- RULE-SET,Spotify,Spotify
# - RULE-SET,YouTube Music,YouTube
- RULE-SET,YouTube,YouTube
- RULE-SET,Disney Plus,Disney
- RULE-SET,Bilibili,Asian TV
- RULE-SET,IQ,Asian TV
- RULE-SET,IQIYI,Asian TV
- RULE-SET,Letv,Asian TV
# - RULE-SET,MOO,Asian TV
- RULE-SET,Netease Music,Asian TV
- RULE-SET,Tencent Video,Asian TV
- RULE-SET,Youku,Asian TV
- RULE-SET,WeTV,Asian TV
- RULE-SET,ABC,Global TV
- RULE-SET,Abema TV,Global TV
- RULE-SET,Amazon,Global TV
- RULE-SET,Apple News,Global TV
- RULE-SET,Apple TV,Global TV
- RULE-SET,Bahamut,Global TV
- RULE-SET,BBC iPlayer,Global TV
- RULE-SET,DAZN,Global TV
- RULE-SET,Discovery Plus,Global TV
- RULE-SET,encoreTVB,Global TV
- RULE-SET,Fox Now,Global TV
- RULE-SET,Fox+,Global TV
- RULE-SET,HBO Go,Global TV
- RULE-SET,HBO Max,Global TV
- RULE-SET,Hulu Japan,Global TV
- RULE-SET,Hulu,Global TV
- RULE-SET,Japonx,Global TV
- RULE-SET,JOOX,Global TV
- RULE-SET,KKBOX,Global TV
- RULE-SET,KKTV,Global TV
- RULE-SET,Line TV,Global TV
- RULE-SET,myTV SUPER,Global TV
- RULE-SET,Pandora,Global TV
- RULE-SET,PBS,Global TV
- RULE-SET,Pornhub,Global TV
- RULE-SET,Soundcloud,Global TV
- RULE-SET,ViuTV,Global TV
- RULE-SET,Telegram,Telegram
- RULE-SET,Steam,Steam
- RULE-SET,Speedtest,Speedtest
- RULE-SET,PayPal,PayPal
- RULE-SET,Microsoft,Microsoft
- RULE-SET,Apple,Apple
- RULE-SET,Google FCM,Google FCM
- RULE-SET,Scholar,Scholar
- RULE-SET,PROXY,Proxy
- RULE-SET,Domestic,Domestic
- RULE-SET,Domestic IPs,Domestic
- RULE-SET,LAN,DIRECT
- GEOIP,CN,Domestic
- MATCH,Others
script:
code: |
def main(ctx, metadata):
ruleset_action = {"Reject": "AdBlock",
"Special": "DIRECT",
"Netflix": "Netflix",
"Spotify": "Spotify",
"YouTube": "YouTube",
"Disney Plus": "Disney",
"Bilibili": "Asian TV",
"IQ": "Asian TV",
"IQIYI": "Asian TV",
"Letv": "Asian TV",
"Netease Music": "Asian TV",
"Tencent Video": "Asian TV",
"Youku": "Asian TV",
"WeTV": "Asian TV",
"ABC": "Global TV",
"Abema TV": "Global TV",
"Amazon": "Global TV",
"Apple News": "Global TV",
"Apple TV": "Global TV",
"Bahamut": "Global TV",
"BBC iPlayer": "Global TV",
"DAZN": "Global TV",
"Discovery Plus": "Global TV",
"encoreTVB": "Global TV",
"Fox Now": "Global TV",
"Fox+": "Global TV",
"HBO Go": "Global TV",
"HBO Max": "Global TV",
"Hulu Japan": "Global TV",
"Hulu": "Global TV",
"Japonx": "Global TV",
"JOOX": "Global TV",
"KKBOX": "Global TV",
"KKTV": "Global TV",
"Line TV": "Global TV",
"myTV SUPER": "Global TV",
"Pandora": "Global TV",
"PBS": "Global TV",
"Pornhub": "Global TV",
"Soundcloud": "Global TV",
"ViuTV": "Global TV",
"Telegram": "Telegram",
"Steam": "Steam",
"Speedtest": "Speedtest",
"PayPal": "PayPal",
"Microsoft": "Microsoft",
"Apple": "Apple",
"Google FCM": "Google FCM",
"Scholar": "Scholar",
"PROXY": "Proxy",
"Domestic": "Domestic",
"Domestic IPs": "Domestic",
"LAN": "DIRECT"
}
port = int(metadata["dst_port"])
if metadata["network"] == "UDP":
if port == 443:
ctx.log('[Script] matched QUIC traffic use reject')
return "REJECT"
port_list = [21, 22, 23, 53, 80, 123, 143, 194, 443, 465, 587, 853, 993, 995, 998, 2052, 2053, 2082, 2083, 2086, 2095, 2096, 5222, 5228, 5229, 5230, 8080, 8443, 8880, 8888, 8889]
if port not in port_list:
ctx.log('[Script] not common port use direct')
return "DIRECT"
if metadata["dst_ip"] == "":
metadata["dst_ip"] = ctx.resolve_ip(metadata["host"])
for ruleset in ruleset_action:
if ctx.rule_providers[ruleset].match(metadata):
return ruleset_action[ruleset]
if metadata["dst_ip"] == "":
return "DIRECT"
code = ctx.geoip(metadata["dst_ip"])
if code == "CN":
ctx.log('[Script] Geoip CN')
return "Domestic"
ctx.log('[Script] FINAL')
return "Others"
rule-providers:
Reject:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Reject.yaml'
path: ./Rules/Reject
interval: 86400
Special:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Special.yaml'
path: ./Rules/Special
interval: 86400
Netflix:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Netflix.yaml'
path: ./Rules/Media/Netflix
interval: 86400
Spotify:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Spotify.yaml'
path: ./Rules/Media/Spotify
interval: 86400
# YouTube Music:
# type: http
# behavior: classical
# url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/YouTube%20Music.yaml'
# path: ./Rules/Media/YouTube_Music
# interval: 86400
YouTube:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/YouTube.yaml'
path: ./Rules/Media/YouTube
interval: 86400
Bilibili:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Bilibili.yaml'
path: ./Rules/Media/Bilibili
interval: 86400
IQ:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/IQ.yaml'
path: ./Rules/Media/IQI
interval: 86400
IQIYI:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/IQIYI.yaml'
path: ./Rules/Media/IQYI
interval: 86400
Letv:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Letv.yaml'
path: ./Rules/Media/Letv
interval: 86400
# MOO:
# type: http
# behavior: classical
# url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/MOO.yaml'
# path: ./Rules/Media/MOO
# interval: 86400
Netease Music:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Netease%20Music.yaml'
path: ./Rules/Media/Netease_Music
interval: 86400
Tencent Video:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Tencent%20Video.yaml'
path: ./Rules/Media/Tencent_Video
interval: 86400
Youku:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Youku.yaml'
path: ./Rules/Media/Youku
interval: 86400
WeTV:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/WeTV.yaml'
path: ./Rules/Media/WeTV
interval: 86400
ABC:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/ABC.yaml'
path: ./Rules/Media/ABC
interval: 86400
Abema TV:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Abema%20TV.yaml'
path: ./Rules/Media/Abema_TV
interval: 86400
Amazon:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Amazon.yaml'
path: ./Rules/Media/Amazon
interval: 86400
Apple News:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Apple%20News.yaml'
path: ./Rules/Media/Apple_News
interval: 86400
Apple TV:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Apple%20TV.yaml'
path: ./Rules/Media/Apple_TV
interval: 86400
Bahamut:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Bahamut.yaml'
path: ./Rules/Media/Bahamut
interval: 86400
BBC iPlayer:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/BBC%20iPlayer.yaml'
path: ./Rules/Media/BBC_iPlayer
interval: 86400
DAZN:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/DAZN.yaml'
path: ./Rules/Media/DAZN
interval: 86400
Discovery Plus:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Discovery%20Plus.yaml'
path: ./Rules/Media/Discovery_Plus
interval: 86400
Disney Plus:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Disney%20Plus.yaml'
path: ./Rules/Media/Disney_Plus
interval: 86400
encoreTVB:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/encoreTVB.yaml'
path: ./Rules/Media/encoreTVB
interval: 86400
Fox Now:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Fox%20Now.yaml'
path: ./Rules/Media/Fox_Now
interval: 86400
Fox+:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Fox%2B.yaml'
path: ./Rules/Media/Fox+
interval: 86400
HBO Go:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/HBO%20Go.yaml'
path: ./Rules/Media/HBO_Go
interval: 86400
HBO Max:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/HBO%20Max.yaml'
path: ./Rules/Media/HBO_Max
interval: 86400
Hulu Japan:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Hulu%20Japan.yaml'
path: ./Rules/Media/Hulu_Japan
interval: 86400
Hulu:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Hulu.yaml'
path: ./Rules/Media/Hulu
interval: 86400
Japonx:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Japonx.yaml'
path: ./Rules/Media/Japonx
interval: 86400
JOOX:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/JOOX.yaml'
path: ./Rules/Media/JOOX
interval: 86400
KKBOX:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/KKBOX.yaml'
path: ./Rules/Media/KKBOX
interval: 86400
KKTV:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/KKTV.yaml'
path: ./Rules/Media/KKTV
interval: 86400
Line TV:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Line%20TV.yaml'
path: ./Rules/Media/Line_TV
interval: 86400
myTV SUPER:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/myTV%20SUPER.yaml'
path: ./Rules/Media/myTV_SUPER
interval: 86400
Pandora:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Pandora.yaml'
path: ./Rules/Media/Pandora
interval: 86400
PBS:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/PBS.yaml'
path: ./Rules/Media/PBS
interval: 86400
Pornhub:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Pornhub.yaml'
path: ./Rules/Media/Pornhub
interval: 86400
Soundcloud:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/Soundcloud.yaml'
path: ./Rules/Media/Soundcloud
interval: 86400
ViuTV:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Media/ViuTV.yaml'
path: ./Rules/Media/ViuTV
interval: 86400
Telegram:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Telegram.yaml'
path: ./Rules/Telegram
interval: 86400
Steam:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Steam.yaml'
path: ./Rules/Steam
interval: 86400
Speedtest:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Speedtest.yaml'
path: ./Rules/Speedtest
interval: 86400
PayPal:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/PayPal.yaml'
path: ./Rules/PayPal
interval: 86400
Microsoft:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Microsoft.yaml'
path: ./Rules/Microsoft
interval: 86400
PROXY:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Proxy.yaml'
path: ./Rules/Proxy
interval: 86400
Domestic:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Domestic.yaml'
path: ./Rules/Domestic
interval: 86400
Apple:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Apple.yaml'
path: ./Rules/Apple
interval: 86400
Google FCM:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Google%20FCM.yaml'
path: ./Rules/Google FCM
interval: 86400
Scholar:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Scholar.yaml'
path: ./Rules/Scholar
interval: 86400
Domestic IPs:
type: http
behavior: ipcidr
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/Domestic%20IPs.yaml'
path: ./Rules/Domestic_IPs
interval: 86400
LAN:
type: http
behavior: classical
url: 'https://raw.lhie1.com/lhie1/Rules/master/Clash/Provider/LAN.yaml'
path: ./Rules/LAN
interval: 86400