Skip to content

v3.0.0

Choose a tag to compare

@SpaceSquare640 SpaceSquare640 released this 17 Jun 00:57

Added

  • Web app (web_app.py) — Flask-based browser interface. Run locally or
    deploy to any WSGI host. Includes JSON API, per-job progress polling, and a
    shared dark theme matching the desktop GUI.
  • Tri-language UI — English (default), Traditional Chinese, Simplified
    Chinese. Switch at runtime; both interfaces share i18n.py.
  • Shared engine (core.py) — extracted yt-dlp + ffmpeg logic into a
    UI-agnostic Downloader / Converter pair so the desktop GUI and web app
    reuse the exact same code path.

Changed

  • English-first interface — all UI text, log lines, and dialog messages
    now default to English; the previous bilingual labels are replaced by a
    language switcher.
  • Cleaner architecture — desktop GUI shrunk by factoring the engine out,
    leaving the file focused on layout + tkinter glue.
  • Format string handling — log messages use keyed templates resolved
    through Translator.t(key, **fmt) so adding languages no longer requires
    editing core logic.

Improved

  • Cooperative stop now reliably interrupts both downloads and conversions via
    Downloader.stop() / Converter.stop() on the shared engine.
  • Progress callbacks now report percent, speed, and ETA as a typed tuple
    instead of stringly-typed config calls.
  • format_filesize() extended to GB and keeps the 1 MiB boundary fix.
  • Conversion status cells in the desktop tree now re-translate when the
    language is switched mid-session.