Initial commit
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
# Per-user runtime state
|
||||
octo_updater_config.json
|
||||
octo_updater_hash_cache.json
|
||||
*.tmp
|
||||
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
|
||||
# PyInstaller build output
|
||||
build/
|
||||
dist/
|
||||
*.spec
|
||||
|
||||
# Local editor / OS files
|
||||
.vscode/
|
||||
.idea/
|
||||
Thumbs.db
|
||||
.DS_Store
|
||||
@@ -0,0 +1,31 @@
|
||||
Octo Updater License
|
||||
|
||||
Copyright (c) 2026 rebasedkon
|
||||
Original project: https://github.com/rebasedkon/octo-updater
|
||||
|
||||
Support the author:
|
||||
- Ko-fi: https://ko-fi.com/rebased
|
||||
- Buy Me a Coffee: https://buymeacoffee.com/rebased
|
||||
|
||||
Contact:
|
||||
- Email: inskon@proton.me
|
||||
- Discord: https://discord.com/users/287467238573867018 (rebazed)
|
||||
|
||||
Permission is granted to use, copy, modify, merge, publish and distribute
|
||||
this software, including creating derivative works, provided that:
|
||||
|
||||
1. The original author's copyright notice must remain unchanged.
|
||||
2. The original author's name and contact information must remain unchanged.
|
||||
3. The original donation links must remain unchanged and visible.
|
||||
4. Forks and derivative projects must clearly indicate the original author.
|
||||
5. Removing, replacing, hiding or modifying attribution information is
|
||||
prohibited.
|
||||
|
||||
This software may be redistributed in modified or unmodified form.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 277 KiB |
@@ -0,0 +1,171 @@
|
||||
# Octo Updater
|
||||
|
||||
A standalone desktop updater and mod manager for the **OctoWoW** client.
|
||||
It updates and patches the game client, manages community **mods**, **addons**
|
||||
and **content patches**, applies client **tweaks**, and shows server **news**.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Features
|
||||
|
||||
### Game updates
|
||||
|
||||
- Game files are synced over **BitTorrent** using a bundled, checksum-verified
|
||||
`aria2c` — only missing or wrong-sized files are downloaded, transfers resume
|
||||
automatically, and an optional integrity pass re-checks every piece hash to
|
||||
catch same-size corruption.
|
||||
- Legacy locale folders and old client patch archives are pruned automatically
|
||||
after a sync.
|
||||
- Reads and displays the installed game client version straight from `WoW.exe`.
|
||||
|
||||
### Mods
|
||||
|
||||
Curated set of client modifications, installed from their official GitHub /
|
||||
Codeberg releases and registered in `dlls.txt`:
|
||||
|
||||
| Mod | Purpose |
|
||||
| ----------------------- | ----------------------------------------------------------------------------------- |
|
||||
| AuctionQueryThrottle | Removes the fixed 5-second wait between auction house searches |
|
||||
| ClassicAPI | Adds later-version Lua API calls to the client; required by some addons |
|
||||
| DXVK | Vulkan-based rendering for better performance |
|
||||
| Nampower | Reduces input lag on higher latency; expands the addon API |
|
||||
| No1600x1200 | Fixes incorrect resolution when the monitor's native res isn't detected (optional) |
|
||||
| SuperWoW | Backported client API features; required by some addons |
|
||||
| TransmogFix | Fixes transmog-related frame drops on character death |
|
||||
| UnitXP_SP3 | Frame limiter, improved targeting, anti-aliased combat text, and more |
|
||||
| VanillaFixes | Eliminates stutter and animation lag (also the DLL loader; required by other mods) |
|
||||
| VanillaHelpers | Raises the max supported texture resolution and improves memory allocation |
|
||||
| VanillaMultiMonitorFix | Fixes multi-monitor resolution issues (optional) |
|
||||
|
||||
- Essential mods auto-install on a fresh game folder, or on any game
|
||||
folder when **Install essential mods** is enabled in Settings.
|
||||
- Per-mod **update** / **retry** actions and an update-count badge on the tab.
|
||||
- When VanillaFixes is installed, **PLAY** launches through it instead of
|
||||
`WoW.exe` directly.
|
||||
|
||||
### Tweaks
|
||||
|
||||
Patches `WoW.exe` and writes `Config.wtf` for quality-of-life settings,
|
||||
grouped by category:
|
||||
|
||||
- **General** — in-game language (English, Deutsch, Русский, 中文, Español,
|
||||
Português), auto-loot, nameplate range.
|
||||
- **Camera** — field of view (with a recommended value per aspect ratio),
|
||||
camera zoom distance.
|
||||
- **Graphics** — world/terrain render distance, ground clutter distance.
|
||||
- **Sound** — allow sound to play while the game is in the background.
|
||||
|
||||
Invalid values are clamped; Apply/Reset appear only when something changed.
|
||||
|
||||
### Addons
|
||||
|
||||
- Installs addons directly from Git hosts (**GitHub, GitLab, Gitea, Codeberg**)
|
||||
by downloading the repo archive pinned to a commit SHA — no Git client needed.
|
||||
- Curated **recommended** list plus everything from the server catalog.
|
||||
- **Add custom git addon** dialog for any allowed host; a custom addon is
|
||||
never silently overridden by a same-named recommended one.
|
||||
- Update detection by comparing the installed commit against the latest,
|
||||
one-click **Update** / **Update all**, and an update-count badge.
|
||||
- pfUI gets a curated **"Default"** profile injected and added to its firstrun
|
||||
picker after each install/update.
|
||||
|
||||
### MPQ patches
|
||||
|
||||
Optional content patches distributed as `.mpq` files, separate from mods and
|
||||
addons — currently **Octo Raid Visuals**, which adds ground markers and
|
||||
sounds for boss abilities in raids. Each patch is downloaded over HTTPS and
|
||||
verified against a published checksum before it's placed in the client's
|
||||
`Data` folder; the tab flags available updates.
|
||||
|
||||
### News
|
||||
|
||||
Shows the latest **Announcements** post and the current **Patch Notes** list
|
||||
from the server's forum feed.
|
||||
|
||||
### Settings
|
||||
|
||||
Change the game folder, check download mirror status, verify game files,
|
||||
view session logs, and add the game folder to Defender exclusions. General
|
||||
options include clearing the client's WDB cache on every game launch,
|
||||
minimizing Octo Updater when the game launches, auto-installing essential
|
||||
mods and recommended addons, and keeping a custom `speech.mpq` untouched by
|
||||
verification/updates.
|
||||
|
||||
### Security & robustness
|
||||
|
||||
- Hardened TLS (system trust store, hostname check, TLS 1.2+ floor).
|
||||
- HTTPS-only with per-host allowlists for all downloads; redirects stay HTTPS.
|
||||
- `aria2c` itself is fetched once and SHA-256-verified before it's ever run.
|
||||
- Atomic config writes (temp + rename) with a lock — safe against concurrent
|
||||
workers and interrupted saves.
|
||||
- Path-traversal-safe archive extraction.
|
||||
- DPI-aware layout — the UI scales as a unit on high-DPI displays instead of
|
||||
fonts overflowing a fixed-pixel layout.
|
||||
- Automatic self-update check against this repo's GitHub releases (once a day).
|
||||
|
||||
---
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Windows**, or **Linux via Proton/Wine** — Octo Updater is a Windows build,
|
||||
but it runs on Linux under Proton/Wine.
|
||||
A couple of Windows-only conveniences (Defender exclusions, DPI-scale
|
||||
auto-detection) simply don't apply outside Windows.
|
||||
- **Python 3.10+** — only if running from source. Runs on the standard
|
||||
library, and will also use [`certifi`](https://pypi.org/project/certifi/) if
|
||||
installed, for more robust TLS verification on machines with an out-of-date
|
||||
root store (otherwise falls back to the system trust store).
|
||||
- The prebuilt `OctoUpdater.exe` needs nothing installed. `aria2c` is
|
||||
downloaded automatically the first time a game update runs.
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
### Prebuilt executable
|
||||
|
||||
Download `OctoUpdater.exe` from the [latest release](https://github.com/rebasedkon/octo-updater/releases/latest) and
|
||||
run it. Point the **Game folder** (Settings) at your OctoWoW game folder —
|
||||
or let the default create one next to the executable — then click **UPDATE**,
|
||||
and **PLAY** when it finishes.
|
||||
|
||||
### From source
|
||||
|
||||
```
|
||||
python octo_updater.py
|
||||
```
|
||||
|
||||
The updater keeps its data in a per-user app-data folder.
|
||||
|
||||
---
|
||||
|
||||
## Building
|
||||
|
||||
Compile a single-file Windows executable with [PyInstaller](https://pyinstaller.org/):
|
||||
|
||||
```
|
||||
pip install pyinstaller certifi
|
||||
pyinstaller --onefile --windowed --name OctoUpdater --icon OctoUpdater.ico octo_updater.py
|
||||
```
|
||||
|
||||
Installing `certifi` before building bundles an up-to-date CA certificate set
|
||||
into the executable, so TLS verification works even on machines whose Windows
|
||||
root store is stale. `aria2c` does not need to be bundled — the app fetches
|
||||
and verifies it itself on first run.
|
||||
|
||||
---
|
||||
|
||||
## Support the Developer
|
||||
|
||||
If Octo Updater is useful to you, consider supporting its development:
|
||||
|
||||
- [Ko-fi](https://ko-fi.com/rebased)
|
||||
- [Buy Me a Coffee](https://buymeacoffee.com/rebased)
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
See [LICENSE](https://github.com/rebasedkon/octo-updater/blob/main/LICENSE).
|
||||
+6563
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
Reference in New Issue
Block a user