From 5a59652684d30dad20bf210429781d2e9ceadb79 Mon Sep 17 00:00:00 2001 From: Akimio521 Date: Fri, 5 Jul 2024 09:31:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=B0=86=E4=BD=BF=E7=94=A8=20DOH=20?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E8=A7=A3=E6=9E=90=E7=9A=84=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=B3=20app.core.config.settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/core/config.py | 2 ++ app/helper/doh.py | 12 +----------- config/app.env | 2 ++ 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/app/core/config.py b/app/core/config.py index bbb745b4..08661176 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -232,6 +232,8 @@ class Settings(BaseSettings): META_CACHE_EXPIRE: int = 0 # 是否启用DOH解析域名 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' # 搜索多个名称 SEARCH_MULTIPLE_NAME: bool = False # 订阅数据共享 diff --git a/app/helper/doh.py b/app/helper/doh.py index 88dc4ff1..2d6ed2cc 100644 --- a/app/helper/doh.py +++ b/app/helper/doh.py @@ -15,16 +15,6 @@ from typing import Dict, Optional from app.core.config import settings from app.log import logger -# 定义一个全局集合来存储注册的主机 -_registered_hosts = { - 'api.themoviedb.org', - 'api.tmdb.org', - 'webservice.fanart.tv', - 'api.github.com', - 'github.com', - 'raw.githubusercontent.com', - 'api.telegram.org' -} # 定义一个全局线程池执行器 _executor = concurrent.futures.ThreadPoolExecutor() @@ -46,7 +36,7 @@ def _patched_getaddrinfo(host, *args, **kwargs): """ socket.getaddrinfo的补丁版本。 """ - if host not in _registered_hosts: + if host not in settings.DOH_DOMAINS.split(","): return _orig_getaddrinfo(host, *args, **kwargs) # 检查主机是否已解析 diff --git a/config/app.env b/config/app.env index 956d17b8..169560ab 100644 --- a/config/app.env +++ b/config/app.env @@ -13,6 +13,8 @@ SUPERUSER=admin BIG_MEMORY_MODE=false # 是否启用DOH域名解析,启用后对于api.themovie.org等域名通过DOH解析,避免域名DNS被污染 DOH_ENABLE=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' # 元数据识别缓存过期时间,数字型,单位小时,0为系统默认(大内存模式为7天,滞则为3天),调大该值可减少themoviedb的访问次数 META_CACHE_EXPIRE=0 # 自动检查和更新站点资源包(索引、认证等)