Allow season zero for auto-downloads
This commit is contained in:
@@ -1048,7 +1048,7 @@ def watchlist_source_season_dir(item, config):
|
||||
source_root = watchlist_source_library_dir(item, config)
|
||||
if normalize_media_type(item.get("media_type")) == "movie":
|
||||
return source_root
|
||||
season = normalize_season((item or {}).get("auto_download_series") or "1")
|
||||
season = normalize_season((item or {}).get("auto_download_series"))
|
||||
return source_root / f"Season {int(season):02d}"
|
||||
|
||||
|
||||
@@ -1145,7 +1145,7 @@ def watchlist_downloaded_episode_values_from_filesystem(item, config, mode):
|
||||
season_dir = watchlist_source_season_dir(item, config)
|
||||
if not season_dir.exists() or not season_dir.is_dir():
|
||||
return []
|
||||
season = normalize_season((item or {}).get("auto_download_series") or "1")
|
||||
season = normalize_season((item or {}).get("auto_download_series"))
|
||||
pattern = re.compile(rf"\bS{int(season):02d}E([0-9][0-9A-Za-z.\-]*)\b", re.IGNORECASE)
|
||||
values = []
|
||||
seen = set()
|
||||
@@ -1703,7 +1703,7 @@ class WatchlistStore:
|
||||
item["auto_download_quality"] = quality if quality in QUALITY_CHOICES else defaults["auto_download_quality"]
|
||||
item["auto_download_name"] = sanitize_path_component(item.get("auto_download_name") or defaults["auto_download_name"], defaults["auto_download_name"])
|
||||
item["auto_download_source_name"] = str(item.get("auto_download_source_name") or defaults["auto_download_source_name"]).strip() or defaults["auto_download_source_name"]
|
||||
item["auto_download_series"] = normalize_season(item.get("auto_download_series") or defaults["auto_download_series"])
|
||||
item["auto_download_series"] = normalize_season(item.get("auto_download_series"))
|
||||
item["auto_download_offset"] = normalize_episode_offset(item.get("auto_download_offset"))
|
||||
item["downloaded_sub_episodes"] = decode_episode_values(item.get("downloaded_sub_episodes_json"))
|
||||
item["downloaded_dub_episodes"] = decode_episode_values(item.get("downloaded_dub_episodes_json"))
|
||||
@@ -2027,7 +2027,10 @@ class WatchlistStore:
|
||||
"downloaded_sub_episodes_json": None,
|
||||
"downloaded_dub_episodes_json": None,
|
||||
}
|
||||
item["auto_download_series"] = normalize_season(payload.get("auto_download_series") or item.get("auto_download_series") or "1")
|
||||
requested_series = payload.get("auto_download_series")
|
||||
if requested_series is None or str(requested_series).strip() == "":
|
||||
requested_series = item.get("auto_download_series")
|
||||
item["auto_download_series"] = normalize_season(requested_series)
|
||||
requested_mode = str(payload.get("auto_download_mode") or item.get("auto_download_mode") or "").strip().lower()
|
||||
if requested_mode in MODE_CHOICES:
|
||||
item["auto_download_mode"] = requested_mode
|
||||
@@ -2574,7 +2577,10 @@ class WatchlistStore:
|
||||
normalized_source_name = str(source_name or existing.get("auto_download_source_name") or defaults["auto_download_source_name"]).strip()
|
||||
if not normalized_source_name:
|
||||
normalized_source_name = defaults["auto_download_source_name"]
|
||||
normalized_series = normalize_season(series or existing.get("auto_download_series") or defaults["auto_download_series"])
|
||||
requested_series = series
|
||||
if requested_series is None or str(requested_series).strip() == "":
|
||||
requested_series = existing.get("auto_download_series")
|
||||
normalized_series = normalize_season(requested_series)
|
||||
normalized_offset = (
|
||||
normalize_episode_offset(existing.get("auto_download_offset"))
|
||||
if episode_offset is None
|
||||
@@ -2825,7 +2831,7 @@ def download_watchlist_item(show_id, mode):
|
||||
"title": item["title"],
|
||||
"anime_name": item.get("auto_download_name") or item["title"],
|
||||
"media_type": item.get("media_type") or "tv",
|
||||
"season": item.get("auto_download_series") or "1",
|
||||
"season": normalize_season(item.get("auto_download_series")),
|
||||
"episode_offset": item.get("auto_download_offset"),
|
||||
"mode": normalized_mode,
|
||||
"quality": item.get("auto_download_quality")
|
||||
@@ -2878,7 +2884,7 @@ def queue_watchlist_auto_download(item, refresh_source="manual"):
|
||||
item.get("auto_download_name") or item.get("title") or "Anime",
|
||||
sanitize_path_component(item.get("title") or "Anime", "Anime"),
|
||||
)
|
||||
series = normalize_season(item.get("auto_download_series") or "1")
|
||||
series = normalize_season(item.get("auto_download_series"))
|
||||
episode_offset = normalize_episode_offset(item.get("auto_download_offset"))
|
||||
jobs = []
|
||||
for episode_spec in specs:
|
||||
|
||||
Reference in New Issue
Block a user