Skip to content

Botanist1866/wowthing-auto-uploader

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wowThingSync

wowThingSync is a lightweight, high-performance Rust tool designed to automatically sync your World of Warcraft addon data with wowthing.org. It watches for changes to your WoW collector files and uploads them in real-time, ensuring your characters are always up-to-date.

Features

  • Automated Sync: Watches your WoW WTF folder for changes to WoWthing_Collector.lua and uploads them instantly.
  • Initial Scan: Automatically scans and uploads data on startup.
  • Gzip Compression: Compresses payloads before uploading to reduce bandwidth usage.
  • Cross-Platform: Built with Rust, runs on Windows, Linux, and macOS.
  • Low Overhead: Extremely memory and CPU efficient, runs silently in the background.

Installation

Prerequisites

Building from Source

git clone https://github.com/yourusername/wowThingSync.git
cd wowThingSync
cargo build --release

The executable will be available at target/release/wowThingSync.

Usage

You can run wowThingSync with command-line arguments or using a configuration file.

Command Line Arguments

./wowThingSync --api-key YOUR_API_KEY --wow-folder "/path/to/World of Warcraft"
  • -a, --api-key: Your wowthing.org API key.
  • -w, --wow-folder: Path to your World of Warcraft installation folder.
  • -c, --config: (Optional) Path to a custom config.json file.
  • -v, --verbose: Enable verbose logging for debugging.

Configuration File

By default, wowThingSync looks for a configuration file at:

  • Linux/macOS: ~/.config/WowthingAutoUploader/config.json
  • Windows: %USERPROFILE%\.config\WowthingAutoUploader\config.json

You can use the provided config.example.json as a template:

{
  "ApiKey": "YOUR_API_KEY_HERE",
  "WowFolder": "C:\\Program Files (x86)\\World of Warcraft"
}

How It Works

  1. Startup: The tool performs an initial scan of your WTF folder for any existing WoWthing_Collector.lua files and uploads them.
  2. Watching: It uses the notify crate to watch for file system events (specifically modify and create) in your WoW directory.
  3. Trigger: When a change to WoWthing_Collector.lua is detected (typically when you log out or reload your UI in WoW), a sync is triggered.
  4. Compression & Upload: The tool waits for 2 seconds (to ensure the file is fully written), reads the Lua file, wraps it in a JSON payload, compresses it using Gzip, and POSTs it to the wowthing.org API.

Logging

wowThingSync uses env_logger. You can control the log level via the RUST_LOG environment variable:

RUST_LOG=debug ./wowThingSync

License

This project is licensed under the MIT License - see the LICENSE file for details (if applicable).

About

WoWthing Auto Uploader

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%