K-DEVCON 커뮤니티를 위한 Slack 봇입니다. 다양한 기능을 제공하여 커뮤니티 활동을 지원합니다.
- 봇을 멘션(
@봇이름)하면 ChatGPT가 답변합니다 - 스레드에서 대화를 이어갈 수 있습니다
- 특정 채널에서만 동작하도록 설정 가능합니다
- 사용 모델: GPT-4o
- 특정 채널의 메시지를 Firebase에 자동으로 아카이브합니다
- 날짜별로 메시지를 저장하여 나중에 조회할 수 있습니다
- 매일 08시 자동 출석 체크: 매일 한국시간 08시에 출석 체크 메시지를 자동으로 발송합니다
- 출석 기록 조회: 개인의 출석 기록을 확인할 수 있습니다
- 랭킹 시스템: 출석 순위를 확인할 수 있습니다
- 월간 리포트: 매월 1일 전월 출석 통계를 발송합니다
- Firebase를 사용하여 출석 데이터를 저장합니다
- Slack 홈 탭에 GitHub 저장소 링크를 표시합니다
- 사용자가 봇의 정보를 쉽게 확인할 수 있습니다
- IT 기술 블로그의 RSS 피드를 확인하고 슬랙 채널에 포스팅합니다
- GeekNews와 Velopers 두 개의 RSS 피드를 지원합니다
- 매일 한국시간 08시에 자동으로 실행됩니다
- 24시간 이내 발행된 글만 처리합니다
npm install
# 또는
pnpm install.env 파일을 생성하고 아래의 항목을 기입하세요:
# Slack Bot Configuration
HOLANG_BOT_TOKEN= # Slack Bot Token
HOLANG_APP_TOKEN= # Slack App Token (Socket Mode용)
GEEK_NEWS_HOOK_URL= # GeekNews 슬랙 웹훅 URL
VELOPERS_HOOK_URL= # Velopers 슬랙 웹훅 URL
# OpenAI Configuration (ChatGPT 기능용)
OPENAI_API_KEY= # OpenAI API Key
# MySQL Database Configuration (RSS 피드 DB 저장 기능용)
DB_HOST=
DB_PORT=
DB_USER=
DB_PASSWORD=
DB_NAME=
# Post 엔티티에 필요한 ID (게시판, 작성자 데이터의 ID 값)
DB_CHANNEL_ID=
DB_REGISTER_ID=
# RSS 피드 필터 기간 설정 (선택사항)
VELOPERS_FILTER_DAYS=1 # Velopers RSS 피드 처리 기간 (일 단위, 기본값: 1일)
# 테스트를 위해 더 긴 기간(예: 7일, 30일)으로 설정 가능
mysql의 Post 엔티티에 IT 블로그 게시글을 직접 저장합니다.
RSS 피드 DB 저장 기능을 테스트하려면:
node test-rss-db.js이 테스트 스크립트는 다음을 수행합니다:
- DB 연결 테스트
- GeekNews RSS 피드 처리 및 DB 저장 테스트
- Velopers RSS 피드 처리 및 DB 저장 테스트
테스트 결과로 각 RSS 피드에서 저장된 포스트 수와 발생한 오류 수를 확인할 수 있습니다.
서버를 실행하면 매일 한국시간 08시(UTC 23시)에 자동으로 RSS 피드를 확인하고 DB에 저장합니다.
npm start
# 또는
node index.js- 매일 한국시간 08시(UTC 23시)에 자동 실행
- RSS 피드에서 설정된 기간 이내 발행된 글을 확인
- 기본값: 24시간(1일) 이내
VELOPERS_FILTER_DAYS환경 변수로 조절 가능 (예:VELOPERS_FILTER_DAYS=7로 설정 시 7일 이내 글 처리)
- 중복 체크 후 DB에 저장 (본문은
<div>태그로 감싸서 저장) - 기존 슬랙 포스팅 기능도 함께 동작