Warning
This project is deprecated. Please use [AzerothAuctionAssassin](https://github.com/ff14-advanced-market-search/AzerothAuctionAssassin) instead.
A super fast Blizzard AH sniper created by Saddlebag Exchange.
Please dontate to our patreon so we can keep the project running. If you need help setting it up, our creator will personally help any patreon subscribers.
https://www.patreon.com/indopan
This amazing tool runs every time the blizzard API updates each hour and then alerts you on discord.
Blizzard only sends out new AH data to the API one time per hour, the rest of the time MEGA-ALERTS will sit and wait for new data to come out before sending more alerts. You can see what minute of each hour blizzard releases new data for your realm here on our upload times page to find when new alerts will be sent to you.
cohenaj194/mega-alerts:latest
cohenaj194/mega-alerts:1.9
cohenaj194/mega-alerts:1.8
cohenaj194/mega-alerts:1.7
cohenaj194/mega-alerts:1.6
cohenaj194/mega-alerts:1.5
cohenaj194/mega-alerts:1.4
cohenaj194/mega-alerts:1.3
cohenaj194/mega-alerts:1.2
cohenaj194/mega-alerts:1.1
cohenaj194/mega-alerts:1.0
Last Stable Version: 1.9
Install Docker used to run the sniper. You may also need to open a command prompt and run wsl --install --web-download to get docker desktop running.
Go to https://develop.battle.net/access/clients and create a client, get the blizzard oauth client and secret ids. You will use these values for the WOW_CLIENT_ID and WOW_CLIENT_SECRET later on.
Setup a discord channel with a webhook url for sending the alert messages You will use this for the MEGA_WEBHOOK_URL later on.
Download the docker image, if on windows open a command prompt to run this.
docker pull cohenaj194/mega-alerts
This is what you will set for DESIRED_ITEMS or you can set {} if you only want to snipe pets.
For example the following looks for item id 194641 (which is the elemental lariat) for under 500k and another item for under 40k.
{"194641": 500000, "159840":40000}
Paste that into this json checker if you want to make sure your json is valid
You can find that id at the end of the undermine exchange link for the item https://undermine.exchange/#us-thrall/194641 or if you look it up on wowhead the url also has the item id https://www.wowhead.com/item=194641/design-elemental-lariat
You can also use our item id to name lookup tool, which makes this even easier.
This is what you will set for DESIRED_PETS or you can set {} if you only want to snipe regular items.
For example the following looks for pet species id 3390 (which is the Sophic Amalgamation) for under 3K.
{"3390": 3000}
You can find that id at the end of the undermine exchange link for the item next to 82800 (which is the item id for pet cages) https://undermine.exchange/#us-suramar/82800-3390.
We now have an extra option similar to the DESIRED_ITEMS or DESIRED_PETS for sniping items based on ilvl. This also lets you search for items with specific item levels and leech, sockets, speed or avoidance.
To enable this set the env var DESIRED_ILVL with json similar to the following. This example looks for items with over an ilvl of 360 with a speed stat:
{"ilvl": 424, "buyout": 1000, "sockets": false, "speed": true, "leech": false, "avoidance": false}
If we change this to and set "sockets": true then it will show items over an ilvl of 360 with a speed stat or a socket:
{"ilvl": 424, "buyout": 1000, "sockets": true, "speed": true, "leech": false, "avoidance": false}
Even if you are not going to run directly in python then you should still save this somewhere in a text file.
With whatever method you choose you will provide all the details the code needs in Environmental Variables. You must provide at least the following:
MEGA_WEBHOOK_URLWOW_CLIENT_IDWOW_CLIENT_SECRETWOW_REGION either EU or NADESIRED_ITEMS, DESIRED_PETS or DESIRED_ILVLWe also have the following optional env vars you can add in to change alert behavior, but you dont need to as all have default values when not manually set:
DEBUG="true" This will instantly trigger a scan on all realms against your inputs, this will only run once and then exit the script or container so use it to debug and make sure your data is working.SHOW_BID_PRICES=true Bid prices below your price limit will also be shown (default false)WOWHEAD_LINK=true Uses wowhead links instead of undermine and shows pictures, but the message length will be longer (default false)SCAN_TIME_MIN=-1 increase or decrease the minutes before or at the data update time to start scanning (default to keep scanning 1 min after the data updates).SCAN_TIME_MAX=1 increase or decrease the minutes after the data updates to stop scanning (default to keep scanning 3 min after the data updates).MEGA_THREADS=100 increase or decrease the threadcount (default to scan 48 realms at once)(more threads = faster scans, but doing more threads then realms is pointless).REFRESH_ALERTS="false" if set to false then you will not see the same alert more than once (default true)NO_RUSSIAN_REALMS="true" set this to true if you are on EU and do not want to get alerts from russian realmsIMPORTANT_EMOJI=🔥 changes the separators from ==== to whatever emoji you set.In docker desktop download the image and click run to run it. It will then give you the option to add variables.
Click to add more variables in and put the variable names in with your values
You can use any combination of DESIRED_ITEMS, DESIRED_PETS, DESIRED_ILVL or DESIRED_ILVL_LIST but at least one must be set.
Make sure to set WOW_REGION with either EU or NA
docker run -dit \
--name wow-test \
--env MEGA_WEBHOOK_URL=$MEGA_WEBHOOK_URL \
--env WOW_CLIENT_ID=$WOW_CLIENT_ID \
--env WOW_CLIENT_SECRET=$WOW_CLIENT_SECRET \
--env WOW_REGION=EU \
--env DESIRED_ITEMS='{"194641": 500000, "159840":40000}' \
--env DESIRED_PETS='{"3390": 2700}' \
cohenaj194/mega-alerts
Item Selection section of the guide)Run these commands for the initial file setup:
mkdir -p ./user_data/mega/
touch ./user_data/mega/desired_ilvl.json
touch ./user_data/mega/desired_ilvl_list.json
touch ./user_data/mega/desired_items.json
touch ./user_data/mega/desired_pets.json
touch ./user_data/mega/mega_data.json
echo "{}" > ./user_data/mega/desired_ilvl.json
echo "[]" > ./user_data/mega/desired_ilvl_list.json
echo "{}" > ./user_data/mega/desired_items.json
echo "{}" > ./user_data/mega/desired_pets.json
echo "{}" > ./user_data/mega/mega_data.json
You can then run it with docker compose using:
services:
mega-alerts:
container_name: mega-alerts
image: "cohenaj194/mega-alerts:latest"
restart: always
volumes:
- ./user_data/:/app/user_data/
environment:
- MEGA_WEBHOOK_URL=webhook
- WOW_CLIENT_ID=clientId
- WOW_CLIENT_SECRET=secret
- WOW_REGION=NA
- NO_RUSSION_REALMS=true
- IMPORTANT_EMOJI=🔥
docker compose up -d
Make sure the required packages are installed by running:
pip3 install -r requirements.txt
Then just run the mega-alerts.py file. To do this right click the mega alerts file and click run:
If you can run shell and python locally please run this instead of using kubernetes as you can easily exit it by hitting "control" + "c" on your keyboard:
bash auto_restart.sh
Download and start minikube with:
minikube start
Then update the https://github.com/ff14-advanced-market-search/mega-alerts/blob/main/kube-manifest.yml with your own environmental variables:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mega-alerts
spec:
selector:
matchLabels:
run: mega-alerts
replicas: 1
template:
metadata:
labels:
run: mega-alerts
spec:
containers:
- name: mega-alerts
image: cohenaj194/mega-alerts
env:
- name: MEGA_WEBHOOK_URL
value: "https://discord.com/api/webhooks/12345678/foobar"
# EU or NA
- name: WOW_REGION
value: "NA"
- name: WOW_CLIENT_ID
value: 123456789asdfghjk
- name: WOW_CLIENT_SECRET
value: 123456789asdfghjk
- name: DESIRED_ITEMS
value: '{"194641": 500000, "159840":40000}'
- name: DESIRED_PETS
value: '{"3390": 2700}'
Once you do that just run:
kubectl apply -f kube-manifest.yml
To update to the latest container version of mega alerts run:
kubectl rollout restart deployment/mega-alerts
You can then view the logs with:
pod_name=$(kubectl get pods | grep -v NAME | awk '{print $1}')
kubectl logs $pod_name
To update to the latest code version in docker desktop click the 3 dots next to the latest cohenaj194/mega-alerts image and then click pull.
To update to the latest code version in docker you can also run the following command in your terminal or windows command line:
docker pull cohenaj194/mega-alerts
To update python if you are running it locally go to the folder with mega-alerts and run the following:
git checkout main
git pull
If you have trouble setting up mega alerts or making a battle.net oauth token you can use the simple-alerts.py instead.
This is slower than mega alerts and can be out of sync at times, but it only requires a discord webhook url to run.
To set this up:
Add your webhook url and any extra alert times into the user_data/simple/simple-alerts.json
Generate your alert json using our price alert webpage and then paste it into the user_data/simple/simple-alerts.json.
Run the simple-alerts.py script:
We now have an extra option similar to the DESIRED_ITEMS or DESIRED_PETS for sniping items based on ilvl. This also lets you search for items with specific item levels and leech, sockets, speed or avoidance.
To enable this set the env var DESIRED_ILVL with json similar to the following.
This example will snipe anything based on ilvl (just make sure all the stats are set to false for ilvl alone):
{
"ilvl": 420,
"buyout": 1000,
"sockets": false,
"speed": false,
"leech": false,
"avoidance": false,
"item_ids": [204423, 204410]
}
This example looks for items with over an ilvl of 360 with a speed stat because "speed": true:
{
"ilvl": 424,
"buyout": 1000,
"sockets": false,
"speed": true,
"leech": false,
"avoidance": false,
"item_ids": [204966, 204920]
}
If we change this and also set "sockets": true then it will show items over an ilvl of 360 with a speed stat or a socket:
{
"ilvl": 424,
"buyout": 1000,
"sockets": true,
"speed": true,
"leech": false,
"avoidance": false,
"item_ids": [204948, 204951, 204965]
}
You can also remove the item_ids or leave it empty to snipe for all items at that ilvl (warning this may spam so many messages it breaks your webhook, if that happens just make a new webhook):
{
"ilvl": 424,
"buyout": 1000,
"sockets": false,
"speed": false,
"leech": false,
"avoidance": false
}
If you want to set specific snipes for multiple different items with different prices or ilvls then you can set a list and give it to DESIRED_ILVL_LIST:
[
{"ilvl": 457, "buyout":175001, "sockets": false, "speed": false, "leech": false, "avoidance": false,"item_ids": [208420]},
{"ilvl": 470, "buyout": 220001, "sockets": true, "speed": false, "leech": true, "avoidance": true,"item_ids": [208426, 208428, 208431]},
{"ilvl": 483, "buyout": 1200001, "sockets": false, "speed": false, "leech": true, "avoidance": false,"item_ids": [208426, 208427]}
]
Content type
Image
Digest
sha256:47c81c184…
Size
41 MB
Last updated
21 days ago
docker pull cohenaj194/mega-alerts