A World of Warcraft auction house availability checker with an API and notifications that works off of a dynamic list of items and realms.
aHawk only checks on items on realms that users have specifically requested and only keeps a day's worth of checks.
Additionally, aHawk doesn't rely on a make-once-distribute-forever type of idea for the list of realms and items; instead it periodically checks for updates to these lists and, because of this it supports WoW patches with little delay and zero involvement.
aHawk (should always be typed aHawk
, should always be said a hawk
, derives
from Auction Hawker
) was built when I was playing WoW and had to buy some
profession reagents but I could only get other such sites to update me on the
reagents' availability hourly (by writing a little program, they have no
notification options), so I needed something that could update me more often
and that would be easier to add additional item monitors too.
Notifications are issued when an item is available in a check and it wasn't in the last two checks.
- Email
- Emails are sent when the item is available
- IFTTT
- Triggers IFTTT Maker recipes when the item is available
- API
- Gives user token and link to add permitted IP addresses, using the token they can use the API; triggers nothing
- RSS
- RSS feed with the current availability of the item
- note /api/
realm name
/item id
.rss - note not a subscription option; return the same as /availabilityOf/ but
only allows
now
for time; can be used for RSS displays or triggering IFTTT RSS recipes
- JSON
- JSON encoded current availability of the item
- note /api/
realm name
/item id
.json - note not a subscription option; return the same as /availabilityOf/ but
only allows
now
for time; can be used in a custom application
- Have Python (3.5 tested), PHP (7.3 tested), the ability to make cron jobs, and a way to compile Stylus.
- Have the required Python packages (simplejson)
- Get a Battle.net API key.
- Configure
aHawk/assets/php/config.php
. - Compile the Stylus (
stylus -c
inaHawk/assets/css
directory) - Put the aHawk source onto your server.
- Add
aHawk/assets/py/cron.py
to your cron jobs, running it between every 1min andcheckEvery
min (cron.py will only perform checks as often ascheckEvery
minutes anyways). - Run the list generators in
aHawk/assets/py
(realms and items).
aHawk was made in 2015 by Ethan Henderson (Zbee) <ethan@zbee.me>
Blizzard owns everything to do with the Battle.net API and World of Warcraft (WoW), and this is in no way affiliated with them.
Hawk image created by /wg/ in an IMT.
This is public domain, I don't care what you do with it (though if you use it, it'd be great if you'd link to this repo); but, I do have an instance running at ahawk.zbee.me.
- Tracking items
- Add items
- Check on items
- Indicate coverage of an item (100%=tracking all day or longer, less%= started tracking sometime in last 24 hours)
- Determine player with largest share of an item
- Notifications
- Subscribe to items
- Notifications from subscriptions
- Cancel old subscriptions
- Cancel checks with no subscriptions
- See tracked items
- API
- API JSON endpoint
- API RSS endpoint
- API tokens
- API IP management
- API /availabilityOf/ endpoint
- API /quantityOf/ endpoint
- API /lowestPricePer/ endpoint
- API /everythingAbout/ endpoint
- API rate-limiting
- API endpoint for entire realm's items
- API endpoint for item across all realms
- API endpoint for owner of item
- Security
- Require HTTPS
- Access to page support scripts
- Access to Python
- Access to PHP
- Access to Data
- Access to Logs
- Bots on non-api pages
- reCAPTCHA on forms
- Backups (hourly, kept for 2 days?)
- Determine bare-minimum permissions for entire thing to work, minimize
- Optimization
- Caching
- Server generating static files
- Compressing static files
- Storing old static check files
- Configuration
- Make system care about config
- Make as much as possible into options
- Statistics
- Items added
- Notifications given
- API usage
- Subscription cancelling
- Manual
- Auto
- Page loads
- Data transfer
- Other
- Help pages on the site
- Wiki documenting system
- Configuration for monetization
- Configuration for user accounts instead of anonymous subscriptions
- WoW Addon that notifies you in-game when an item is available
- Recreate style that capitalizes on the hawk, is night-friendly, and minimizes clicks and searching
- Final
- Make sure everything is standardized
- Write tests