This commit is contained in:
jxxghp
2025-07-13 14:43:48 +08:00
parent 17f4d49731
commit 3c25306a5d
2 changed files with 22 additions and 5 deletions
+20 -5
View File
@@ -140,6 +140,16 @@ class TorrentsChain(ChainBase):
:param stype: 强制指定缓存类型,spider:爬虫缓存,rss:rss缓存 :param stype: 强制指定缓存类型,spider:爬虫缓存,rss:rss缓存
:param sites: 强制指定站点ID列表,为空则读取设置的订阅站点 :param sites: 强制指定站点ID列表,为空则读取设置的订阅站点
""" """
def __is_no_cache_site(_domain: str) -> bool:
"""
判断站点是否不需要缓存
"""
for url_key in settings.NO_CACHE_SITE_KEY.split(','):
if url_key in _domain:
return True
return False
# 刷新类型 # 刷新类型
if not stype: if not stype:
stype = settings.SUBSCRIBE_MODE stype = settings.SUBSCRIBE_MODE
@@ -178,11 +188,16 @@ class TorrentsChain(ChainBase):
# 取前N条 # 取前N条
torrents = torrents[:settings.CONF.refresh] torrents = torrents[:settings.CONF.refresh]
if torrents: if torrents:
# 过滤出没有处理过的种子 - 优化:使用集合查找,避免重复创建字符串列表 if __is_no_cache_site(domain):
cached_signatures = {f'{t.torrent_info.title}{t.torrent_info.description}' # 不需要缓存的站点,直接处理
for t in torrents_cache.get(domain) or []} logger.info(f'{indexer.get("name")}{len(torrents)} 个种子 (不缓存)')
torrents = [torrent for torrent in torrents torrents_cache[domain] = []
if f'{torrent.title}{torrent.description}' not in cached_signatures] else:
# 过滤出没有处理过的种子 - 优化:使用集合查找,避免重复创建字符串列表
cached_signatures = {f'{t.torrent_info.title}{t.torrent_info.description}'
for t in torrents_cache.get(domain) or []}
torrents = [torrent for torrent in torrents
if f'{torrent.title}{torrent.description}' not in cached_signatures]
if torrents: if torrents:
logger.info(f'{indexer.get("name")}{len(torrents)} 个新种子') logger.info(f'{indexer.get("name")}{len(torrents)} 个新种子')
else: else:
+2
View File
@@ -213,6 +213,8 @@ class ConfigModel(BaseModel):
SITEDATA_REFRESH_INTERVAL: int = 6 SITEDATA_REFRESH_INTERVAL: int = 6
# 读取和发送站点消息 # 读取和发送站点消息
SITE_MESSAGE: bool = True SITE_MESSAGE: bool = True
# 不能缓存站点资源的站点域名,多个使用,分隔
NO_CACHE_SITE_KEY: str = "m-team"
# 种子标签 # 种子标签
TORRENT_TAG: str = "MOVIEPILOT" TORRENT_TAG: str = "MOVIEPILOT"
# 下载站点字幕 # 下载站点字幕