Skip to content

Latest commit

 

History

History
130 lines (90 loc) · 11.7 KB

README.md

File metadata and controls

130 lines (90 loc) · 11.7 KB

WAUZ

A tiny unzip tool for World of Warcraft addons

WAUZ

What it is

  • It's a very simple and tiny .NET 6 application named WAUZ (World of Warcraft Addons UnZip).
  • It's used to unzip a bunch of downloaded zip files, located in one folder, into another folder. In this case the zip files are addons for the popular World of Warcraft MMORPG game.
  • It's just a typical ".exe file" Windows application. Just download the newest release, unzip and run it. That's it. There is no installer, setup or something like that.
  • It's sole purpose is to extract zip files into a folder. Nothing else. It's just there to make your life a little bit easier.

How it works

  • Download a bunch of World of Warcraft addons (typically from https://www.curseforge.com) into some folder.
  • Start WAUZ
  • Select the folder which contains the addon zip files ("Source-Folder"). Typically some temporary download folder.
  • Select the folder to unzip the addons into ("Destination-Folder). Typically the World of Warcraft AddOns folder.
  • Press the "Unzip" button.

⚠️

Please also read this important notes below, to make sure you not accidentally loose data! Because all releases after 1.0.2 will clear all existing content inside the selected destination folder, by design. And that notes tell you why.

Why it exists

I developed a download manager for World of Warcraft addons, called WADM, over a decade ago. For many many years WADM handled all of your needs with ease, when it comes down to addon updating. But since Curse/Overwolf changed their political stance, alternative download managers (like mine, Ajour, WowUp, or others) no longer works with the https://www.curseforge.com site, or their REST web service. The only option is to use their own addon download manager. Many of us don't want that, for different reasons.

So, downloading the addons manually (which is not the time consuming bottleneck here) and unzipping them, with the help of a tool like WAUZ, is still not the worst alternative to a full featured download manager. For more information about "the end of all alternative addon download managers" follow the links on the GitHub site of my above mentioned WADM project, or use your GoogleFu.

An easy way to grab your addons

Some additional hint here (since this has nothing to do with the tool per se):

A fast and easy way to get all the actual addon zip files is to bookmark all the direct download sites, for every addon, in your browser. Especially for https://www.curseforge.com you can bookmark an addon's download site directly. The addon download immediately starts, after clicking the bookmark. This helps a lot to get all the latest addons very fast, without much effort.

Even better: Most browsers can group bookmarks into some form of "group" or "folder", which offers the possibility to open all bookmarks of the group, with a single click. The browser opens all the bookmarks in different tabs and the user can just click tab by tab and press the "save" button.

This way you quickly have all addon zip files in a single folder. The process of manually unzipping them is way more time consuming. But that's the moment when WAUZ comes to rescue. 😉

Requirements

  • 64-bit Windows

There are not any other special requirements. All the release-binaries are compiled with win-x64 as target platform, assuming you are using some 64-bit Windows (and that's quite likely).

You can choose between self-contained and framework-dependent .NET application builds, when downloading a release. If you want to run the framework-dependent version, you need (as additional requirement) the .NET 6 runtime installed on your machine. You can find more information about that topic on the Releases page.

Notes

  • WAUZ saves your selected folders automatically in a settings file when you close the app.
  • WAUZ loads your selected folders automatically from that settings file when you open the app.
  • WAUZ writes a log file if some error happens.
  • You can find both files (settings and log) in the "C:\Users\YOUR_USER_NAME\AppData\Local\MBODM" folder.
  • WAUZ uses a timeout of 30 seconds, while unzipping the files.
  • WAUZ unzips the files concurrently.
  • WAUZ will not touch any other files or folders in Destination-Folder, besides the ones coming from the zip files.
  • ⚠️ Be careful: Since release version 1.0.3 the previous statement is no longer true! ⚠️
  • WAUZ is written in C# and developed with .NET 6, in Visual Studio 2022.
  • WAUZ is using Windows.Forms as UI framework (yes, because "rapid development").
  • There will be also a command line version of WAUZ. Soon.
  • I never compiled WAUZ with other tools, like Rider or VS Code. I solely used Visual Studio 2022 Community.
  • If you want to compile by yourself, you can just use i.e. Visual Studio 2022 (any edition). You need nothing else.
  • The release-binaries are compiled with "win-x64" as target platform (self-contained and framework-dependent).
  • The release-binaries are compiled with "ReadyToRun compilation", checked in the Visual Studio Publish dialog.
  • The code is using the TAP pattern of .NET, including concurrency concepts like async/await and IProgress<>.
  • The code is using a typical CancellationToken timeout approach.
  • WAUZ is under MIT license. Feel free to use the source and do whatever you want. I assume no liability.
  • WAUZ just exists, because i am lazy and made my life a bit easier, by writing this tool (for me and some friends). 😁

Important notes when using release version 1.0.3 or higher

⚠️

The way WAUZ works and doing its job (under the hood) has completely changed since the 1.0.3 release version! Therefore i need to explain this a bit more in detail here.

The short version:

With the release of version 1.0.3 (and onwards) WAUZ now always clears the selected destination folder (removing all files and folders inside it), before the zip files are extracted into the destination folder. In 99% of all cases this should be no problem, because the destination folder should be just a "working folder" for binary stuff, solely used for the addon "applications".

This applies also and foremost to the "World of Warcraft AddOns" folder (which is typically used as destination folder in WAUZ). That folder should not contain any sensible data, like personal data, documents, config files, and so on. Even the addons themselfes store their config files in another location (another specific folder inside the World of Warcraft installation folder). The World of Warcraft developers structured their application exactly with that intension in mind.

In short: The destination folder should be used the same way as World of Warcraft itself use its "AddOns" folder -> A specific folder for the addon binaries itself and nothing else.

But: If you stored anything important in the selected destination folder, for whatever reason, make sure you create a backup before pressing the "Unzip" button! If you want to know more about "how it worked before and why this has changed", just continue reading.

The long (technical background) version:

Todo...

Have fun.


Personal ideas
  • This is a list of ideas, used as my personal todo list. Better centralized here, than somewhere else.
  • Add WAUZ command line version (easy, BusinessLogic already exists).
  • ✔️ Maybe add navigation links to UI, to quickly open the selected folders in Explorer?
  • ❌ !!! Decided against !!! --> Maybe add navigation links to UI, to quickly open the settings/log files or folder?
  • ❌ Decided against previous point since the log file not exists 99% of the time, since its just created on hard errors.
  • ❌ Decided against previous point since the settings shall not be prominent (in contrast to the WADM config file).
  • ✔️ !!! Added in 1.0.3, removed in 1.0.4 !!! Maybe implement some temp folder cleanup check, before unzipping?
  • ✔️ !!! Added in 1.0.3, removed in 1.0.4 !!! To cleanup any old temp folders if app was closed too early in previous session.
  • Add more log infos (logfile size?) to better reproduce what happened? Not meant as "log everything".
  • But maybe add additional infos when logging an exception (like the selected folders, etc).
  • ✔️ !!! Useless since 1.0.3 !!! --> Maybe implement checkbox option to remove all content of Destination-Folder before unzip?
  • ✔️ !!! Useless since 1.0.3 !!! --> Do users really want/need that? (Maybe the above "Open in Explorer" option is enough here)
  • ✔️ Missing or wrong selected folders lead to "Error occurred" UI status. Keep this behaviour? Descission: No.
  • Maybe add a ListView with CheckBoxes to select zip files, before unzipping?
  • ✔️ Change TextBox placeholder text.