diff --git a/handlers/anime_handler.py b/handlers/anime_handler.py index 29bcb59..4df070b 100644 --- a/handlers/anime_handler.py +++ b/handlers/anime_handler.py @@ -149,12 +149,23 @@ async def handle_anime_message( failures = [r for r in result if not r.success] lines = [] for r in result: - icon = "✅" if r.success else "❌" + if r.success: + icon = "✅" + else: + icon = "❌" name = r.anime.subject if r.anime else "?" - lines.append(f"{icon} {name}: {r.message[:60]}") + msg = r.message or "" + # 제목에서 anime subject 중복 제거 + if r.anime and msg.startswith(f"{r.anime.subject}: "): + msg = msg[len(f"{r.anime.subject}: "):] + line = f"{icon} **{name}**: {msg[:120]}" + if r.errors: + line += f"\n ⚠ {'; '.join(r.errors[:2])}" + lines.append(line) + desc = "\n".join(lines) if lines else "처리 완료" embed = discord.Embed( title=f"📥 일괄 다운로드 ({len(successes)}/{len(result)}건 성공)", - description="\n".join(lines)[:2000] if lines else "처리 완료", + description=desc[:4000], color=0x2ECC71 if not failures else 0xF39C12, ) await safe_send_embed(message.channel, embed) diff --git a/tools/anime_pipeline.py b/tools/anime_pipeline.py index b64165f..56b5784 100644 --- a/tools/anime_pipeline.py +++ b/tools/anime_pipeline.py @@ -1017,12 +1017,15 @@ class AnimePipeline: if episode is not None: result.errors.append(f"{episode}화 토렌트를 찾지 못했습니다.") elif required_group: - result.errors.append( + result.message = ( + f"{result.anime.subject}: " f"새로 다운로드할 에피소드가 없습니다 " f"([{required_group}] 릴리스 기준)." ) + result.success = True else: - result.errors.append("새로 다운로드할 에피소드가 없습니다.") + result.message = f"{result.anime.subject}: 새로 다운로드할 에피소드가 없습니다." + result.success = True return # 에피소드 순서대로 추가