Skip to content

Commit

Permalink
fix 目录监控蓝光原盘
Browse files Browse the repository at this point in the history
  • Loading branch information
jxxghp committed Jan 2, 2025
1 parent d5ac9f6 commit 8ac0d16
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 4 deletions.
6 changes: 3 additions & 3 deletions app/chain/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -527,8 +527,8 @@ def __get_season_episodes(_mid: Union[int, str], season: int) -> int:
downloaded_list.append(context)

# 电视剧整季匹配
logger.info(f"开始匹配电视剧整季:{no_exists}")
if no_exists:
logger.info(f"开始匹配电视剧整季:{no_exists}")
# 先把整季缺失的拿出来,看是否刚好有所有季都满足的种子 {tmdbid: [seasons]}
need_seasons: Dict[int, list] = {}
for need_mid, need_tv in no_exists.items():
Expand Down Expand Up @@ -631,8 +631,8 @@ def __get_season_episodes(_mid: Union[int, str], season: int) -> int:
# 全部下载完成
break
# 电视剧季内的集匹配
logger.info(f"开始电视剧完整集匹配:{no_exists}")
if no_exists:
logger.info(f"开始电视剧完整集匹配:{no_exists}")
# TMDBID列表
need_tv_list = list(no_exists)
for need_mid in need_tv_list:
Expand Down Expand Up @@ -701,8 +701,8 @@ def __get_season_episodes(_mid: Union[int, str], season: int) -> int:
logger.info(f"季 {need_season} 剩余需要集:{need_episodes}")

# 仍然缺失的剧集,从整季中选择需要的集数文件下载,仅支持QB和TR
logger.info(f"开始电视剧多集拆包匹配:{no_exists}")
if no_exists:
logger.info(f"开始电视剧多集拆包匹配:{no_exists}")
# TMDBID列表
no_exists_list = list(no_exists)
for need_mid in no_exists_list:
Expand Down
26 changes: 25 additions & 1 deletion app/monitor.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import platform
import re
import threading
import traceback
from pathlib import Path
from threading import Lock
from typing import Any
from typing import Any, Optional

from apscheduler.schedulers.background import BackgroundScheduler
from cachetools import TTLCache
Expand Down Expand Up @@ -217,12 +218,35 @@ def __handle_file(self, storage: str, event_path: Path, file_size: float = None)
:param event_path: 事件文件路径
:param file_size: 文件大小
"""

def __is_bluray_sub(_path: Path) -> bool:
"""
判断是否蓝光原盘目录内的子目录或文件
"""
return True if re.search(r"BDMV[/\\]STREAM", str(_path), re.IGNORECASE) else False

def __get_bluray_dir(_path: Path) -> Optional[Path]:
"""
获取蓝光原盘BDMV目录的上级目录
"""
for p in _path.parents:
if p.name == "BDMV":
return p.parent
return None

# 全程加锁
with lock:
# 蓝光原盘文件处理
if __is_bluray_sub(event_path):
event_path = __get_bluray_dir(event_path)
if not event_path:
return

# TTL缓存控重
if self._cache.get(str(event_path)):
return
self._cache[str(event_path)] = True

try:
# 开始整理
self.transferchain.do_transfer(
Expand Down

0 comments on commit 8ac0d16

Please sign in to comment.