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
An API-driven solution for Makerspaces, Tinkerers, and Hackers.

Mventory is an API-driven inventory solution for Makers, Makerspaces, Hackspaces, and just about anyone else who needs to keep track of "stuff".

Matthew Macdonald-Wallace 107 Dec 21, 2022
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

Lohan 8 Apr 28, 2022
Simple Telegram Bot to extract various types of archives from a telegram file or a direct link

Unzipper Bot A Telegram Bot to Extract Various Types Of Archives Features Extract various types of archives like rar, zip, tar, 7z, tar.xz etc. Passwo

I'm Not A Bot #Left_TG 93 Dec 27, 2022
AWS SQS event redrive Lambda

This repository contains the Lambda function to redrive sqs events from source to destination queue while controlling maxRetry per event.

1 Oct 19, 2021
PHION's client-side core python library

PHION-core PHION's client-side core python library. This library is not meant to be used directly by users. If you want to install phion please use th

PHION 2 Feb 07, 2022
Discord Account Generator that will create Account with hCaptcha bypass. Using socks4 proxies

Account-Generator [!] This was made for education. Please use socks4 proxies for nice experiences. [!] Please install these modules - "pip3 install ht

RyanzSantos 10 Feb 23, 2022
Its The Basic Commands Of Termux

Its The Basic Commands Of Termux

ANKIT KUMAR 1 Dec 27, 2021
This repo provides the source code for "Cross-Domain Adaptive Teacher for Object Detection".

Cross-Domain Adaptive Teacher for Object Detection This is the PyTorch implementation of our paper: Cross-Domain Adaptive Teacher for Object Detection

Meta Research 91 Dec 12, 2022
This is a simple program that uses Python and pyTwitchAPI to retrieve the list of users in a streamer's chat and then checks each one of these users to see if they follow the broadcaster or not

This is a simple program that uses Python and pyTwitchAPI to retrieve the list of users in a streamer's chat and then checks each one of these users to see if they follow the broadcaster or not

RwinShow 57 Dec 18, 2022
Lib for create and show QRCode to PIX, you can show this code in another applications for payment by final consumer.

Biblioteca para a geração de codigos QR (BRCode como chamados na documentação do BACEN) a fins de facilitar a exibição para pagamentos ao consumidor.

João Camargo 13 Oct 05, 2022
A discord bot that send SMS spam!

bruh-bot send spam sms! send spam with email! it sends you spam via sms and Email using two tools, quack and impulse! if you have some problem contact

pai 32 Dec 25, 2022
M3U Playlist for free TV channels

Free TV This is an M3U playlist for free TV channels around the World. Either free locally (over the air): Or free on the Internet: Plex TV Pluto TV P

Free TV 964 Jan 08, 2023
The Github repository for the Amari API wrapper.

Amari.py Amari.py is an async, easy to use API wrapper for the AmariBot. Installation Enter any of these commands to install the library: pip install

TheF1ng3r 5 Dec 19, 2022
BiliBili-live-barrage-transceiver - A simple python program for sending and receiving barrage in bilibili live room

BiliBili-live-barrage-transceiver - A simple python program for sending and receiving barrage in bilibili live room

zeroy 2 Jan 18, 2022
A simple discord bot based on python

A simple discord bot based on python

SENPAI LEGEND 2 Jul 24, 2022
An api, written in Python, for Investopedia's paper trading stock simulator.

investopedia-trading-api An API, written in Python, for Investopedia's paper trading stock simulator. Pull requests welcome. This library is now Pytho

Kirk Thaker 178 Jan 06, 2023
Scrapping malaysianpaygap & Extracting data from the Instagram posts

Scrapping malaysianpaygap & Extracting data from the posts Recently @malaysianpaygap has gotten quite famous as a platform that enables workers throug

Yudhiesh Ravindranath 65 Nov 09, 2022
Dns-Client-Server - Dns Client Server For Python

Dns-client-server DNS Server: supporting all types of queries and replies. Shoul

Nishant Badgujar 1 Feb 15, 2022
LyricsGenius: a Python client for the Genius.com API

LyricsGenius: a Python client for the Genius.com API lyricsgenius provides a simple interface to the song, artist, and lyrics data stored on Genius.co

KevinChunye 2 Jun 30, 2022
A simple telegram bot that takes a list of files sent by the user and returns them 7zipped

A simple telegram bot that takes a list of files sent by the user and returns them 7zipped

1 Oct 28, 2022