Skip to content

Commit 48d890a

Browse files
authored
Merge pull request #963 from EstrellaXD/3.2-dev
Release 3.2.1
2 parents 5f3efb0 + 418e2b4 commit 48d890a

104 files changed

Lines changed: 5122 additions & 1756 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[project]
22
name = "auto-bangumi"
3-
version = "3.2.0-beta.13"
3+
version = "3.2.1"
44
description = "AutoBangumi - Automated anime download manager"
55
requires-python = ">=3.13"
66
dependencies = [
77
"fastapi>=0.109.0",
88
"uvicorn>=0.27.0",
9-
"httpx>=0.25.0",
9+
"httpx[socks]>=0.25.0",
1010
"httpx-socks>=0.9.0",
1111
"beautifulsoup4>=4.12.0",
1212
"sqlmodel>=0.0.14",

backend/src/module/downloader/download_client.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,14 @@ async def get_torrent_files(self, torrent_hash: str):
121121
return await self.client.torrents_files(torrent_hash=torrent_hash)
122122

123123
async def rename_torrent_file(self, _hash, old_path, new_path) -> bool:
124-
logger.info(f"{old_path} >> {new_path}")
125-
return await self.client.torrents_rename_file(
124+
result = await self.client.torrents_rename_file(
126125
torrent_hash=_hash, old_path=old_path, new_path=new_path
127126
)
127+
if result:
128+
logger.info(f"{old_path} >> {new_path}")
129+
else:
130+
logger.debug(f"[Downloader] Rename failed: {old_path} >> {new_path}")
131+
return result
128132

129133
async def delete_torrent(self, hashes, delete_files: bool = True):
130134
await self.client.torrents_delete(hashes, delete_files=delete_files)

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,

backend/uv.lock

Lines changed: 510 additions & 496 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)