23 Commits

Author SHA1 Message Date
sm4640
b34bc1f582 Feat: [4.0.0] 뉴스 요약에 주식 시장 영향 분석 기능 추가
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 11m18s
요약 프롬프트에 증권 애널리스트 역할을 통합하여 API 1회 호출로
시장 영향, 관련 섹터, 주목 종목, 전망을 함께 생성.
모든 필드는 단순 문자열로 유지하여 파싱 안정성 확보.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 15:30:22 +09:00
sm4640
6ae4325994 Docs: n8n Discord 노드 템플릿을 실제 사용 중인 코드로 복원
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 20:05:44 +09:00
sm4640
bb785545f0 Fix: [3.0.5] 요약 필드 빈 값 방지 — 프롬프트 규칙 + fallback 처리
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 9m23s
- 프롬프트에 세 필드 모두 비어있지 않은 값 필수 규칙 추가
- 코드에서 빈 문자열일 경우 "(내용 없음)" fallback 처리
- Discord embed field value 빈 문자열 에러 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 20:03:30 +09:00
sm4640
bc4f6f3f6a Fix: [3.0.4] Discord embed 요약에 이모티콘 섹션 구분 추가
Some checks failed
news-summary-bot-cicd / build_push_deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 19:59:40 +09:00
sm4640
8aa03232e8 Fix: [3.0.3] JSON 파싱 강화 + Discord 전송 안정화
Some checks failed
news-summary-bot-cicd / build_push_deploy (push) Has been cancelled
- summarizer: 코드펜스/잡텍스트 포함된 Claude 응답도 안정적으로 파싱
- summarizer: 프롬프트에 코드펜스 금지 명시
- main: Discord embed용 summary 통합 필드 추가
- docs: n8n Discord 노드를 JSON.stringify() 방식으로 변경 (줄바꿈/따옴표 이스케이프)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 19:56:06 +09:00
sm4640
9c2bf7c1ce Fix: [3.0.2] 요약 응답 구조화 + Discord 임베드 디자인 개선
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 9m14s
- 요약을 JSON으로 구조화: oneliner, main_points, conclusion 분리
- Claude에게 JSON 형식으로만 응답하도록 프롬프트 변경
- n8n Discord 임베드: 섹션별 필드 분리, 이모지, 타임스탬프 추가
- JSON.stringify Expression으로 특수문자 이스케이프 처리
- 전체 문서 API 응답 형식 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 17:18:31 +09:00
sm4640
f4532840cf Fix: [3.0.1] 응답에 video_url/channel_name 포함 + 요약 프롬프트 개선
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 15m25s
- API 응답에 video_url, channel_name을 항상 포함 (n8n Switch 이후 사용)
- channel_name 필드를 request body에서 받아 그대로 반환
- 요약 프롬프트: 구체적 수치/사례 포함, 메타 서술 금지, 시청자 액션 제시
- 문서 전체 API 응답 형식 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 16:19:15 +09:00
sm4640
b9e1c4fb45 Docs: 에러 알림 구분 — n8n 워크플로우 에러 vs 봇 요약 처리 에러
- Error Trigger: 임베드 형식으로 변경, 실패 노드/실행 ID 포함, fallback 처리
- Switch error: footer를 "봇 요약 처리 에러"로 구분
- 에러 유형 비교 테이블 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 16:00:11 +09:00
sm4640
11b3a60be8 Docs: n8n 노드 설정 상세화 — Mode, Send Body, Specify Body 등 누락 옵션 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 15:54:33 +09:00
sm4640
a2a82084ba Docs: [3.0.0] 전체 문서 업데이트 — YouTube Data API + n8n Discord 전송 구조 반영
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 25m15s
- README: 아키텍처, 환경변수, API 응답 형식 업데이트
- n8n-setup: RSS → YouTube Data API playlistItems 전환, 노드별 상세 설정
- development: discord.py 제거 반영, API 응답 형식 추가
- operations: CI/CD 자동 배포 설명, DISCORD_WEBHOOK_URL 제거
- testing: DISCORD_WEBHOOK_URL 더미값 제거
- .env.example: DISCORD_WEBHOOK_URL 제거
- tests/test_discord.py 삭제 (모듈 삭제됨)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 15:18:39 +09:00
sm4640
302f892c5d Refactor: [3.0.0] Discord 전송을 n8n으로 이관, YouTube RSS → Data API 전환
Some checks failed
news-summary-bot-cicd / build_push_deploy (push) Has been cancelled
- FastAPI에서 Discord 직접 전송 제거, 요약 결과를 JSON으로 반환
- app/discord.py 삭제, DISCORD_WEBHOOK_URL 환경변수 제거
- 에러 시 500 대신 200 + status: error로 응답 (n8n에서 분기 처리)
- CLAUDE.md에 n8n 워크플로우 노드별 상세 설정 문서화

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 15:05:36 +09:00
sm4640
22949d0602 Fix: [2.0.11] 라이브 DownloadError 스킵 처리 및 채널명 표시
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 12m11s
- yt-dlp DownloadError에서 라이브/프리미어 감지 시 SkipVideo로 변환 (500 방지)
- channel_name 필드 추가로 Discord 알림에 채널명(머니코믹스/슈카월드) 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 13:18:12 +09:00
sm4640
da9e557c64 Fix: [2.0.10] 라이브/쇼츠 스킵 및 네트워크 타임아웃 설정
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 18m49s
- 라이브/쇼츠 영상 감지 시 에러 대신 스킵 처리
- yt-dlp socket_timeout, httpx timeout, Discord webhook timeout 30초로 설정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 21:09:32 +09:00
sm4640
0bf38dd2f4 Docs: [2.0.9] 트러블슈팅 가이드 상세화
- Nginx 404, n8n JSON 에러, Docker 쿠키 마운트 이슈 문서화
- YouTube 봇 감지 원인 및 대응 방법 정리
- 쿠키 갱신 절차에 심볼릭 링크 주의사항 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 17:48:35 +09:00
sm4640
c8c9c592cf Fix: [2.0.8] process=False로 포맷 처리 건너뛰고 자막만 추출
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 15m23s
extract_info에 process=False 적용하여 포맷 선택 단계를 완전히 스킵.
자막 정보는 YouTube extractor에서 직접 반환되므로 포맷 처리 불필요.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 17:12:23 +09:00
sm4640
98cd620f23 Fix: [2.0.7] format 에러 해결 - ignore_no_formats_error 사용
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 11m7s
format: worst 대신 ignore_no_formats_error: True로 변경하여
포맷 관련 에러 없이 자막만 추출하도록 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 16:54:33 +09:00
sm4640
5e8e10e2fa Fix: [2.0.6] Docker 빌드 시 --no-cache 추가
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 12m17s
buildx 캐시 참조 에러(no such job) 해결

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 16:32:34 +09:00
sm4640
af0e2fca8a Feat: [2.0.5] 에러 발생 시 Discord 알림 전송
Some checks failed
news-summary-bot-cicd / build_push_deploy (push) Failing after 3m42s
- 요약 처리 중 에러 발생 시 Discord에 에러 상세 내용 전송
- 에러 타입, 메시지, 영상 정보를 포함한 embed 형식

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 16:27:03 +09:00
sm4640
11852bf48c Fix: [2.0.4] 쿠키 read-only 마운트 및 포맷 에러 해결
Some checks failed
news-summary-bot-cicd / build_push_deploy (push) Has been cancelled
- 쿠키 파일을 임시 파일에 복사하여 yt-dlp 쓰기 가능하도록 처리
- format: worst 추가하여 포맷 선택 에러 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 16:23:51 +09:00
sm4640
d4bd508618 Fix: [2.0.3] yt-dlp 쿠키 인증 추가, 문서 업데이트, CI/CD .md 스킵
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 4m40s
- yt-dlp에 쿠키 파일(/app/cookies.txt) 지원 추가 (YouTube 봇 감지 우회)
- CI/CD에 paths-ignore: **/*.md 추가하여 문서 수정 시 빌드 스킵
- 전체 문서 업데이트: 라우트 변경, 쿠키 인증 방식, n8n Expression 모드 안내
- .gitignore에 cookies.txt 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 15:45:12 +09:00
sm4640
aaf5bd8d05 Fix: [2.0.2] yt-dlp → youtube-transcript-api로 교체
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 9m6s
OCI 서버에서 YouTube 봇 감지로 yt-dlp 차단됨.
자막 전용 라이브러리로 교체하여 클라우드 IP 환경에서도 동작하도록 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 14:23:52 +09:00
sm4640
ac05240b58 Fix: [2.0.1] Nginx rewrite에 맞게 FastAPI 라우트 prefix 제거
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 4m47s
Nginx가 /api/news/ prefix를 strip하므로 FastAPI 라우트를
/api/news/summarize → /summarize, /api/news/health → /health로 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 14:07:11 +09:00
sm4640
dc4656e452 Feat: [main] news-summary-bot 완성
All checks were successful
news-summary-bot-cicd / build_push_deploy (push) Successful in 11m43s
2026-03-24 12:19:54 +09:00