Giter Club home page Giter Club logo

wowa's Introduction

WoWA

cover status npm npm install size platform

Recent Notice

WoWA dev is discontinued for several reasons. The most important one of them is that curseforge/overwolf has already developed very good clients for there addons for each platform (win/mac/even linux). Not like the moment that I decided to develop wowa, back when they only had a twitch client for only Windows.

Thank you for using WoWA. Thank you for those who have liked WoWA


WoWA stands for World of Warcraft Assistant, it is designed to help managing WoW addons, uploading WCL logs, etc.

There used to be some command line manager for WoW addons in the past, but are mostly out of maintaince at this time. A list of these projects can be found in the related prjects section.

As comparing to these projects, WoWA offers serveral advantages:

  • Better CLI interface: colorful and meaningful
  • Concurrency: when installing or updating, WoWA can take advantage of multi-processing
  • wowaads.json file: this is the file where WoWA stores addon information. Unlike other projects, WoWA stores this file in the WTF folder. This design benifits people when they want to backup their WoW setting. Backing up one WTF folder is enough

Install

npm install -g wowa

Setup WoW path

The WoW path configuration file is located at %APPDATA%/wowa/wow_path.txt on Windows, and ~/.wowa/wow_path.txt on macOS or Linux.

Normally wowa would remind you to edit this file if it cannot find the game at its default location.

Usage

Quick reference

To install an addon

wowa add deadly-boss-mods                       # install dbm from curse
wowa add curse:deadly-boss-mods                 # install dbm from curse
wowa add mmoui:8814-DeadlyBossMods              # install dbm from wowinterface
wowa add 8814-DeadlyBossMods                    # install dbm from wowinterface
wowa add deadlybossmods/deadlybossmods          # install dbm from github
wowa add bigwigsmods/bigwigs/classic            # install bigwigs (classic branch) from github
wowa add antiwinter/dlt                         # install dlt from github

To search an addon

wowa search dbm                                 # search for dbm automatically
wowa search mmoui:dbm                           # search for dbm only from wowinterface

If an addon does not provide a classic version, but the author declares that the addon supports classic. You can:

wowa add some-addon --anyway

Note: you will need to check the Load out of date addons option in game

Installing an addon

Installing an addon from arbitrary repo

wowa add https://git.tukui.org/Azilroka/AddOnSkins.git            # install master branch
wowa add https://git.tukui.org/Azilroka/AddOnSkins.git@master     # install master branch
wowa add https://git.tukui.org/Azilroka/[email protected]      # install tag v1.88

Search for an addon

Note: that WoWA manages addons by keys (keys are provided by curse) not by addon names, sometimes they are different. If you are not sure a key for an addon, you can search that addon by some fuzzy name, and the search result provides the correct key to use.

Installing two or more addons

Removing an addon

Update all installed addons

Pin an addon, prevent it from updating

wowa pin deadly-boss-mods       # addon is pinned to it's current version
wowa unpin deadly-boss-mods     # addon is unpinned

wowa ls -l displays an exclaimation mark before version, incicating that addon is pinned.

List all installed addons

Import local addons

If use wowa for the first time, you need to import your local addon. Then wowa can manage them for you.

wowa import

Switch modes

wowa sw                 switch between _retail_ and _classic_ [TBC]
wowa sw --ptr           switch mode to: retail PTR
wowa sw --beta          switch mode to: retail BETA
wowa sw --retail        switch mode to: retail formal
wowa sw --retail-ptr    switch mode to: retail PTR
wowa sw --retail-beta   switch mode to: retail BETA
wowa sw --classic       switch mode to: classic formal [Vanilla]
wowa sw --classic-ptr   switch mode to: classic PTR
wowa sw --classic-beta  switch mode to: classic BETA
wowa sw --classic-tbc   switch mode to: classic [TBC]

Related projects

Actively maintained

Not Actively maintained

Roadmap

  • Support projects on wowinterface.com
  • Support projects on github.com
  • Game version detection
  • Add test cases
  • Support projects on tukui.org
  • Support WoW Classic !
  • Import existing addons
  • Check wowa updates
  • Optimize color scheme
  • Shrink size of package
  • Support releasing UI (addons list, together with settings) to github.com
  • Support backing up to github.com
  • Support restoring from github.com
  • Support uploading to warcraftlogs.com

GFW treatment

如果你身在国内并经常更新 database 缓慢或出现以下错误,可以按下文的方法解决。

Updating database...require curse db failed RequestError: read ECONNRESET

解决方法

  1. 按快捷键 Win+xa,打开管理员权限的 powershell
  2. 输入以下命令编辑 hosts 文件,notepad c:\windows\system32\drivers\etc\hosts
  3. hosts 文件中增加以下两行,保存退出
199.232.68.133 raw.githubusercontent.com
140.82.112.5 api.github.com
  1. powershell 中输入 ipconfig /flushdns

A more convenient method

  1. Use proxychains-windows
  2. Add bellow code to C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
function wowa{
  echo 'v.p.'
  proxychains.exe -q wowa $args
}

wowa's People

Contributors

antiwinter avatar dependabot[bot] avatar flat avatar zebouski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wowa's Issues

Incorrect update date from github

When doing wowa ls -l there is an incorrect Update date for several of my addons with github sources.

Examples:
Stanzilla/AdvancedInterfaceOptions - Last commit was 2020-08-21 and last release was 2020-01-23, but wowa shows 2016-06-26
funkydude/BadBoy - Last commit and release was on 2019-09-04, but wowa shows 2016-08-01
Tercioo/Details-Damage-Meter - Last commit was 2020-10-04 and last release was 2020-08-11, but wowa shows 2019-12-15

github private repositories

Hello, fabulous tool thanks.

Does wowa support private repositories? I am having issues getting this to work.

I am able to clone natively with 'git clone' (my .git-credentials works), I have altered wowa/source/github.js to expose that my process.env.GITHUB_TOKEN is being passed (it is).

Everything in wowa/source/github.js seems to work, its when 'done(d)' is called that master.zip isn't authorized. In ok.git:L81 the output of console.log(d) is the following

wowa install redacted/addon
⠇ redacted/addon [github] waiting...
done { name: 'addon',
  owner: 'redacted',
  author: 'redacted',
  page: 'https://github.com/redacted/addon',
  version:
   [ { name: '7667e48',
       link:
        'https://github.com/redacted/addon/archive/master.zip' } ],
  ↓ redacted/addon @7667e48 [github] HTTPError: Response code 404 (Not Found) [skipped]

Thanks!

wowa not importing my addons

I just installed wowa with npm, but when I wanted to import my addons, it didn't find any when I did wowa import. Been using twitch app with lutris, so I knew i had addons in there.

Screen Capture_select-area_20200517141031

I looked into the folders, and it seems that wowa only looks for AddOns and not Addons, I can just rename the folder, but I feel that defeated the purpose of using a cli for handling wow addons :)

Implement abritrary git repositories

Instead of just GitHub support allow any full git URL path to be installed as an add-on.

Examples of installation (non exhaustive):
wowa install http://git.example.com/user/addon branch
wowa install http://git.example.com/user/addon/branch
wowa install-git http://git.example.com/user/addon#branch
etc.

While this won't allow metadata from apis unless implemented as individual CVS sites it allows users to install add-ons from any potential repository such as the tukui development repositories that may contain bug fixes or features that are available before a release on the conventional add-on sites.

"UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory" while downloading addons

Some addons are giving me the errors during installation, I have no idea what the cause might be, any idea?

I'm on 1809 x64, German, Powershell Version 5.1.17763.592.
Please let me know if you need more information about my system. Installed about 15 other addons from WoWInterface, Curse and Github and all works fine there.

PS C:\Users\Tim> wowa add sellableitemdrops / sellableitemdrops @0.4.12 [curse] downloading... 100% (node:16424) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, open 'C:\Users\Tim\AppData\Roaming\wowa\sellableitemdrops\dec\SellableItemDrops\Libs' (node:16424) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) | sellableitemdrops @0.4.12 [curse] downloading... 100% Batchvorgang abbrechen (J/N)? J

Deleting the the folder "C:\Users\Tim\AppData\Roaming\wowa\sellableitemdrops\dec\SellableItemDrops" does not help:
PS C:\Users\Tim> wowa add sellableitemdrops / sellableitemdrops @0.4.12 [curse] downloading... 100% (node:16460) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, open 'C:\Users\Tim\AppData\Roaming\wowa\sellableitemdrops\dec\SellableItemDrops\Libs\LibParse\Libs\tests' (node:16460) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) \ sellableitemdrops @0.4.12 [curse] downloading... 100%

More examples:

PS C:\Users\Tim> wowa add 25040-BetterAlign \ 25040-BetterAlign @1.0.0 [wowinterface] downloading... 100% (node:440) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, open 'C:\Users\Tim\AppData\Roaming\wowa\25040-BetterAlign\dec\BetterAlign\.git' (node:440) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:440) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections \ 25040-BetterAlign @1.0.0 [wowinterface] downloading... 100%

PS C:\Users\Tim> wowa add classicon - classicon @v0.1 [curse] downloading... 100% (node:26512) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, open 'C:\Users\Tim\AppData\Roaming\wowa\classicon\dec\ClassIcons\Libs\LibBabble-CreatureType-3.0' (node:26512) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:26512) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejection - classicon @v0.1 [curse] downloading... 100%

Option to hide skipped addons during update

Since the list of addons is taller than the window, I don't see relevant information that happens to be at the top.
I also feel like it's superfluous to see the list of skipped every time, though it could be useful occasionally.

By displaying only the addons that are being updated in the current session, the output would become clearer.
Also by the amount of flickering I believe skipped lines are also being redrawn, so it could be a performance improvement as well.

Addon not showing updates

I have not run wowa update yet today, and I know there are addon updates waiting, but wowa update says there is nothing to update. Also wowa info addon-name never works. I've tried it with TomTom, DBM-Core, and other addons that wowa ls shows. It always returns "Not Available".

some github addons not working

An example is github.com/Mokilok22/RareAware

When I try to add it it says not available...

Mokilok22/RareAware [github] not availabe [skipped]

It seems like it has to do with all the files being at top level rather than in a subfolder.

Aslo, I just noticed there is a typo in available there.

wowaads.json no such file or directory

This is a new issue I have gotten. I just installed a fresh copy of manjaro with the kde desktop. I was attempting to download my add-ons to set up WoW and I keep getting this error when I try to do install, import, remove, etc any add-on. You can find a screenshot that I am going to attach that will hopefully help with this issue.

Screenshot_20191212_050208

Change wow directory

Cant find any way to set the directory that wowa will use to find it's addons.
Tried to edit the config.js but with no success.

I'm using Linux so that's why the path is not working.

Allow installation of non-supported versions

Hey there, great application! I did find something very annoying with classic though.

There are a lot of addons on curse that work with classic but don't advertise themselves as working with classic. Installing these with WoWA doesn't work as it gives me a version is not available message. In these cases I would like to have a --flag or just have WoWA download the latest retail version anyway.

Allow Pinning of Addons to hold updates

It would be a very helpful feature to allow us to pin add-ons at certain version, so they are not updated. Some UI's such was realui on wowinterface have a few add-ons that need stay pinned at their current update because the author has altered code that will break the add-on if it is updated.

nolib version of some curse addons being installed

It looks like wowa installs the -nolib version of some addons hosted on Curse, at least it's doing it for me with Ark Inventory and Chocolate Bar, and they stop working as the libs they depend on are not here.

Their page :
https://www.curseforge.com/wow/addons/ark-inventory
https://www.curseforge.com/wow/addons/chocolatebar

Might be others, but thoses two broke after a wowa update.

EDIT: Forgot to mention it is for classic version, didn't test with retail as I don't have it installed

Update function does not work when one of the sources has issues

While writing the ticket it started working again, but for a short while this morning, I was unable to launch the update command.

  • ls and search worked fine
  • Since I noticed, the issue lasted about 15 minutes but I don't know how long it was going on before I noticed it.
  • I got 2 errors and both seem related to the mmoui api, I suppose they changed while the api issue was being fixed.

External errors cannot be prevented of course, however it would be good if in such cases the source was ignored temporarily (with a message for example) and the update could continue with the sources that are available.

Here are the error messages, partially obscured, in case they are useful.

Error type 1:

>wowa update

Updating database...mmoui summary failed TypeError: Cannot read property 'map' of null
    at C:\ProgramData\nvm\v12.18.3\node_modules\wowa\source\mmoui.js:41:13
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

Error type 2:

>wowa update

Updating database...mmoui summary failed GotError [HTTPError]: Response code 520 (Origin Error)
    at EventEmitter.<anonymous> (C:\ProgramData\nvm\v12.18.3\node_modules\wowa\node_modules\got\source\as-promise.js:74:19)
    at processTicksAndRejections (internal/process/task_queues.js:97:5) {
  host: 'api.mmoui.com',
  hostname: 'api.mmoui.com',
  method: 'GET',
  path: '/v3/game/WOW/filelist.json',
  socketPath: undefined,
  protocol: 'https:',
  url: 'https://api.mmoui.com/v3/game/WOW/filelist.json',
  gotOptions: {
    path: '/v3/game/WOW/filelist.json',
    protocol: 'https:',
    slashes: true,
    auth: null,
    host: 'api.mmoui.com',
    port: null,
    hostname: 'api.mmoui.com',
    hash: null,
    search: null,
    query: null,
    pathname: '/v3/game/WOW/filelist.json',
    href: 'https://api.mmoui.com/v3/game/WOW/filelist.json',
    retry: {
      retries: [Function],
      methods: [Set],
      statusCodes: [Set],
      errorCodes: [Set]
    },
    headers: {
      'user-agent': 'got/9.6.0 (https://github.com/sindresorhus/got)',
      'accept-encoding': 'gzip, deflate'
    },
    hooks: {
      beforeRequest: [],
      beforeRedirect: [],
      beforeRetry: [],
      afterResponse: [],
      beforeError: [],
      init: []
    },
    decompress: true,
    throwHttpErrors: true,
    followRedirect: true,
    stream: false,
    form: false,
    json: false,
    cache: false,
    useElectronNet: false,
    method: 'GET'
  },
  statusCode: 520,
  statusMessage: 'Origin Error',
  headers: {
    date: 'Sat, 19 Dec 2020 12:44:46 GMT',
    'content-type': 'text/html',
    'content-length': '179',
    connection: 'close',
    'set-cookie': [
      '__cfduid=[redacted]; expires=Mon, 18-Jan-21 12:43:08 GMT; path=/; domain=.mmoui.com; HttpOnly; SameSite=Lax; Secure'
    ],
    'cache-control': 'no-store, no-cache',
    'cf-cache-status': 'DYNAMIC',
    'cf-request-id': '[redacted]',
    'expect-ct': 'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
    'report-to': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report?s=[redacted]"}],"group":"cf-nel","max_age":604800}',
    nel: '{"report_to":"cf-nel","max_age":604800}',
    server: 'cloudflare',
    'cf-ray': '[redacted]'
  },
  body: '<html>\r\n' +
    '<head><title>520 Origin Error</title></head>\r\n' +
    '<body bgcolor="white">\r\n' +
    '<center><h1>520 Origin Error</h1></center>\r\n' +
    '<hr><center>cloudflare-nginx</center>\r\n' +
    '</body>\r\n' +
    '</html>\r\n'
}

Thank you

Feature request: PTR (and futher Beta) support

The PTR client is located at World of Warcraft/_ptr_, and it’s usually okay to install addons from Curse’s Retail release channel.

The Beta client will be likely located at World of Warcraft/_beta_. There can be some imcompatable changes, and thus Curse’s Retail alpha or beta channel may be preferred.

P.S. I can provide an account with PTR access if necessary.

Off screen text gets duplicated many times

If the terminal window is not large enough to show all addons at once when updating, it causes a lot of text duplication for what scrolled off the top of the screen. So rather than just a few lines that you can scroll up and see, it could be hundreds of lines of the same text.

I made the window just large enough so that one addon did not fit, and when I scroll up after updating this is what I get.

⠙ omni-cc [curse] checking for updates...
⠹ omni-cc [curse] checking for updates...
⠸ omni-cc [curse] checking for updates...
⠼ omni-cc [curse] checking for updates...
⠴ omni-cc [curse] checking for updates...
⠦ omni-cc [curse] checking for updates...
⠧ omni-cc [curse] checking for updates...
⠇ omni-cc [curse] checking for updates...
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]
↓ omni-cc [curse] is already up to date [skipped]

Problem installing from curseforge git repo

Trying to install an addon from its curseforge git repo causes wowa to install the addon twice; once with curse as the source and once with git as the source. Not sure if this should even be supported, but it should probably only install it one way if you try to do this.

Cannot install ElvUI from tukui - unzip failed

I'm trying to install ElvUI using wowa, but I fail to do so (unzip failed).
Am I doing something wrong here? 😅

What did I do?

1. Search for ElvUI

wowa search tukui:elvui

15 results from tukui

ElvUI (https://www.tukui.org/addons.php?id=0)
  key: 0-1ElvUI download: 1.0m version: 02/18/2021

(...)

2. Add/install

 wowa install tukui:0-1ElvUI

Installing addon...

  ↓ 0-1ElvUI [tukui] unzip failed [skipped]

0 addons installed
✨  done in 6s.

Doing the same without specifying the repository results in the same

 wowa install 0-1ElvUI

Installing addon...

  ↓ 0-1ElvUI [tukui] unzip failed [skipped]

0 addons installed
✨  done in 7s.

Versions I am using

wowa --version
1.3.13

node --version
v14.15.3

Additional information

I managed to install it directly using the git-repository reference, but I am still wondering if this is the way to do it or if the above should have also worked.

A few more aliases for the commands

Sorry for the overload of issues but I've been experimenting with WoWA a lot and I would like to see a few more alises for some of these commands. Specifically:

# Installation
wowa get addon

# Removal
wowa remove addon
wowa uninstall addon

GUI

Any chance to make a GUI for this ?

How do you search the tukui repo?

Hey,
how do you go about searching the tuk ui repo? Do I have to manually add their git repos to my wowa to be able to use them?

I seem to only get results from curse and I can't find any documentation on how to switch the "source".

elv

crash trying to update

I'm getting this crash when trying to update.

↓ cannonpalms/FasterLooting [github] is already up to date [skipped]
⠏ omni-cc [curse] checking for updates...
↓ fusionpit/WhatsTraining [github] is already up to date [skipped]
⠏ monkey-quest [curse] checking for updates...
⠏ AeroScripts/QuestieDev [github] downloading...
↓ 24924-RealMobHealth [mmoui] is already up to date [skipped]
↓ Aviana/YaHT [github] is already up to date [skipped]
↓ 24958-AuctionatorClassicquickfix [mmoui] is already up to date [skipped]
⠏ 24906-123 [mmoui] downloading...
↓ 25160-ItemTooltipProfessionIcons [mmoui] is already up to date [skipped]
⠴ monkey-buddy [curse] checking for updates...
↓ 25109-LetMeCast [mmoui] is already up to date [skipped]
⠴ advancedinterfaceoptions [curse] checking for updates...
⠼ elvui-adibags [curse] checking for updates...
↓ 2-ElvUI [tukui] is already up to date [skipped]
⠼ leatrix-plus-classic [curse] checking for updates...
⠹ vendor-price [curse] checking for updates...
⠙ atlaslootclassic [curse] checking for updates...
24936-NugRunningClassic waiting...
guidelime waiting...
deadly-boss-mods waiting...
leatrix-maps-classic waiting...
/home/mike/.npm-global/lib/node_modules/wowa/lib/unzip.js:10
if (err) throw err
^

Error: end of central directory record signature not found
at /home/mike/.npm-global/lib/node_modules/wowa/node_modules/yauzl/index.js:187:14
at /home/mike/.npm-global/lib/node_modules/wowa/node_modules/yauzl/index.js:631:5
at /home/mike/.npm-global/lib/node_modules/wowa/node_modules/fd-slicer/index.js:32:7
at FSReqCallback.wrapper [as oncomplete] (fs.js:478:5)

Allow multiple WoW paths

In Linux it's common to have different Wine prefixes for each game, specially when managed by a launcher like Lutris.

wowa currently assumes that both classic and retail folders must exist inside the same WoW directory, but this is not the case in this common scenario, it'd be nice to have support for it.

Arbritrary github repo not working

Looking to set up my addons for the Shadowlands beta, I was able to add ElvUI via wowa install https://git.tukui.org/ElvUI/ElvUI.git@beta, however when I try to add WeakAuras, it fails to install

wowa install https://github.com/Weakauras/Weakauras2.git@shadowlands

Installing addon...

  ↓ Weakauras/Weakauras2.git @shadowlands [github] not available [skipped]

0 addons installed
✨  done in 0s.

it doesn't seem to matter which branch I pick or even if I pick a release version.

If there's any log or anything I can send you to assist let me know

[Retail] Tukui folder named incorrectly

The tukui addon downloaded from tukui is named "Tukui-Mainline". This breaks the addon ingame.

$ wowa search tukui:tukui

Updating database...done

15 results from tukui

TukUI (https://www.tukui.org/addons.php?id=0)
  key: 0-1TukUI download: 1.0m version: 12/12/2021
  
$  wowa install tukui:0-1TukUI

Installing addon...

  ✔ 0-1TukUI @20.23 [tukui] installed

1 addons installed
✨  done in 3s.

$ wowa ls -l

Addon keys  Version  Source  Update
----------  -------  ------  ----------
0-1TukUI    20.23    tukui   2021-11-03

You are in:  _retail_

$  ls -l "$(cat ~/.wowa/wow_path.txt)/Interface/Addons"
total 0
drwxrwxrwx 1 ryan ryan 4096 Dec 12 10:04 Tukui-Mainline


$ wowa -V
1.3.17

Exception message when a timeout occurs during update

When updating addons today there was a long wait on "Updating database" and eventually the exception message below appeared, it was truncated due to me scrolling to see it as the update started.

The update did work with the rest of the sources, since a few addons were updated.
All I think should be fixed here is displaying a one liner error message rather than the exception.

Wowa version: 1.3.13

>wowa update

Updating database...tukui summary failed GotError [RequestError]: connect ETIMEDOUT 54.39.107.238:443
    at ClientRequest.<anonymous> (C:\ProgramData\nvm\v12.18.3\node_modules\wowa\node_modules\got\source\request-as-event-emitter.js:178:14)
    at Object.onceWrapper (events.js:422:26)
    at ClientRequest.emit (events.js:327:22)
    at ClientRequest.origin.emit (C:\ProgramData\nvm\v12.18.3\node_modules\wowa\node_modules\@szmarczak\http-timer\source\index.js:37:11)
    at TLSSocket.socketErrorListener (_http_client.js:426:9)
    at TLSSocket.emit (events.js:315:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'ETIMEDOUT',
  host: 'www.tukui.org',
  hostname: 'www.tukui.org',
  method: 'GET',
  path: '/api.php?addons',
  socketPath: undefined,
  protocol: 'https:',
  url: 'https://www.tukui.org/api.php?addons',
  gotOptions: {
    path: '/api.php?addons',
    protocol: 'https:',
    slashes: true,
    auth: null,
    host: 'www.tukui.org',
    port: null,
    hostname: 'www.tukui.org',
    hash: null,
    search: '?addons',
    pathname: '/api.php',
    href: 'https://www.tukui.org/api.php?addons',
    retry: {
      retries: [Function],
      methods: [Set],
      statusCodes: [Set],
      errorCodes: [Set]
    },
    headers: {
      'user-agent': 'got/9.6.0 (https://github.com/sindresorhus/got)',
      'accept-encoding': 'gzip, deflate'
    },
    hooks: {
      beforeRequest: [],
      beforeRedirect: [],
      beforeRetry: [],
      afterResponse: [],
      beforeError: [],
      init: []
    },
    decompress: true,
    throwHttpErrors: true,
    followRedirect: true,
    stream: false,
    form: false,
[TRUNCATED BY ADDON LIST]

Thank you

unable to add any curse addons

All curse addons say skipped/unavailable when I try to add them. They can be found in search, but will say unavailable when I try to install them.

Not working after update

Just updated and wowa no longer works. wowa throws the following error no matter what I do:

$ sudo npm install -g wowa
/usr/local/bin/wowa -> /usr/local/lib/node_modules/wowa/index.js
+ [email protected]
added 1 package and updated 13 packages in 15.297s

$ wowa update
internal/modules/cjs/loader.js:1174
     throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
     ^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /usr/local/lib/node_modules/wowa/node_modules/is-promise/index.js
require() of ES modules is not supported.
require() of /usr/local/lib/node_modules/wowa/node_modules/is-promise/index.js from /usr/local/lib/node_modules/wowa/node_modules/listr/lib/task.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /usr/local/lib/node_modules/wowa/node_modules/is-promise/package.json.

   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1174:13)
   at Module.load (internal/modules/cjs/loader.js:1002:32)
   at Function.Module._load (internal/modules/cjs/loader.js:901:14)
   at Module.require (internal/modules/cjs/loader.js:1044:19)
   at require (internal/modules/cjs/helpers.js:77:18)
   at Object.<anonymous> (/usr/local/lib/node_modules/wowa/node_modules/listr/lib/task.js:2:19)
   at Module._compile (internal/modules/cjs/loader.js:1158:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
   at Module.load (internal/modules/cjs/loader.js:1002:32)
   at Function.Module._load (internal/modules/cjs/loader.js:901:14) {
 code: 'ERR_REQUIRE_ESM'
}

$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 31 (Thirty One)
Release:	31
Codename:	ThirtyOne

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.