From 71fe96d7f97fcae4ba9bb5e5eeeb1bc0c8383fc0 Mon Sep 17 00:00:00 2001 From: Akimio521 Date: Fri, 5 Jul 2024 13:55:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20DOH=20=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8=E8=87=B3?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=AE=9E=E7=8E=B0=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20DOH=20=E6=9C=8D=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/core/config.py | 2 ++ app/helper/doh.py | 10 +--------- config/app.env | 2 ++ 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/core/config.py b/app/core/config.py index 8e0a38e7..41b9de5c 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -234,6 +234,8 @@ class Settings(BaseSettings): DOH_ENABLE: bool = True # 使用 DOH 解析的域名列表 DOH_DOMAINS: str = "api.themoviedb.org,api.tmdb.org,webservice.fanart.tv,api.github.com,github.com,raw.githubusercontent.com,api.telegram.org" + # DOH 解析服务器列表 + DOH_RESOLVERS: str = "1.0.0.1,1.1.1.1,9.9.9.9,149.112.112.112" # 搜索多个名称 SEARCH_MULTIPLE_NAME: bool = False # 订阅数据共享 diff --git a/app/helper/doh.py b/app/helper/doh.py index 2d6ed2cc..02c41dd5 100644 --- a/app/helper/doh.py +++ b/app/helper/doh.py @@ -22,14 +22,6 @@ _executor = concurrent.futures.ThreadPoolExecutor() # 定义默认的DoH配置 _doh_timeout = 5 _doh_cache: Dict[str, str] = {} -_doh_resolvers = [ - # https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https - "1.0.0.1", - "1.1.1.1", - # https://support.quad9.net/hc/en-us - "9.9.9.9", - "149.112.112.112" -] def _patched_getaddrinfo(host, *args, **kwargs): @@ -47,7 +39,7 @@ def _patched_getaddrinfo(host, *args, **kwargs): # 使用DoH解析主机 futures = [] - for resolver in _doh_resolvers: + for resolver in settings.DOH_RESOLVERS.split(","): futures.append(_executor.submit(_doh_query, resolver, host)) for future in concurrent.futures.as_completed(futures): diff --git a/config/app.env b/config/app.env index 47665d3b..a0213757 100644 --- a/config/app.env +++ b/config/app.env @@ -15,6 +15,8 @@ BIG_MEMORY_MODE=false DOH_ENABLE=true # 使用 DOH 解析的域名列表,多个域名使用`,`分隔 DOH_DOMAINS=api.themoviedb.org,api.tmdb.org,webservice.fanart.tv,api.github.com,github.com,raw.githubusercontent.com,api.telegram.org +# DOH 解析服务器列表,多个服务器使用`,`分隔 +DOH_RESOLVERS=1.0.0.1,1.1.1.1,9.9.9.9,149.112.112.112 # 元数据识别缓存过期时间,数字型,单位小时,0为系统默认(大内存模式为7天,滞则为3天),调大该值可减少themoviedb的访问次数 META_CACHE_EXPIRE=0 # 自动检查和更新站点资源包(索引、认证等)