Skip to content

MIMICLab/METT517-Timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Presentation Timer

교수님 앞에서 발표할 자료를 랜덤으로 선정하고, 발표 시간을 재며, 시간이 끝나면 자동으로 파일을 닫아 주는 데스크톱 도구입니다. ZIP으로 묶인 발표 자료를 업로드하면 파일을 정리하고 순서 없이 뽑아 보여 줍니다.

주요 기능

  • ZIP 압축을 안전하게 해제 후 임시 폴더에서 작업합니다.
  • 한글(CP949) 파일명을 포함한 윈도우 ZIP도 정상적으로 디코딩합니다.
  • 이름 끝의 -0, _1 등 숫자만 다른 파일은 중복으로 간주하고 우선순위( PDF > PPTX > PPT > KEY > DOCX > DOC )에 따라 하나만 남깁니다.
  • "Select Next File" 버튼을 누를 때마다 비복원 추출로 무작위 파일을 선택하고 시스템 기본 앱으로 엽니다.
  • 선택된 파일 수를 Selected X / Y 형태로 보여 줍니다.
  • 타이머(기본 3분)를 시작하면 버튼을 잠시 비활성화하고, 시간이 끝나면 알림음을 재생한 뒤 열어 둔 파일을 닫습니다.
  • macOS는 Quick Look/open, Windows는 PowerShell Start-Process, Linux는 xdg-open으로 파일을 여는 기본 동작을 사용합니다.

실행 방법

  1. Python 3.9 이상이 설치되어 있는지 확인합니다.
  2. 필요하다면 가상환경을 만들고 활성화합니다.
  3. 의존 패키지가 없다면 바로 실행할 수 있습니다.
    python app.py
  4. 앱 실행 후
    • Upload ZIP 버튼으로 자료 ZIP을 선택합니다.
    • Select Next File 버튼으로 무작위 자료를 엽니다.
    • 타이머 길이를 분 단위로 조정하고 Start Timer를 누릅니다.
    • 타이머 종료 시 알림음과 함께 파일이 닫힙니다.

배포 (PyInstaller)

Standalone 실행 파일을 만들 때는 PyInstaller를 사용합니다.

python -m pip install pyinstaller
pyinstaller --onefile --windowed app.py

macOS에서는 dist/app, Windows에서는 dist/app.exe가 생성됩니다.

GitHub Actions 빌드

.github/workflows/build.yml 워크플로는 push/PR 시에 macOS, Windows 환경에서 PyInstaller로 실행 파일을 빌드하고, 결과물을 아티팩트로 업로드합니다. 저장소의 Actions 탭에서 각 플랫폼의 빌드 산출물을 받을 수 있습니다.

한글 HWP 파일에 대해

Windows에서 한글(HWP) 뷰어나 오피스가 설치되어 있다면 자동으로 연동되어 열립니다. macOS에는 기본 HWP 뷰어가 없으므로 별도 프로그램이 설치되어 있지 않다면 열리지 않습니다.

기타 참고 사항

  • 애플 기본 알림음(Glass.aiff), Windows MessageBeep, Linux의 freedesktop/ALSA 기본 사운드를 순차적으로 시도합니다.
  • 실행 중 생성된 임시 폴더는 앱 종료 시 정리됩니다.
  • 다른 OS나 추가 확장자를 지원하려면 EXTENSION_PRIORITY_open_on_* 함수를 수정하면 됩니다.

About

Simple timer for class

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages