Skip to main content

Pricer for WoW Auctions

Tests Code style: black Codecov PyPI Documentation Status

About the project

Pricer for WoW Auction is a command line tool to helps users automate the decision making required to make profit on the World of Warcraft classic auction house. It does so by reading addon data, using historical pricing information from booty bay, and user specified preference, to calculate policies. These policies take all available information to produce optimal actions for items, i.e. buying volume, selling low, selling high and crafting. The policies overwrite the addon data, so that upon re-entering the game, the interface is ready to enact the optimal actions.

This is primarily a hobby project. My aim is to learn about good software development practices, and apply my data science skills to an interesting problem. And the extra gold makes raiding even more fun!

I did some twitch streaming for a while, where I discussed the project goals and showed how things worked in more detail.

Built with

Major frameworks include:

  • Python 3+
  • Chromedriver and selenium - for booty bay data
  • Nox - for CI/CD process
  • Poetry - For dependencies, virtual environment, versioning and packaging

Requirements for World of Warcraft classic include:

  • An active World of Warcraft account
  • An active Booty Bay Gazette subscription
  • ArkInventory addon - inventory tracking
  • Auctioneer addon - scanning auctions and enacting buy and sell policies
  • Beancounter addon - tracking player auction activity (comes with auctioneer)
  • Trade Skill Master - enacting crafting policies, also recommended to speed up moving items to bank and buying materials from vendors

Getting started

The following are instructions on how to set up the project locally.

The latest stable code can be found on pypi.

Download locally using:

pip install pricer

For development, clone the repository.

This project uses poetry to manage dependencies, virtual environments, versioning and packaging.

poetry install

Usage

User configuration

It is recommended to edit the config/user_items.yaml file, as this is the primary mechanism that users can select items of interest for buying, selling and crafting. Refer to the file to interpret the structure, ensure that items are named correctly.

The config/user_settings.yaml file should also be edited with information about paths to installations (WoW and Chromedriver), and active accounts. Account names can be referenced from your WoW directory. Booty Bay information should be specified to be specific to your server. Specify at least one of your characters as an ahm (auction house main), with others as mule.

You can optionally create a SECRETS.yaml file in the root directory with the following format. This is useful to help automate the booty bay data feed, but not required. We highly recommend using the Blizzard authenticator (stay safe!).

account: youraccount
password: yourpassword

TradeSkillMaster needs some additional setup. You will need to add three groups, named Materials, Sell, and Other. These are used to populate crafting ('make') policies and assist with moving items to bank.

Running the program

It is recommended to perform a auction scan immediately prior to running the program. You will need to be logged out while the program is running, as this is the only way the latest addon data can be loaded, and modified.

Run the program using the following command from command line:

pricer

Additional flags can, and should be entered:

  • -v or -vv is useful for debugging purposes
  • -b is used to seek a refresh of Booty Bay data; it is recommended to seek an update at least once every day or so.
  • -h for help on additional flags and functionality that may be available

If the run has been successful, you should see some tabular information printed in the console. This will include information about what items to make and expected profits for feasible selling items.

You should see Auctioneer data has been changed, so that (feasible) sell prices and thresholds for buying using snatch have been set.

Tests and tooling

This project seeks to use modern code quality and CI/CD tooling including

  • Dependency management, virtual env and packaging (poetry)
  • Linting (black, flake8, darglint)
  • Type checking (mypy)
  • Testing (pytest, pandera, codecov)
  • Docs (sphinx, autodoc)
  • Task automation CI/CD (nox, pre-commit, github actions, pr-labeler, release-drafter)
  • Publishing (pypi, readthedocs)

Contributing

This project is pre-release and under development.

Users are welcome to try the program, fork, or contribute, however support is not guarenteed.

Follow this link for instructions on managing releases.

License

All assets and code are under the MIT LICENSE and in the public domain unless specified otherwise. See the license for more info.

Contact

Feel free to reach out in-game; you'll see me on Grobbulus on Amazona.

You can leave an open issue seeking to connect and I'll get back to you.

I also occassionally stream project development on twitch.

Metadata

Release files for pricer 0.5.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pricer 0.5.5
File Size Uploaded
pricer-0.5.5.tar.gz 33.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pricer 0.5.5
File Interpreter ABI Platform
pricer-0.5.5-py3-none-any.whl Python 3 none any Details

Total release size: 68.4 kB

Release files / pricer-0.5.5.tar.gz

Download URL pricer-0.5.5.tar.gz
Size 33.0 kB
Tags Source
SHA-256 checksum
How to use checksums
237349a1e7ba52cd9668dd89b9a5bbf581b2bbc4deec11535054572a08456177
BLAKE2b-256 checksum
How to use checksums
5424c3770874bf7ceface2c5bce08f8edda7bca09844d9879cc448caae18f038
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.7.9 Linux/5.4.0-1031-azure

Release files / pricer-0.5.5-py3-none-any.whl

Download URL pricer-0.5.5-py3-none-any.whl
Size 35.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
16d6def4e5bc05d37817a5ff1f96f3a6471fb8716b35299d999053fb76ceaad7
BLAKE2b-256 checksum
How to use checksums
fe36aa446091be380f8679c229b4f5923520d239860a014d56e937eb030afaff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.7.9 Linux/5.4.0-1031-azure

Release history Release notifications | RSS feed

This release

0.5.5 This release

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.4.5

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.7

2 release files

0.3.5

2 release files

0.3.3

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page