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
Automatically changes your discord status

Automatically changes your discord status, Be careful as this may get you rate limited and banned

octo 5 Sep 20, 2022
A Code that can make your Discord Account 24/7!

Online-Forever Make your Discord Account Online 24/7! A Code written in Python that helps you to keep your account 24/7. The main.py is the main file.

Phantom 556 Dec 29, 2022
Hellomotoot - PSTN Mastodon Client using Mastodon.py and the Twilio API

Hello MoToot PSTN Mastodon Client using Mastodon.py and the Twilio API. Allows f

Lorenz Diener 9 Nov 22, 2022
A clean, easy to scale discord bot template

A clean, easy to scale discord bot template. Develope using nextcord library and can be use with any other discord.py forked library.

めがねこ 3 Mar 03, 2022
Python3 script to dump employee information from XING API

XingDumper Python 3 script to dump company employees from XING API. Perfect OSINT tool ;-) The results contain firstname, lastname, position, gender,

LRVT 11 Dec 26, 2022
aws-lambda-scheduler lets you call any existing AWS Lambda Function you have in a future time.

aws-lambda-scheduler aws-lambda-scheduler lets you call any existing AWS Lambda Function you have in the future. This functionality is achieved by dyn

Oğuzhan Yılmaz 57 Dec 17, 2022
An almost dependency-less, synchronous Discord gateway library meant for my personal use

An almost dependency-less, synchronous Discord gateway library meant for my personal use.

h0nda 4 Feb 05, 2022
Python library for the DeepL language translation API.

The DeepL API is a language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations. This opens a whole universe of op

DeepL 535 Jan 04, 2023
Shows VRML team stats of all players in your pubs

VRML Team Stat Searcher Displays Team Name, Team Rank (Worldwide), and tier of all the players in your pubs. GUI WIP: Username search works & pub name

Hamish 2 Dec 22, 2022
The official Python client library for the Kite Connect trading APIs

The Kite Connect API Python client - v3 The official Python client for communicating with the Kite Connect API. Kite Connect is a set of REST-like API

Zerodha Technology 756 Jan 06, 2023
A muti pairs martingle trading bot for Binance exchange.

multi_pairs_martingle_bot English Documentation A muti pairs martingle trading bot for Binance exchange. Configuration { "platform": "binance_futur

51bitquant 62 Nov 16, 2022
Python SCript to scrape members from a selected Telegram group.

A python script to scrape all the members in a telegram group anad save in a CSV file. REGESTRING Go to this link https://core.telegram.org/api/obtain

Gurjeet Singh 7 Dec 01, 2022
A Telelgram Bot to Extract Text from an Image

Text-Scanner-OCR A Telelgram Bot to Extract Text from an Image Configs Vars API_KEY: Your API_KEY from OCR Space GROUP: Your Group Username without '@

ALBY 8 Feb 20, 2022
KiKi bare dogs can share your joys and sorrows with you.

Kiki-FangLee-DiscordBot KiKi bare dogs can share your joys and sorrows with you. $help: Kiki will show you my talent, aw-aw. $list: Show Kiki's knowle

Fang Lee 0 Feb 12, 2022
Simplebot-tg - Telegram/DeltaChat Bridge with python

simplebot_tg Telegram/DeltaChat Bridge, is a plugin for https://github.com/simpl

Arián Díaz Cruz 1 Dec 30, 2021
Braje: a python based credit hacker tool. Hack unlimited RAJE LIKER app Credit

#ReCoded Evan Al Mahmud Irfan ✨ ථ BRAJE 1.0 AUTO LIKER, AUTO COMMENT AND AUTO FOLLOWER APP CREDIT HACKER TOOL About Braje: Braje is a python based cre

Evan Al Mahmud Irfan ථ 2 Dec 23, 2021
Fully undetected auto skillcheck hack for dead by daylight that works decently well

Auto-skillcheck was made by Love ❌ code ✅ ❔ ・How to use Start off by installing python ofc Open cmd in the same directory and type pip install -r requ

Rdimo 10 Aug 13, 2022
A Bot that Forwards Tweets to Telegram using Airtable as a database.

Twitter Telegram Forward A Bot that Forwards Tweets to Telegram using Airtable as a Database. Features: Handles multiple twitter and telegram channels

George Bakev 3 Dec 21, 2022
An async python wrapper to interact with the Steam API and its CMs

steam.py A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by discord.py and borrowing functionality fro

James Hilton-Balfe 90 Dec 15, 2022
Monitor your Binance portfolio

Binance Report Bot The intent of this bot is to take a snapshot of your binance wallet, e.g. the current balances and store it for further plotting. I

37 Oct 29, 2022