修改失败URL处理逻辑

This commit is contained in:
jinql
2025-09-21 00:12:01 +08:00
parent 1b9a50ec71
commit 634cb504da
16 changed files with 93 additions and 151 deletions

View File

@@ -20,11 +20,10 @@ _icon_root_path = setting.icon_root_path
_default_icon_path = setting.default_icon_path
# 创建FastAPI路由器
favicon_router = APIRouter(prefix="", tags=["favicon"])
favicon_router = APIRouter(prefix="/icon", tags=["favicon"])
@favicon_router.get('/icon/')
@favicon_router.get('/icon')
@favicon_router.get('/')
async def get_favicon(
request: Request,
bg_tasks: BackgroundTasks,
@@ -37,13 +36,13 @@ async def get_favicon(
return await favicon_service.get_favicon_handler(request, bg_tasks, url, refresh)
@favicon_router.get('/icon/default')
@favicon_router.get('/default')
async def get_default_icon():
"""获取默认图标"""
return favicon_service.get_default()
@favicon_router.get('/icon/referer', include_in_schema=False)
@favicon_router.get('/referer', include_in_schema=False)
async def get_referrer(unique: Optional[str] = Query(None)):
"""获取请求来源信息带unique参数时会进行去重处理"""
content = 'None'

View File

@@ -258,15 +258,11 @@ async def get_favicon_handler(request: Request,
return get_default(setting.time_of_1_days)
# 检查缓存中的失败URL
if entity.domain in favicon.failed_urls:
if int(time.time()) <= favicon.failed_urls.get(entity.domain):
return get_default(setting.time_of_1_days)
else:
del favicon.failed_urls[entity.domain]
if favicon.is_failed_url(entity.domain):
return get_default(setting.time_of_1_days)
logger.info(
f"-> count (failed/cached/icon/url): "
f"{len(favicon.failed_urls)}/{_cache_count}/{_icon_count}/{_url_count}"
logger.debug(
f"-> count (cached/icon/url): "f"{_cache_count}/{_icon_count}/{_url_count}"
)
# 检查缓存
@@ -333,7 +329,7 @@ async def get_icon_async(entity: Favicon, _cached: bytes = None) -> Optional[byt
# 0. 从原始网页标签链接中获取
lambda: (icon_url, "原始网页标签") if icon_url else (None, None),
]
# 2. 从配置文件加载其他图标获取接口
for _template, _name in setting.FAVICON_APIS:
strategies.append(