metuclass
WHAT IT IS
metuclass is a small command-line tool for METU students. Log in once, run metuclass sync, and every file from every course you're enrolled in lands on your disk, organized by course and section, in folders that match the way ODTUClass already groups them.
Subsequent runs are incremental. metuclass keeps a local manifest (a tiny SQLite file) and only downloads what's new or updated. Files you've modified locally are protected as conflicts unless you pass --force.
WHY I BUILT IT
The native ODTUClass interface is fine for one course. By week six of a semester it stops being fine: you're clicking through six course pages, ten weeks of slides, and three handouts each just to keep up with what was uploaded. I wanted one command that gets me from git pull-style mental model to actually having all the files.
The design priority was not surprising you. Idempotent runs, dry-run support, conflict detection on locally modified files, and predictable destination paths so you can build downstream tooling on top: Obsidian indexing, full-text search, whatever.
HOW IT WORKS
Login once
metuclass login stores a session token locally. You only re-auth when your password changes. Username and password can also come from environment variables for automation.Incremental sync
Predictable layout
~/metuclass/<Course>/<Section>/<file> by default. Override per run with --sync-dir, per shell with METUCLASS_SYNC_DIR, or persistently via metuclass config.Conflict-aware
--force to overwrite, or --dry-run to preview without touching disk.QUICK START
# Install pip install metuclass # Log in with your METU credentials metuclass login # See what's enrolled metuclass courses # Pull everything metuclass sync # Or just one course, to a custom directory metuclass sync "CENG 334 Section 1" --sync-dir ~/Documents/courses