Skip to content

Commit 24f1f72

Browse files
EstrellaXDclaudehappy-otter
committed
fix(renamer): improve episode offset warning messages (#962)
The warning "Episode offset 0 would result in negative episode" was misleading and caused log spam. The actual issue was either: 1. Parsed episode was 0 or negative (parsing failure or special episode) 2. A negative offset would make a valid episode negative Changes: - Differentiate between parsing issues vs offset issues in log messages - Use debug level for parsed episode issues (likely special episodes) - Keep warning level only for actual offset problems - Include original episode value in warning for better debugging - Handle edge case where parsed episode is 0 by falling back to 1 Fixes #962 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
1 parent 3146029 commit 24f1f72

1 file changed

Lines changed: 18 additions & 7 deletions

File tree

backend/src/module/manager/renamer.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,22 @@ def gen_path(
3939
season_num = file_info.season
4040
season = f"0{season_num}" if season_num < 10 else season_num
4141
# Apply episode offset
42-
adjusted_episode = int(file_info.episode) + episode_offset
42+
original_episode = int(file_info.episode)
43+
adjusted_episode = original_episode + episode_offset
4344
if adjusted_episode < 1:
44-
adjusted_episode = int(file_info.episode) # Safety: don't go below 1
45-
logger.warning(
46-
f"[Renamer] Episode offset {episode_offset} would result in negative episode, ignoring"
47-
)
45+
if original_episode < 1:
46+
# Parsed episode is 0 or negative - likely a parsing issue or special episode
47+
# Use episode 1 as fallback to avoid invalid filenames
48+
adjusted_episode = 1
49+
logger.debug(
50+
f"[Renamer] Parsed episode {original_episode} is invalid, using episode 1"
51+
)
52+
else:
53+
# Offset would make episode negative - ignore the offset
54+
adjusted_episode = original_episode
55+
logger.warning(
56+
f"[Renamer] Episode offset {episode_offset} would make episode {original_episode} negative, ignoring offset"
57+
)
4858
episode = f"0{adjusted_episode}" if adjusted_episode < 10 else adjusted_episode
4959
if method == "none" or method == "subtitle_none":
5060
return file_info.media_path
@@ -95,9 +105,10 @@ async def rename_file(
95105
):
96106
# Season comes from folder which already has offset applied
97107
# Only apply episode offset
98-
adjusted_episode = int(ep.episode) + episode_offset
108+
original_ep = int(ep.episode)
109+
adjusted_episode = original_ep + episode_offset
99110
if adjusted_episode < 1:
100-
adjusted_episode = int(ep.episode)
111+
adjusted_episode = 1 if original_ep < 1 else original_ep
101112
return Notification(
102113
official_title=bangumi_name,
103114
season=ep.season,

0 commit comments

Comments
 (0)