Update your World of Warcraft AddOns hosted on GitHub

Overview

AddOns Update Tool

Tool to update World of Warcraft AddOns hosted on GitHub

Features

  • Pure Python: only Dulwich and Colorlog
  • Multithreaded tasks
  • Manual and automatic modes
  • Able to start the game after an updates
  • Automatic backup of updatable AddOns (up to the last 5)
  • Automatic detection of AddOn directories (aka modules)


Usage

Before running this script for the first time, I STRONGLY RECOMMEND making a backup of your Interface folder: something bad is unlikely to happen, but just in case

Configuration file

Before using this script, you need to configure the list of repositories (AddOns) for updating. Just see how this is done in the config_example.json file. In general terms, it is a simple JSON file, where you need to specify the repository URL and the branch you want to clone (usually it will be master or main):

{
	"URL1" : "master",
	"URL2" : "master"
}

Note that curly brackets, quotation marks, colons, and commas are mandatory characters in JSON structure

Help page

When you run the script from the release version or the source code with the -h parameter, the help page will be displayed:

optional arguments
Argument Abbrev Description Example
--help -h show help message and exit -h
--start -s start Wow.exe after update -s
--verbose verbose debug output --verbose
required arguments
Argument Abbrev Description Example
--vault -v new or existing Vault name -v github
--wow -w path to Wow.exe -w "G:\World of Warcraft 3.3.5a HD\Wow.exe"
--config -c path to json config file -c ".\config_335a.json"

Launching from RELEASE version

  1. Download latest release
  2. Unpack to any folder
  3. Copy and edit config.json as you need (see Configuration paragraph)
  4. Run app with the -h parameter via cmd or powershell to read the help
  5. As an example, use one of the following commands:
    .\app.exe -v github -w ..\wow\Wow.exe -c .\config.json -s --verbose
    .\AddOnsUpdateTool.exe -v github -w ..\wow\Wow.exe -c .\config.json -s --verbose
    or the next one if you put AddOnsUpdateTool.exe and config.json in the game folder:
    .\AddOnsUpdateTool.exe -v github -w -c -s --verbose
    or even just start AddOnsUpdateTool.exe inside game folder
  6. If you want, you can create a shortcut to start with the necessary arguments and place it on the desktop or start menu

Launching from SOURCE code

Running the script from source code will require some knowledge of both Git and Cmd/Powershell

Requirements

  • Install Python 3.8 (recommended)
  • Install Pipenv package via pip install -U pipenv

Prepare

  • Clone this repository
  • Run pipenv install inside repository directory
  • If successful, you can use pipenv shell to open Pipenv Venv Shell inside

Launch

  • Use python .\app.py -h inside Pipenv Venv Shell to see the help page

Dev dependencies

If you want to change something in the code, I strongly recommend that you set the PEP-8 code formatter black and pyinstaller via pipenv install --dev command. Dont forget to re-format code after changes to keep it within the PEP-8.

Creating an EXE

To package a set of scripts into a standalone distributable directory, or a single EXE file, use the pyinstaller module:

  • pipenv run pyinstaller --onefile .\app.py -- for single EXE file (smaller size, but slower runtime due to the temp cache)
  • pipenv run pyinstaller .\AddonsUpdateTool_dir.spec -- for standalone directory (larger whole folder size, but fast runtime)

Additional information

In addition to app.py I also provide scripts to manually update the Vault DB and the Game DB: vault_updater.py and game_updater.py. You can also use the -h argument to view the help page

You might also like...
A self-hosted Discord music bot.
A self-hosted Discord music bot.

Cassette A self-hosted Discord music bot. Requirements py-cord pynacl pytube Setup Intended to be hosted on Heroku. Fork or clone this repo. Create a

Multipurpose Discord bot hosted on replit.com

RockyBot Multipurpose Discord bot hosted on https://replit.com/ Installing Dependencies Install poetry through pip: pip install poetry Then simply exe

A Twitter bot written in Python using Tweepy and hosted on a server.
A Twitter bot written in Python using Tweepy and hosted on a server.

A Twitter bot written in Python using Tweepy. It can like and/or retweet tweets that contain single or multiple keywords and hashtags.

A Twitter bot developed in Python using the Tweepy library and hosted in AWS.

Twitter Cameroon: @atangana_aron A Twitter bot developed in Python using the Tweepy library and hosted in AWS. https://twitter.com/atangana_aron Cost

Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine.
Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine.

Explorer Explorer is a Autonomous (self-hosted) Bittorrent Network Search Engine. About The Project Screenshots Supported features Number Feature 1 DH

A GitHub Action that automatically reports your Advent of Code progress in a table in your README

Advent README Stars This action adds and maintains a stars report in your README based on your Advent of Code progress. Example Table 2021 Results Day

Retrieve information from DBLP and update BibTex files automatically

Rebib TLDR: This script retrieves information from DBLP to update your BibTex files. python rebib.py --bibfile xxx.bib It first parses the bib entries

A Python script to update Spotify Playlist data every 5 minutes.

Spotify Playlist Updater A Python script to update Spotify Playlist data every 5 minutes. Description An automatic playlist updater using Spotify API

This Lambda will Pull propagated routes from TGW and update VPC route table

AWS-Transitgateway-Route-Propagation This Lambda will Pull propagated routes from TGW and update VPC route table. Tested on python 3.8 Lambda AWS INST

Comments
  • Compiled script hangs

    Compiled script hangs

    I have the compiled version, when I run it it just hangs here, any ideas?

     DEBUG    | Vault name is not specified, will be used default name: github
      DEBUG    | Path to Wow.exe is not specified, will be used from the current directory
      DEBUG    | Path to config file is not specified, will be used from the current directory
      INFO     | Vault loaded: github
      INFO     | Repositories in Vault cache: 7
      DEBUG    | Updated: Barsoomx/[email protected]
      DEBUG    | Updated: ElvUI-WotLK/[email protected]
      DEBUG    | Updated: ElvUI-WotLK/[email protected]
      DEBUG    | Updated: Bunny67/[email protected]
      DEBUG    | Updated: ElvUI-WotLK/El[email protected]
      DEBUG    | Updated: Bunny67/[email protected]
    
    # -------------------------------------------------
    # Repository Example
    # -------------------------------------------------
    # simple usage:
    # https://github.com/user/repository : branch
    #
    # -------------------------------------------------
    # KADER ADDONS
    # -------------------------------------------------
    # https://github.com/bkader/ButtonFacade : main
    # https://github.com/bkader/Dominos : main
    # https://github.com/bkader/GarbageProtector : main
    # https://github.com/bkader/HalionHelper-WoTLK : main
    # https://github.com/bkader/KPack : main
    # https://github.com/bkader/KRU-WoTLK : main
    # https://github.com/bkader/KuiNameplates-WoTLK : main
    # https://github.com/bkader/NameplateSCT_WoTLK : main
    # https://github.com/bkader/PlateBuffs_WoTLK : main
    # https://github.com/bkader/SharedMedia : main
    # https://github.com/bkader/Skada-WoTLK : main
    # https://github.com/bkader/Talented_WoTLK : main
    # https://github.com/bkader/TellMeWhen_3.3.5 : main
    # https://github.com/bkader/TidyPlates_WoTLK : main
    # -------------------------------------------------
    # ELVUI
    # -------------------------------------------------
    https://github.com/ElvUI-WotLK/ElvUI : master
    https://github.com/ElvUI-WotLK/ElvUI_Enhanced : master
    https://github.com/ElvUI-WotLK/ElvUI_AddOnSkins : master
    # https://github.com/ElvUI-WotLK/ElvUI_SwingBar : master
    # https://github.com/ElvUI-WotLK/ElvUI_DTBars2 : master
    # https://github.com/ElvUI-WotLK/ElvUI_ExtraActionBars : master
    # https://github.com/ElvUI-WotLK/ElvUI_VisualProcs : master
    # https://github.com/ElvUI-WotLK/ElvUI_CustomTweaks : master
    # https://github.com/ElvUI-WotLK/ElvUI_EnhancedFriendsList : master
    # https://github.com/ElvUI-WotLK/ElvUI_CustomTags : master
    # -------------------------------------------------
    # BUNNY67 ADDONS: WeakAuras & Details
    # -------------------------------------------------
    https://github.com/Bunny67/WeakAuras-WotLK : master
    https://github.com/Bunny67/Details-WotLK : master
    # -------------------------------------------------
    # BARSOOM ADDONS
    # -------------------------------------------------
    # https://github.com/Barsoomx/DBM-wowcircle : master
    # https://github.com/Barsoomx/xCT_Plus_wotlk : master
    https://github.com/Barsoomx/GearScoreLite : master
    # -------------------------------------------------
    # ZIDRAS ADDONS
    # -------------------------------------------------
    # https://github.com/Zidras/ElvUI_ImprovedSpecSwitch : master
    # https://github.com/Zidras/ElvUI_ProjectZidras : main
    https://github.com/Zidras/DBM-Warmane : main
    # https://github.com/Zidras/Transcriptor-WOTLK : main
    # -------------------------------------------------
    # AJSEWARD ADDONS
    # -------------------------------------------------
    # https://github.com/ajseward/RaidAssist_WotLK/ : master
    # https://github.com/ajseward/RcLootCouncil-Wotlk : master
    # -------------------------------------------------
    # COMMUNITY
    # -------------------------------------------------
    # https://github.com/alchem1ster/WotLK-Auctionator : main
    
    bug good first issue 
    opened by oli356 2
  • Lots of 'something went wrong...remote refs' errors

    Lots of 'something went wrong...remote refs' errors

    Lots of errors appearing with certain addons.

    Environment:

    • Windows 10
    • AddOnsUpdateTool version 1.3.0

    To Reproduce Steps to reproduce the behavior: Press exe

    Screenshots or Powershell/CMD log DEBUG | Path to config file is not specified, will be used from the current directory INFO | Vault loaded: github INFO | Repositories in Vault cache: 19 ERROR | Something went wrong while checking bkader/HalionHelper-WoTLK remote refs ERROR | Something went wrong while checking bkader/GarbageProtector remote refs ERROR | Something went wrong while checking ElvUI-WotLK/ElvUI_DTBars2 remote refs ERROR | Something went wrong while checking ElvUI-WotLK/ElvUI_SwingBar remote refs ERROR | Something went wrong while checking bkader/ButtonFacade remote refs ERROR | Something went wrong while checking ElvUI-WotLK/ElvUI remote refs ERROR | Something went wrong while checking ElvUI-WotLK/ElvUI_EnhancedFriendsList remote refs ERROR | Something went wrong while checking bkader/FixGroups-WoTLK remote refs ERROR | Something went wrong while checking ElvUI-WotLK/ElvUI_VisualProcs remote refs ERROR | Something went wrong while checking Bunny67/Details-WotLK remote refs ERROR | Something went wrong while checking bkader/Dominos remote refs ERROR | Something went wrong while checking ElvUI-WotLK/ElvUI_CustomTags remote refs ERROR | Something went wrong while checking bkader/Masque-WoTLK remote refs ERROR | Something went wrong while checking bkader/PlateBuffs_WoTLK remote refs ERROR | Something went wrong while checking bkader/SharedMedia remote refs ERROR | Something went wrong while checking Bunny67/WeakAuras-WotLK remote refs ERROR | Something went wrong while checking bkader/TidyPlates_WoTLK remote refs ERROR | Something went wrong while checking Zidras/DBM-Warmane remote refs ERROR | Something went wrong while checking Zidras/ElvUI_ProjectZidras remote refs ERROR | Something went wrong while checking RomanSpector/LossOfControl remote refs ERROR | Something went wrong while checking RomanSpector/CompactRaidFrame remote refs ERROR | Something went wrong while checking RomanSpector/UnitFrameLayers remote refs ERROR | Something went wrong while checking Zidras/ElvUI_ImprovedSpecSwitch remote refs DEBUG | Updated: ElvUI-WotLK/[email protected] DEBUG | Updated: bkader/[email protected] DEBUG | Downloaded: ElvUI-WotLK/[email protected] DEBUG | Updated: bkader/[email protected] DEBUG | Updated: bkader/[email protected] DEBUG | Downloaded: ElvUI-WotLK/[email protected] DEBUG | Downloaded: ElvUI-WotLK/[email protected] INFO | Vault updated: github INFO | Repositories in Vault: 22 INFO | Game folder initialized INFO | ElvUI_AddOnSkins will be installed INFO | ElvUI_Enhanced will be installed DEBUG | ElvUI_AddOnSkins backup has been saved DEBUG | ElvUI_Enhanced backup has been saved INFO | All updatable AddOns has beed saved DEBUG | [email protected] has been installed DEBUG | [email protected] has been installed INFO | All AddOns up to date WARNING | Bye-bye! Will close in 5 seconds

    opened by jonomurphy 1
Releases(v1.3.4)
Owner
Mr. Alchemist
Mr. Alchemist
:evergreen_tree: Python module for communicating with the Taiga API

python-taiga A python wrapper for the Taiga REST API. Documentation: https://python-taiga.readthedocs.io/ Usage: : https://python-taiga.readthedocs.io

Nephila 87 Oct 12, 2022
Trust-minimized Bitcoin wallet

coldcore Trust-minimized, airgapped Bitcoin management This is experimental software. Wait for a formal release before use with real funds. A trust-mi

James O'Beirne 121 Jan 01, 2023
Client to allow skytrack to be used with GSPro Golf simulator application

Skytrack Interface for GSPro A Basic Interface connection from Skytrack Launch Monitors to be able to play simulator golf via GSPro About The Project

James Peruggia 2 Oct 24, 2021
WallAlley.bot is an open source and free to use financial discord bot originaly build for WallAlley server's community

WallAlley.bot About WallAlley.bot is an open source and free to use financial discord bot originaly build for WallAlley server's community. All data a

Mohammad KHADDAN 1 Jan 22, 2022
🧑‍💼 Python wrapper for the Seek API

seek-com-au-api 🧑‍💼 Python wrapper for the seek.com.au API (unofficial) Installation Using Python = 3.6: pip install -e git+https://github.com/tomq

Tom Quirk 1 Oct 24, 2021
You have 3 files: create mass groups, add mass members, rename all groups (only educational use!)

EDUCATIONAL ONLY! HOW TO INSTALL Edit config.json with your discord account token and the imagepath (if its in the same location as the all_together.p

46 Dec 27, 2022
A template that everyone can use for the start of their discord bot

Python Discord Bot Template This repository is a template that everyone can use for the start of their discord bot. When I first started creating my d

2 Nov 01, 2021
A Telegram Bot to generate permanent Stream and Download links for any Telegram file

Telegram File To Stream Link This bot will give you permanent Stream and Download links for Telegram files Deploy the Bot Press the below button to de

Shadow 80 Dec 16, 2022
Simple Webhook Spammer with Optional Proxy Support

😎 �Simple Webhook Spammer with Optional Proxy Support:- [+] git clone https://g

Terminal1337 12 Sep 29, 2022
Telegram tools

Telegram-Tools Telegram tools. Explanation English | 中文 Features Export group memebrs Add users to the group Send message to users Setup API Open http

4 Apr 02, 2022
You can submit any PR and have SWAGS. Happy Hacktoberfest !

Excluded project Repository 🔴 🔴 🔴 - PR limit is reached. Please use another Repository Hacktoberfest 2021 🎉 🗣 Hacktoberfest encourages participat

Hansajith 63 Oct 21, 2022
EzilaX Music ❤ is the best and only Telegram VC player with playlists, Multi Playback, Channel play and more POWERD By SDBOTs

EzilaX-Music 🎵 A bot that can play music on Telegram Group and Channel Voice Chats Available on telegram as @EzilaXMBot Features 🔥 Thumbnail Support

Sadew Jayasekara 9 Oct 24, 2021
A Python library for rendering ASS subtitle file format using libass.

ass_renderer A Python library for rendering ASS subtitle file format using libass. Installation pip install --user ass-renderer Contributing # Clone

1 Nov 02, 2022
API which uses discord+mojang api to scrape NameMC searches/droptime/dropping status of minecraft names, and texture links

API which uses discord+mojang api to scrape NameMC searches/droptime/dropping status of minecraft names, and texture links

2 Dec 22, 2021
A Telegram bot that add a dynamic caption to musics

Music Channel Manager A Telegram bot that add a dynamic caption to musics Deploy to Heroku What is it ? It manage your music channel. With just adding

13 Oct 18, 2022
Instagram-follower-bot - An Instagram follower bot written in Python

Instagram Follower Bot An Instagram follower bot written in Python. The bot follows the follower of which account you want. e.g. (You want to follow @

Aytaç Kaşoğlu 1 Dec 31, 2021
Yet another random discord bot.

YARDB (r!) Yet another fully functional and random discord bot. I might add more features if I'm bored also don't criticize on my code. Commands: 4 Di

kayle 1 Oct 21, 2021
A Discord Bot for the Pygame Community Server

PygameCommunityBot The Pygame Community Discord bot The bot is capable of doing a lot of stuff, the command prefix is pg!. For help on all the bot com

PygameCommunityDiscord 23 Nov 30, 2022
YouTube bot, this is just my introduction to api and requests, this isn't intended on being an actual view bot.

YouTube bot, this is just my introduction to api and requests, this isn't intended on being an actual view bot.

Aran 2 Jul 25, 2022
Signs API calls to SberCloud.Advanced with AK/SK

sbercloud-api-aksk Signs API calls to SberCloud.Advanced with AK/SK This script is a courtesy of @sadpdtchr Description Sometimes there is a need to m

Peter Predtechensky 1 Nov 30, 2021