Files
2026-09-19 12:34:33 -04:00

1.5 KiB

Architecture

The updater is split by responsibility rather than by framework or class hierarchy.

  • octo_updater.py — executable entry point only.
  • ui.py — Tk presentation and user interaction.
  • config.py — application paths and atomic configuration persistence.
  • net.py — HTTPS validation and secure URL opening.
  • torrent.py — torrent parsing, selection, verification, aria2 synchronization, and update workers.
  • client.py — WoW client inspection, locale/config patching, tweaks, and client-specific transformations.
  • mods.py — mod and addon catalogs, release lookup, installation, and removal.
  • platform_ops.py — operating-system operations such as directory links, folder opening, DPI, Defender, process launching, and display APIs.
  • app_log.py — the small thread-safe application log channel shared by workers and the UI.

Dependency rules

ui.py may depend on the domain modules. Domain modules must not import ui.py.

platform_ops.py contains OS-specific process/API behavior and must not depend on Tk.

net.py contains generic network policy and must not contain WoW, torrent, mod, or UI policy.

client.py, torrent.py, and mods.py expose ordinary functions/data and do not require the Tk application to be running.

No platform class hierarchy, factories, dependency-injection container, repository layer, or plugin framework is used. New abstractions should only be introduced when a concrete requirement requires them.