1.5 KiB
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.