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
Projeto de teste para acesso a API SWAPI.

SwapiTest Projeto de teste para acesso a API Swapi com informações sobre Star Wars. Como rodar o programa Foi utilizado o pipenv, então basta clonar o

Gabriel de Souza Alves 1 Nov 23, 2021
A basic template for Creating Odoo Module

Odoo ERP Boilerplate A basic template for Creating Odoo Module. Folders inside this repository consist of snippet code and a module example. Folders w

Altela Eleviansyah Pramardhika 1 Feb 06, 2022
Information about the weather in a city written using Python

Information about the weather in a city Enter the desired city Climate information of the target city This program is written using Python programming

Amir Hussein Sharifnezhad 4 Nov 17, 2021
A Discord webhook spammer made in Python.

A Python made Discord webhook spammer usually used for token loggers to spam them/delete them original by cattyn I only made it so u can change the avatar to whatever u want instead of it being hardc

notperry1234567890 15 Dec 15, 2021
GTK3-based panel for sway window manager

nwg-panel I have been using sway since 2019 and find it the most comfortable working environment, but... Have you ever missed all the graphical bells

Piotr Miller 290 Jan 07, 2023
A file-based quote bot written in Python

Let's Write a Python Quote Bot! This repository will get you started with building a quote bot in Python. It's meant to be used along with the Learnin

Florent 1 Dec 17, 2021
Discord Voice Channel Automatic Online

Discord-Selfbot-voice Features: Discord Voice Channel Automatic Online FAQ Q: How can I obtain my token? A: 1. How to obtain your token in android 2.

Pranav Ajay 3 Oct 31, 2022
TwitchAccountMaker - Twitch Account Maker with python

Twitch Account Creator A Twitch Account Creator, Requires Capmonster.cloud Verif

vanis / 1800 0 Jan 20, 2022
Asynchronous Python Wrapper for the GoFile API

Asynchronous Python Wrapper for the GoFile API

Gautam Kumar 22 Aug 04, 2022
Bender: A Markov Babbler Slack Bot

See the Digital Ocean tutorial for instructions on how to get the basic bot structure in place. Once you have that, set the gunicorn command to run as

Andrew Howard 1 Dec 04, 2021
A decentralized messaging daemon built on top of the Kademlia routing protocol.

parakeet-message A decentralized messaging daemon built on top of the Kademlia routing protocol. Now that you are done laughing... pictures what is it

Jonathan Abbott 3 Apr 23, 2022
3X Fast Telethon Based Bot

📺 YouTube Song Downloader Bot For Telegram 🔮 3X Fast Telethon Based Bot ⚜ Easy To Deploy 🤗

@Dk_king_offcial 1 Dec 09, 2021
Hydro Quebec API wrapper.

HydroQC Hydro Quebec API wrapper. This is a package to access some functionalities of Hydro Quebec API that are not documented. Documentation https://

Olivier BEAU 9 Dec 02, 2022
Automatically Message From Discord Account

Discord-AutoMessage A robust and versatile solution for automated social interactions HOW TO INSTALL Open cmd cd into your project directory Run the f

13 Jul 11, 2022
Python + AWS Lambda Hands OnPython + AWS Lambda Hands On

Python + AWS Lambda Hands On Python Criada em 1990, por Guido Van Rossum. "Bala de prata" (quase). Muito utilizado em: Automatizações - Selenium, Beau

Marcelo Ortiz de Santana 8 Sep 09, 2022
Azure Neural Speech Service TTS

Written in Python using the Azure Speech SDK. App.py provides an easy way to create an Text-To-Speech request to Azure Speech and download the wav file.

Rodney 1 Oct 11, 2021
摩尔庄园手游脚本

摩尔庄园 BlueStacks 脚本 手游上线,情怀再起,但面对游戏中枯燥无味的每日任务和资源采集,你是否觉得肝疼呢? 本项目通过生成 BlueStacks 模拟器的宏脚本,帮助玩家护肝。 使用脚本请阅读 使用方式 和对应的 功能及说明 联系 Telegram 频道 @mole61 Telegram

WH-2099 43 Dec 16, 2022
A method to check whether a Discord user is using the client or not.

Discord Captcha Method This is an example, of a verification trough a check, if the user loads the picture send with the verification-message. This ma

Julien 2 Jan 19, 2022
If you are in allot of groups or channel and you would like to leave them at once use this

Telegram-auto-leave-groups If you are in allot of groups or channel and you would like to leave them at once use this USER GUIDE 👣 Insert your telegr

Julius Njoroge 4 Jan 03, 2023
Telegram anime bot that uses Anilist API

Telegram Bot Repo Capable of fetching the following Info via Anilist API inspired from AniFluid and Nepgear Anime Airing Manga Character Scheduled Top

Lucky Jain 71 Jan 03, 2023