fix(anime): 파이프라인 5건 수정 — 에피소드 정규식(v2/S01E), 릴리스 그룹 필터, 자막 보호, 배치 다운로드, 타임아웃

This commit is contained in:
2026-03-15 08:27:08 +09:00
parent 63818999d9
commit 9f74812710
40 changed files with 2759 additions and 815 deletions

View File

@@ -154,3 +154,48 @@ class NyaaClient:
# 시더 수 내림차순 정렬
results.sort(key=lambda r: r.seeders, reverse=True)
return results
# ── CLI 진입점 ──
if __name__ == "__main__":
import sys
import asyncio
args = sys.argv[1:]
client = NyaaClient()
async def main():
if not args or args[0] == "search":
# python tools/nyaa_client.py search "Sousou no Frieren" [--suffix "ASW HEVC"]
query_parts = []
suffix = "ASW HEVC"
i = 1 if args and args[0] == "search" else 0
while i < len(args):
if args[i] == "--suffix" and i + 1 < len(args):
suffix = args[i + 1]
i += 2
elif args[i] == "--no-suffix":
suffix = ""
i += 1
else:
query_parts.append(args[i])
i += 1
if not query_parts:
print("사용법: python tools/nyaa_client.py search \"제목\" [--suffix \"ASW HEVC\"]")
return
query = " ".join(query_parts)
client.default_suffix = suffix
results = await client.search(query, use_default_suffix=bool(suffix))
print(f"🔍 Nyaa 검색: '{query}' +'{suffix}'{len(results)}")
for r in results[:20]:
ep = f" {r.episode}" if r.episode else ""
print(f" [{r.group}] {r.title[:60]}... | {r.size} | S:{r.seeders}{ep}")
print(f" magnet: {r.magnet_link[:80]}...")
else:
print("사용법: python tools/nyaa_client.py search \"제목\" [--suffix \"ASW HEVC\"]")
asyncio.run(main())