Newer
Older
thu-learn-downloader-optimized / README.md

THU Web Learning Downloader

Download everything from Web Learning of Tsinghua University

GitHub Workflow Status (with event)
PyPI - Python Version
PyPI - Version

Demo

Demo

The resulting file structure looks like:

thu-learn
└── Quantum Mechanics(1)
   ├── docs
   │  └── 电子教案
   │     ├── 01-0量子力学介绍1.pdf
   │     └── 04-0量子力学介绍2.pdf
   └── work
      └── 01-第一周作业
         ├── attach-第一周作业.pdf
         ├── submit-第一周作业.pdf
         └── README.md

Usage

Usage:

$ tld [OPTIONS]

Options:

  • -u, --username TEXT
  • -p, --password TEXT
  • --prefix DIRECTORY: [default: $HOME/thu-learn]
  • -s, --semester TEXT: [default: 2023-2024-1]
  • -c, --course TEXT
  • --document / --no-document: [default: document]
  • --homework / --no-homework: [default: homework]
  • -j, --jobs INTEGER: [default: 8]
  • -l, --language [en|zh]: [default: en]
  • --log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]: [env var: LOG_LEVEL; default: INFO]
  • --help: Show this message and exit.

Features

  • fast concurrent download
  • pretty TUI powered by rich
  • auto set mtime of downloaded files according to timestamp of remote file
  • auto skip download when local file is newer
  • dump homework details into README.md in each homework folder
  • pretty markdown files powered by prettier (require prettier installed)

Installation

  • download pre-built binary form GitHub Releases
  • pip install thu-learn-downloader
  • pipx install thu-learn-downloader

test run command

python.exe -m thu_learn_downloader.main

exe packing

  • run in project root:
  • please install playwright directly in venv using:
    $env:PLAYWRIGHT_BROWSERS_PATH="0"
    playwright install chromium
    (please refer to:https://playwright.dev/python/docs/library#pyinstaller)
    then:
    .\.venv\Scripts\pyinstaller.exe --onefile --clean --add-data "thu_learn_downloader/openssl.conf;thu_learn_downloader" .\thu_learn_downloader\main.py --runtime-hook .\thu_learn_downloader\hook.py
    .\thu-learn-downloader-windows-x86_64.exe -u [USERNAME] -p [PASSWORD] -s [SEMESTER]
    NOTICE THAT PASSWORD WILL NOT BE REDACTED!!!

then complete 2FA in prompted browser panel.
The download of selected semester will automatically start, or will quit if no valid semester is appointed.