fix indexer sites

This commit is contained in:
jxxghp
2023-07-09 17:38:38 +08:00
parent 9d9fde387c
commit 5466287783
5 changed files with 19 additions and 12 deletions

View File

@ -1,7 +1,7 @@
import json import json
import json import json
import time import time
from typing import Any from typing import Any, List
from fastapi import APIRouter, HTTPException, Depends from fastapi import APIRouter, HTTPException, Depends
from fastapi.responses import StreamingResponse from fastapi.responses import StreamingResponse
@ -37,16 +37,18 @@ def get_progress(process_type: str, token: str):
return StreamingResponse(event_generator(), media_type="text/event-stream") return StreamingResponse(event_generator(), media_type="text/event-stream")
@router.get("/setting", summary="查询系统设置") @router.get("/setting/{key}", summary="查询系统设置")
def get_setting(key: str, _: schemas.TokenPayload = Depends(verify_token)): def get_setting(key: str, _: schemas.TokenPayload = Depends(verify_token)):
""" """
查询系统设置 查询系统设置
""" """
return schemas.Response(success=True, data=SystemConfigOper().get(key)) return schemas.Response(success=True, data={
"value": SystemConfigOper().get(key)
})
@router.put("/setting", summary="更新系统设置") @router.post("/setting/{key}", summary="更新系统设置")
def set_setting(key: str, value: Any, _: schemas.TokenPayload = Depends(verify_token)): def set_setting(key: str, value: List[int], _: schemas.TokenPayload = Depends(verify_token)):
""" """
更新系统设置 更新系统设置
""" """

View File

@ -202,9 +202,11 @@ class SearchChain(ChainBase):
""" """
# 未开启的站点不搜索 # 未开启的站点不搜索
indexer_sites = [] indexer_sites = []
# 配置的索引站点
config_indexers = self.systemconfig.get(SystemConfigKey.IndexerSites) or []
for indexer in self.siteshelper.get_indexers(): for indexer in self.siteshelper.get_indexers():
if not settings.INDEXER_SITES \ # 检查站点索引开关
or any([s in indexer.get("domain") for s in settings.INDEXER_SITES.split(',')]): if not config_indexers or indexer.get("id") in config_indexers:
# 站点流控 # 站点流控
state, msg = self.siteshelper.check(indexer.get("domain")) state, msg = self.siteshelper.check(indexer.get("domain"))
if not state: if not state:

View File

@ -11,12 +11,13 @@ from app.core.context import TorrentInfo, Context, MediaInfo
from app.core.config import settings from app.core.config import settings
from app.db.models.subscribe import Subscribe from app.db.models.subscribe import Subscribe
from app.db.subscribe_oper import SubscribeOper from app.db.subscribe_oper import SubscribeOper
from app.db.systemconfig_oper import SystemConfigOper
from app.helper.message import MessageHelper from app.helper.message import MessageHelper
from app.helper.sites import SitesHelper from app.helper.sites import SitesHelper
from app.log import logger from app.log import logger
from app.schemas import NotExistMediaInfo from app.schemas import NotExistMediaInfo
from app.utils.string import StringUtils from app.utils.string import StringUtils
from app.schemas.types import MediaType from app.schemas.types import MediaType, SystemConfigKey
class SubscribeChain(ChainBase): class SubscribeChain(ChainBase):
@ -34,6 +35,7 @@ class SubscribeChain(ChainBase):
self.subscribehelper = SubscribeOper() self.subscribehelper = SubscribeOper()
self.siteshelper = SitesHelper() self.siteshelper = SitesHelper()
self.message = MessageHelper() self.message = MessageHelper()
self.systemconfig = SystemConfigOper()
def add(self, title: str, year: str, def add(self, title: str, year: str,
mtype: MediaType = None, mtype: MediaType = None,
@ -269,11 +271,12 @@ class SubscribeChain(ChainBase):
""" """
# 所有站点索引 # 所有站点索引
indexers = self.siteshelper.get_indexers() indexers = self.siteshelper.get_indexers()
# 配置的索引站点
config_indexers = self.systemconfig.get(SystemConfigKey.IndexerSites) or []
# 遍历站点缓存资源 # 遍历站点缓存资源
for indexer in indexers: for indexer in indexers:
# 未开启的站点不搜索 # 未开启的站点不搜索
if settings.INDEXER_SITES \ if config_indexers and indexer.get("id") not in config_indexers:
and not any([s in indexer.get("domain") for s in settings.INDEXER_SITES.split(',')]):
continue continue
logger.info(f'开始刷新站点资源,站点:{indexer.get("name")} ...') logger.info(f'开始刷新站点资源,站点:{indexer.get("name")} ...')
domain = StringUtils.get_url_domain(indexer.get("domain")) domain = StringUtils.get_url_domain(indexer.get("domain"))

View File

@ -59,8 +59,6 @@ class Settings(BaseSettings):
RMT_AUDIO_TRACK_EXT: list = ['.mka'] RMT_AUDIO_TRACK_EXT: list = ['.mka']
# 索引器 # 索引器
INDEXER: str = "builtin" INDEXER: str = "builtin"
# 索引站点,站点域名关键字使用,分隔
INDEXER_SITES: str = ""
# 用户认证站点 hhclub/audiences/hddolby/zmpt/freefarm/hdfans/wintersakura/leaves/1ptba/icc2022/iyuu # 用户认证站点 hhclub/audiences/hddolby/zmpt/freefarm/hdfans/wintersakura/leaves/1ptba/icc2022/iyuu
AUTH_SITE: str = "" AUTH_SITE: str = ""
# 消息通知渠道 telegram/wechat/slack # 消息通知渠道 telegram/wechat/slack

View File

@ -36,6 +36,8 @@ class SystemConfigKey(Enum):
UserInstalledPlugins = "UserInstalledPlugins" UserInstalledPlugins = "UserInstalledPlugins"
# 搜索结果 # 搜索结果
SearchResults = "SearchResults" SearchResults = "SearchResults"
# 索引站点范围
IndexerSites = "IndexerSites"
# 站点框架 # 站点框架