Skip to content

Latest commit

Β 

History

History
125 lines (102 loc) Β· 3.65 KB

File metadata and controls

125 lines (102 loc) Β· 3.65 KB

κ΅­λ―ΌλŒ€ν•™κ΅ 곡지사항 μ•Œλ¦¬λ―Έ 봇

λ””μŠ€μ½”λ“œλ₯Ό 톡해 κ΅­λ―ΌλŒ€ν•™κ΅μ˜ 각 ν•™κ³Ό/λ‹¨κ³ΌλŒ€ν•™μ˜ 곡지사항을 μ‹€μ‹œκ°„μœΌλ‘œ μ „λ‹¬ν•˜λŠ” λ΄‡μž…λ‹ˆλ‹€.

κΈ°λŠ₯

  • μ‹€μ‹œκ°„ 곡지사항 μ•Œλ¦Ό
    • μ†Œν”„νŠΈμ›¨μ–΄ν•™λΆ€
      • λŒ€ν•™ 학사곡지
      • λŒ€ν•™ μž₯학곡지
      • μ†Œμœ΅λŒ€ 학사곡지 (RSS)
      • SWμ€‘μ‹¬λŒ€ν•™μ‚¬μ—…λ‹¨ 학사곡지
    • κ²½μ˜λŒ€ν•™
      • κ²½μ˜λŒ€ 학사곡지 (RSS)
    • κ±΄μΆ•λŒ€ν•™
      • κ±΄μΆ•λŒ€ 학사곡지
    • μ‚¬νšŒκ³Όν•™λŒ€ν•™
      • ν–‰μ •ν•™κ³Ό 학사곡지
    • μ°½μ˜κ³΅κ³ΌλŒ€ν•™
      • 기계곡학뢀 학사곡지
      • μ „μžκ³΅ν•™λΆ€ 학사곡지 (RSS)
    • μ‘°ν˜•λŒ€ν•™
      • κ³΅μ—…λ””μžμΈν•™κ³Ό 학사곡지
      • κΈˆμ†κ³΅μ˜ˆν•™κ³Ό 학사곡지
      • μ‹œκ°λ””μžμΈν•™κ³Ό 학사곡지
    • μžλ™μ°¨μœ΅ν•©λŒ€ν•™
      • μžλ™μ°¨μœ΅ν•©λŒ€ν•™ 학사곡지
    • 기타
      • LINC 3.0 사업단 학사곡지
  • λ””μŠ€μ½”λ“œ 채널 λ˜λŠ” DM으둜 μ•Œλ¦Ό μˆ˜μ‹ 
  • 곡지사항 μ’…λ₯˜λ³„ ꡬ독 관리
  • 개발 ν™˜κ²½λ³„ μ„€μ • (개발/운영)

μ„€μΉ˜ 방법

  1. ν•„μš”ν•œ νŒ¨ν‚€μ§€ μ„€μΉ˜
pip install -r requirements.txt
  1. ν™˜κ²½ μ„€μ • 파일 ꡬ성
  • 운영 ν™˜κ²½: .env (ν”„λ‘œμ νŠΈ 루트)
  • 개발 ν™˜κ²½: envs/.dev.env
# ν•„μˆ˜ ν™˜κ²½ λ³€μˆ˜
DISCORD_TOKEN=your_discord_bot_token
MONGODB_URI=your_mongodb_connection_string
DB_NAME=your_database_name
YOUTUBE_API_KEY=your_youtube_api_key

ν”„λ‘œμ νŠΈ ꡬ쑰

.
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ env_loader.py           # ν™˜κ²½ μ„€μ • λ‘œλ”
β”‚   β”œβ”€β”€ db_config.py             # λ°μ΄ν„°λ² μ΄μŠ€ μ„€μ •
β”‚   └── logger_config.py         # λ‘œκΉ… μ„€μ •
β”œβ”€β”€ discord_bot/
β”‚   β”œβ”€β”€ discord_bot.py          # λ””μŠ€μ½”λ“œ 봇 μ½”μ–΄
β”‚   β”œβ”€β”€ scraper_config.py       # 슀크래퍼 μ„€μ •
β”‚   └── commands/               # λ””μŠ€μ½”λ“œ λͺ…λ Ήμ–΄
β”‚       β”œβ”€β”€ register.py         # 곡지 등둝 λͺ…λ Ήμ–΄
β”‚       └── test.py             # ν…ŒμŠ€νŠΈ λͺ…λ Ήμ–΄
β”œβ”€β”€ template/
β”‚   └── notice_data.py          # 곡지사항 데이터 λͺ¨λΈ
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ scraper_type.py        # 슀크래퍼 νƒ€μž… μ •μ˜
β”‚   β”œβ”€β”€ scraper_factory.py     # 슀크래퍼 생성 νŒ©ν† λ¦¬
β”‚   β”œβ”€β”€ scraper_category.py    # 슀크래퍼 μΉ΄ν…Œκ³ λ¦¬ μ •μ˜
β”‚   β”œβ”€β”€ web_scraper.py         # μ›Ή 슀크래퍼 슈퍼 클래슀
β”‚   └── rss_notice_scraper.py  # RSS 슀크래퍼 클래슀
└── main.py                     # ν”„λ‘œκ·Έλž¨ μ§„μž…μ 

λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰

MongoDB μ»¬λ ‰μ…˜

  • μ»¬λ ‰μ…˜λͺ…: 각 슀크래퍼 νƒ€μž…μ˜ collection_name
  • λ¬Έμ„œ ꡬ쑰:
    • title: 곡지사항 제λͺ©
    • link: 곡지사항 링크
    • published: μž‘μ„±μΌ (ISO ν˜•μ‹)
    • scraper_type: 슀크래퍼 νƒ€μž… μ‹λ³„μž

개발 정보

ν™˜κ²½ ꡬ뢄

  • 운영(PROD): Ubuntu ν™˜κ²½
  • 개발(DEV): κ·Έ μ™Έ ν™˜κ²½

크둀링 주기

  • 운영 ν™˜κ²½: 10λΆ„
  • 개발 ν™˜κ²½: 2λΆ„

λ””μŠ€μ½”λ“œ λͺ…λ Ήμ–΄

  • /κ²Œμ‹œνŒ_선택: 곡지사항 μ•Œλ¦Ό 등둝
  • /κ²Œμ‹œνŒ_μ„ νƒμ·¨μ†Œ: 곡지사항 μ•Œλ¦Ό μ‚­μ œ
  • /μ„ νƒλœ_κ²Œμ‹œνŒ: ν˜„μž¬ λ“±λ‘λœ μ•Œλ¦Ό λͺ©λ‘ 확인
  • /testnotice: ν…ŒμŠ€νŠΈ 곡지사항 전솑 (개발 ν™˜κ²½ μ „μš©)
  • /test-list: λ“±λ‘λœ 채널/μœ μ € λͺ©λ‘ 확인 (개발 ν™˜κ²½ μ „μš©)

μ£Όμ˜μ‚¬ν•­

  • ν™˜κ²½ λ³€μˆ˜ 파일 λ³΄μ•ˆ 관리 (.env, .dev.env)
  • MongoDB μ—°κ²° 정보 λ³΄μ•ˆ
  • 크둀링 간격 쑰절 μ‹œ μ„œλ²„ λΆ€ν•˜ κ³ λ €
  • 봇 κΆŒν•œ 확인 (λ©”μ‹œμ§€ 전솑, μž„λ² λ“œ λ“±)
  • 운영 ν™˜κ²½κ³Ό 개발 ν™˜κ²½μ˜ μ„€μ • 차이 주의

λΌμ΄μ„ μŠ€

MIT License

κΈ°μ—¬ν•˜κΈ°

  1. Fork the Project
  2. Create your Feature Branch
  3. Commit your Changes
  4. Push to the Branch
  5. Open a Pull Request