Package: pricer
Pricer for WoW AuctionsAbout the projectPricer 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 frombooty 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 sometwitch streamingfor a while, where I discussed the project goals and showed how things worked in more detail.Built withMajor frameworks include:Python 3+Chromedriver and selenium - for booty bay dataNox - for CI/CD processPoetry - For dependencies, virtual environment, versioning and packagingRequirements for World of Warcraft classic include:An active World of Warcraft accountAn active Booty Bay Gazette subscriptionArkInventory addon - inventory trackingAuctioneer addon - scanning auctions and enacting buy and sell policiesBeancounter 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 vendorsGetting startedThe following are instructions on how to set up the project locally.The latest stable code can be found onpypi.Download locally using:pipinstallpricerFor development, clone the repository.This project usespoetryto manage dependencies, virtual environments, versioning and packaging.poetryinstallUsageUser configurationIt is recommended to edit theconfig/user_items.yamlfile, 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.Theconfig/user_settings.yamlfile 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 anahm(auction house main), with others asmule.You can optionally create aSECRETS.yamlfile 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:youraccountpassword:yourpasswordTradeSkillMaster needs some additional setup. You will need to add three groups, namedMaterials,Sell, andOther. These are used to populate crafting ('make') policies and assist with moving items to bank.Running the programIt 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:pricerAdditional flags can, and should be entered:-vor-vvis useful for debugging purposes-bis used to seek a refresh of Booty Bay data; it is recommended to seek an update at least once every day or so.-hfor help on additional flags and functionality that may be availableIf 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 toolingThis project seeks to use modern code quality and CI/CD tooling includingDependency 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)ContributingThis project is pre-release and under development.Users are welcome to try the program, fork, orcontribute, howeversupportis not guarenteed.Follow this link for instructions on managingreleases.LicenseAll assets and code are under the MIT LICENSE and in the public domain unless specified otherwise.
See thelicensefor more info.ContactFeel 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 ontwitch.