Overwatch queueing is very annoying to me: sometimes it is extremely slow, and I want to leave my desk to do some workout or drown my head into a book. However I won't be able to know when the queue is done if i am not continuously checking the screen. Someone like large streamers may choose to browser youtubes while waiting, or they can just leave the speaker playing sound that when the queue is done he can hear it, which is also a huge mind burden. As an FPS game you have to rely on the headphone to hear the location of enemy, so it would be tiring to plug in plug out your headphone while queue. I want to make a device that can notify me when the queue is done, so I can leave my desk and do other things. It could also serves as a good practice for python autmation.
Most of the exsisiting solutions are for overwatch 1, and use a graphic solution: read the screen, parse the text in the photo, and then send a notification. I tried to dig about whether there is a way to get the queue status from the game: like do packet sniffing or get an API.
Packet sniffing seems not achievable, as the game must be using some kind of asymmetric encryption. Also I tried to get an api from the official API(https://develop.battle.net/) but it seems every time you tried to log in it automatically log you out. Turns out metamask addon for chrome somehow result in unkown bugs here. I can still log in with incongnito mode. The api is easy to get, but its just about the game data like player info. It would be nice to have a small web application to track your sr rank or win/lose rate, but there is not even an api for overwatch2 yet.
Looks like the graphic solution is the only way to go.
When queueing : the window performs like this:
Anyway, If your queue is done, you will have an orange [ready] Block. We can detect if there is an orange one with ready
Or we can monitor the top right small blue. We can see if the pixel is changed, or we can try to read the text.
https://www.youtube.com/watch?v=5OEbsR5N59w
[x] take a picture of the overwatch window
apparently “take a video” is not acceptable. Take a picture every 15 second is fine.
Result: Works perfectly with multiple monitor