Commit graph

20 commits

Author SHA1 Message Date
9ceef6c656 feat(x-bot): 키워드 필터링 및 전체 동기화 기능 추가
Backend:
- bot_x 테이블에 text_filters 컬럼 추가
- syncNewTweets/syncAllTweets에 텍스트 필터링 로직 적용
- 봇 추가 시 전체 트윗 동기화 수행 (백그라운드)
- X 봇 API에 text_filters 필드 처리

Frontend:
- XBotDialog에 고급 설정 (키워드 필터) UI 추가
- BotTableRow에서 X 봇 수정/삭제 버튼 활성화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 09:23:45 +09:00
eeb5e7234c feat(frontend): X 봇 관리 UI 추가
- XBotDialog 컴포넌트 생성
- ScheduleBots 페이지에 X 봇 추가/수정/삭제 통합
- X 섹션에 canAdd 활성화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 09:12:38 +09:00
2e7fe697fc feat(admin): YouTube 봇 추가/수정/삭제 기능 완성
- 채널 핸들로 채널 정보 조회 API 추가 (POST /youtube-bots/lookup)
- getChannelByHandle 함수 추가 (YouTube API forHandle 사용)
- 봇 추가 시 채널 조회 후 배너 이미지 표시
- 봇 수정 API 스키마에 null 허용 추가
- 삭제 확인 다이얼로그 및 삭제 기능 구현
- 디버깅 로그 제거

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-07 10:51:45 +09:00
ec3839bcc7 feat(admin): YouTube 봇 CRUD API 및 수정 다이얼로그 개선
- YouTube 봇 전용 API 라우트 추가 (GET/POST/PUT/DELETE /api/admin/youtube-bots)
- 봇 목록 API에 YouTube 봇 상세 정보 포함 (db_id, channel_id 등)
- 수정 다이얼로그에서 useQuery로 봇 데이터 조회
- 채널 배너 이미지 표시 추가
- Fastify 스키마에 additionalProperties 설정으로 auto_schedule_config 정상 반환

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-07 10:43:06 +09:00
a8c12aa76d feat: YouTube 봇 DB 기반 관리로 마이그레이션
- YouTube 봇 설정을 bots.js에서 youtube_bots 테이블로 이동
- 봇 ID를 AUTO_INCREMENT로 변경 (youtube-{id} 형식)
- 고정 멤버 다중 선택 지원 (default_member_ids JSON)
- 제목 필터 다중 키워드 지원 (title_filters JSON)
- Redis 캐싱 제거 (Activities API 사용으로 불필요)
- 채널 배너 URL DB 저장 (youtube_bots.banner_url)
- YouTubeBotDialog UI 개선:
  - Portal 기반 드롭다운 (overflow 문제 해결)
  - AnimatePresence 애니메이션 적용
  - 다중 선택 컴포넌트 추가
  - 태그 입력 형태의 제목 필터
  - 뒷배경 클릭 방지

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-07 10:15:07 +09:00
f3f99c7428 fix: 드롭다운 z-index 수정 및 YouTubeBotDialog 커스텀 드롭다운 적용
- WordItem, ScheduleDict 드롭다운 z-index를 z-20에서 z-40으로 변경
  (테이블 헤더의 z-30보다 높게 설정하여 가려지는 문제 해결)
- YouTubeBotDialog에 커스텀 Dropdown 컴포넌트 추가
- 네이티브 select 요소를 커스텀 드롭다운으로 교체
- 시간 선택을 위한 TIME_OPTIONS (00:00~23:00) 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:30:34 +09:00
3fa9f1520a feat: YouTube 봇 추가/수정 다이얼로그 UI 구현
- 채널 핸들 입력 및 조회 기능 (UI만)
- 동기화 간격 선택
- 예정 일정 자동 생성 설정 (요일, 시간, 제목 템플릿, 마감 요일)
- 고급 설정 (제목 필터, 멤버 추출)
- 추가/수정 모드 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:22:56 +09:00
802aacd22e fix: 봇 테이블 액션 컬럼 너비 조정 (20% → 16%)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:18:38 +09:00
2417cd287d fix: 봇 테이블 액션 컬럼 너비 확대 (12% → 20%)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:16:48 +09:00
de3cb91191 feat: 봇 테이블 액션 버튼 완성
- 삭제 버튼 추가 (YouTube만)
- 버튼 순서: 전체 동기화 → 시작/정지 → 수정 → 삭제
- 모든 버튼에 Tooltip 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:16:12 +09:00
0c9dd44c2b feat: 봇 테이블 액션 버튼 개선
- 전체 동기화 아이콘을 RotateCcw로 변경
- YouTube 봇에만 수정(Pencil) 버튼 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:12:22 +09:00
6b39cf043f fix: 봇 테이블 중간 4개 컬럼 너비 통일 (10%)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:09:57 +09:00
47afd68921 fix: 봇 테이블 컬럼 너비 고정
- table-fixed 적용으로 컬럼 너비 통일
- 각 컬럼에 퍼센트 너비 지정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:09:02 +09:00
b5118f2dea feat: 봇 관리 섹션별 다른 디자인 적용
- Meilisearch: 리스트형 (BotListItem) - 한 줄에 모든 정보
- YouTube: 미니 카드형 (BotMiniCard) - 호버시 액션 버튼
- X: 테이블형 (BotTableRow) - 표 형식으로 정보 비교

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:04:16 +09:00
dbfee503d5 fix: BotCard 구분 개선
- 테두리 및 그림자 강화
- 통계 영역 배경색 추가로 구분감 향상

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:01:49 +09:00
b3357e0663 refactor: BotCard 디자인 개선
- 타입별 아이콘 제거 (섹션 헤더에서 표시)
- 통계 정보 가로 배열로 컴팩트하게 변경
- 버튼을 하단에 플랫하게 배치
- 전체적으로 미니멀하고 깔끔한 스타일로 변경

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 18:01:15 +09:00
83c955f8a9 refactor: Meilisearch 봇을 단순 일일 동기화 방식으로 변경
- Watchtower 제외 라벨 추가하여 자동 업데이트 방지
- 버전 체크 방식 제거, 매일 12시 전체 동기화로 변경
- 봇 관리 UI를 다른 봇들과 동일하게 통일 (버전 → 업데이트 간격)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:59:18 +09:00
85f03cb2d8 타임스탬프 KST 통일 및 Meilisearch 동기화 소요 시간 추가
- date.js: nowKST() 함수 추가
- 모든 타임스탬프를 UTC에서 KST(+09:00)로 변경
  - scheduler.js, bots.js, x/index.js, logger.js, app.js
- Meilisearch 봇에 동기화 소요 시간(ms) 추적 추가
- BotCard.jsx: 중복된 마지막 동기화 대신 소요 시간 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:00:58 +09:00
95285634e9 cron 스케줄러 한국 시간대 적용 및 봇 카드 UI 개선
- scheduler.js: cron.schedule에 timezone: 'Asia/Seoul' 옵션 추가
- bots.js: Meilisearch 봇 API에 버전 정보 추가
- BotCard.jsx: Meilisearch 봇 카드에 마지막 동기화 시간, 동기화 수, 버전 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 21:52:01 +09:00
980ae3fe1d refactor: frontend-temp를 frontend로 대체 및 문서 업데이트
- frontend 폴더를 새로 리팩토링된 frontend-temp로 교체
- docs/architecture.md: 현재 프로젝트 구조 반영
- docs/development.md: API 클라이언트 구조 업데이트
- docs/frontend-improvement.md 삭제 (완료된 개선 계획)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 10:29:30 +09:00