Skip to content

Latest commit

 

History

History
84 lines (70 loc) · 3.12 KB

readme.md

File metadata and controls

84 lines (70 loc) · 3.12 KB

wow addon update script

A script to update all my addons with a single command.

what it does

As of now, the script

  • checks for updates, downloads and extracts files synchronously
  • updates addons for either classic, retail or both at the same time
  • reads and writes a configuration file
  • saves downloaded files to a cache folder
  • scrapes relevant information from Curseforge using bs4 (because I'm an idiot and thats all I could come up with)
  • bypasses cloudflare ddos protection (IUAM) pages
  • determines available upgrades based on upload time of the latest file on Curseforge

what you need

requirements

This requires at least python 3.6 (because f-strings) to run and depends on the packages bs4, cloudscraper (build on requests), colorama and tqdm. So either install these via your package manager or do a quick

$ pip3 install --user bs4 cloudscraper colorama tqdm

configuration file

The configuration file must be in the same directory and have the same name as the script file (currentlyupdate_wow_addons.config). It follows the structure of INI-files and contains three sections. The path to your game installation folder and the WoW version you want to update addons for should go under[settings]. Names of addons you want to keep up-to-date go into their respective section,[classic]or[retail].

client version

Possible values for the client setting are classic and retail. To track addons of both versions you can simply enter both, separated by a comma. You can also literally just set it to both (or all) and the program will update retail and classic addons simultaneously.

addon names

The name of an addon is currently the project name from its Curseforge URL. If you want an addon to be tracked and updated, you have to look it up on Curseforge and copy the last part of the project url.

For example, let's say the addon you want to track is called "T.H.I.S. Addon" then the project url is probably going to be something like .../wow/addons/this-addon. Copy this-addon and paste it into the configuration file.

example configuration

update_wow_addons.config

[settings]
client=both
game directory=D:/games/World of Warcraft

[retail]
details
big-wigs
prat-3-0
weakauras-2

[classic]
details
classiccastbars
classicthreatmeter
real-mob-health

execution

Call the script like

$ python3 update_wow_addons.py

and it should just work™.

to do

  • make code cleaner and more sophisticated i guess?
  • automatically determine installed addons
  • test if this even works on other machines
  • maybe make it a full fledged cli application?
  • read and write configuration file(s) instead of hardcoding stuff into the script
  • add option to always check updates for both game versions