Repository navigation
study-helper v26.7.0
study-helper v26.7.0
숭실대학교 LMS 강의 영상 재생 · 다운로드 · AI 요약 도구.
패치노트
변경
CourseScraper페이지 접근 캡슐화 (src/scraper/course_scraper.py,src/main.py,src/ui/auto.py)main.py·ui/auto.py에서 프라이빗 속성scraper._page를 5곳에서 직접 참조하던 것을page프로퍼티 추가로 정리
crypto.py키 경로 판별 로직 중복 제거 (src/crypto.py)_load_or_create_key()가_resolve_key_path()와 동일한 "디렉토리면 내부 key 파일 사용" 로직을 인라인으로 중복 구현하던 것을_resolve_key_path()재사용으로 통합decrypt()의except (InvalidToken, Exception):을except Exception:으로 정리 —InvalidToken은 이미Exception의 서브클래스라 의미 없는 중복이었음, 미사용InvalidTokenimport 제거
수정
- 다운로드 경로의
주차없는 강의 기본 디렉토리 오류 수정 (src/downloader/video_downloader.py)- 원인:
make_filepath()의_sanitize_filename(week_label or "") or "기타"에서_sanitize_filename()이 빈 입력에도 항상"lecture"를 반환해"기타"폴백 분기가 도달 불가능한 죽은 코드였음 week_label이 비어 있을 때만"기타"를 사용하도록 조건을 명시적으로 분리
- 원인:
추가
- 순수 함수 단위 테스트 추가 (
tests/test_video_downloader.py,tests/test_background_player.py)_sanitize_filename/make_filepath(경로 sanitize, 상위 디렉토리 순회 방지, 주차 추출, 빈 라벨 폴백) 및_parse_player_url(duration sentinel 정규화, TargetUrl 디코딩) 커버
사전 요구사항
설치 및 실행
-
아래 첨부 파일(
docker-compose.yml,.env.example) 다운로드 -
.env.example→.env로 이름 변경 후 필요한 값 설정 (학번/비밀번호는 첫 실행 시 자동 저장) -
이미지 pull 및 실행
docker compose pull
docker compose run --rm study-helper
docker compose up사용 금지 — 로그 멀티플렉싱으로 TUI가 깨집니다.run --rm만 사용하세요.
Docker Hub
docker pull igor0670/study-helper:v26.7.0