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
Telegram bot to stream videos in telegram voicechat for both groups and channels. Supports live strams, YouTube videos and telegram media.

Telegram VCVideoPlayBot An Telegram Bot By @ZauteKm To Stream Videos in Telegram Voice Chat. NOTE: Make sure you have started a VoiceChat in your Grou

Zaute 20 Oct 21, 2022
Twitter bot to know the number of dislikes of a YouTube video

YT_dislikes is a twitter bot that allows you to know the number of dislikes (and likes) of a YouTube video. Now it is not possible to see the number o

1 Jan 08, 2022
Yandex OSINT tool

YaSeeker Description YaSeeker - an OSINT tool to get info about any Yandex account using email or login. It can find: Fullname Photo Gender Yandex UID

HowToFind 110 Jan 03, 2023
Python script to scrape users/id/badges/creation-date from a Discord Server Memberlist

Discord Server Badges Scraper - Credits to bytixo he made this Custom Discord Vanity Creator How To Use Install discum 1.2 Open a terminal and execute

apolo 13 Dec 09, 2022
Discord ToolBox is a discord bot developed by DJD320 created for the purpose of having some convenient tools in the form of a single bot.

Discord ToolBox Discord ToolBox is a discord bot developed by DJD320 created for the purpose of having some convenient tools in the form of a single b

3 Aug 07, 2021
Easy way to use Telegram bot to hide your identity.

telegram-support-bot Easy way to use Telegram bot to hide your identity. Useful for support, anonymous channel management. Free clone of Livegram Bot.

Daniil Okhlopkov 197 Dec 23, 2022
Search all history of Chrome in terminal

Chrotry Search all history of Chrome in terminal. Demo Usages Move the Chrome history file to current directory by running move_history.sh Rename hist

Xiaoxu HU 2 Jun 13, 2022
Weather App using openweathermap API

This is my hobby project used to learn how to use public api for project.In this i used the api of openweathermap to featch the weather details of various city across the globe by giving city name as

Subramanya K S 1 Nov 06, 2021
Male' Map Telegram Bot

Male' Map TelegramBot A simple TelegramBot to fetch residential addresses in Male', Maldives. The bot can be queried inline or directly. sample .env f

Naail Abdul Rahman 12 Nov 25, 2022
Python interface to the LinkedIn API

Python LinkedIn Python interface to the LinkedIn API This library provides a pure Python interface to the LinkedIn Profile, Group, Company, Jobs, Sear

ozgur 844 Dec 27, 2022
Self-adjusting, auto-compounding multi-pair DCA crypto trading bot using Python, AWS Lambda & 3Commas API

Self-adjusting, auto-compounding multi-pair DCA crypto trading bot using Python, AWS Lambda & 3Commas API The following code describes how we can leve

Jozef Jaroščiak 21 Dec 07, 2022
Bot Auto Chess.com

Bot Auto Chess.com Is a suggestion for chess moves on the chess.com platform. The available features are: chess suggestions and moves automatically. i

Tn. Ninja 34 Jan 01, 2023
Download song lyrics and metadata from Genius.com 🎶🎤

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

John W. Miller 738 Jan 04, 2023
PaddleOCR推理的pytorch实现和模型转换

PaddleOCR2Pytorch 简介 ”真·白嫖“PaddleOCR 注意 PytorchOCR由PaddleOCR-2.0rc1+动态图版本移植。 特性 高质量推理模型,准确的识别效果 超轻量ptocr_mobile移动端系列 通用ptocr_server系列 支持中英文数字组合识别、竖排文本

519 Jan 08, 2023
Work with the AWS IP address ranges in native Python.

Amazon Web Services (AWS) publishes its current IP address ranges in JSON format. Python v3 provides an ipaddress module in the standard library that allows you to create, manipulate, and perform ope

AWS Samples 9 Aug 25, 2022
Google scholar share - Simple python script to pull Google Scholar data from an author's profile

google_scholar_share Simple python script to pull Google Scholar data from an au

Paul Goldsmith-Pinkham 9 Sep 15, 2022
Discord Token Generator - Python (Generates Tokens and Joins your Server Automatically) hCaptcha Bypass **FREE**

Best Discord Token Generator {hCaptcha bypass FREE Unlimited Memberboost} Install few requirements & run main.py it will redirect you to the Download

1 Oct 27, 2021
Stack Overflow Error Parser

A python tool that executes python files and opens respective Stack Overflow threads in browser for errors encountered.

Raghavendra Khare 3 Jul 24, 2022
SEP Finder Bot

SEP Finder Bot This is a Telegram bot that will help you find the correct SEP and Baseband files to use for your device with futurerestore. Usage A ho

6 Dec 03, 2022
This is a open source discord bot project

pythonDiscordBot This is a open source discord bot project #based on the MAX A video: https://www.youtube.com/watch?v=jHZlvRr9KxM Prerequisites Python

Edson Holanda Teixeira Junior 3 Oct 11, 2021