malmeloo / wiimmfi-rpc

A Discord rich presence implementation for Wiimmfi
GNU General Public License v3.0
34 stars 3 forks source link

WiimmfiCheckThread Fatal Error #22

Closed StarSlayer1984 closed 2 years ago

StarSlayer1984 commented 2 years ago

When trying to view online players, or manually adding a friend code, a fatal error occurs in the "WiimmfiCheckThread". I have pasted an example log below.

I believe that this error may be due to the recent Wiimmfi structure updates due to the recent DDOS attack on the service.

Thanks in advance!

------------ [EXCEPTION RAPPORT AT Mon Nov 1 10:03:51 2021] ------------ Traceback (most recent call last): File "util\threading.py", line 76, in run File "util\wiimmfi.py", line 194, in execute File "util\wiimmfi.py", line 233, in get_online_players File "requests\models.py", line 941, in raise_for_status requests.exceptions.HTTPError: 503 Server Error: Service Temporarily Unavailable for url: https://wiimmfi.de/stats/game/RMCE

StarSlayer1984 commented 2 years ago

The new status page for Mario Kart Wii is https://wiimmfi.de/stats/game/mariokartwii

I think that the status pages are by game name, not by game ID anymore.

brysonsteck commented 2 years ago

Regardless of what the new link is, the DDoS protection still causes the app to return the 503 error.

$ ping https://wiimmfi.de/stats/game/mariokartwii
ping: https://wiimmfi.de/stats/game/mariokartwii: Name or service not known

As another developer of an app that requests info from Wiimmfi, this is probably the state for all related software at the moment.

malmeloo commented 2 years ago

Hey! Thank you for bringing up this issue.

I am afraid that this is indeed related to wiimmfi's recent DDoS protection, which is blocking automated tools such as mine. I thought the tool started working again a little bit ago, but either they changed it, or I was mistaken.


The new status page for Mario Kart Wii is wiimmfi.de/stats/game/mariokartwii

I think that the status pages are by game name, not by game ID anymore.

I can confirm that polling the game status by ID still works; it's just very picky about which region ID it wants. I made the game lookup function for this exact reason, so I recommend you use that (although that is probably also broken right now, if you've used it before it should use the available cache instead.) Either that, or use RMCJ as game ID. I can see you are currently using RMCE, which won't work. Note that this is not a fix for the DDoS protection problem, so it won't magically fix the program.


Regardless of what the new link is, the DDoS protection still causes the app to return the 503 error.

$ ping https://wiimmfi.de/stats/game/mariokartwii
ping: https://wiimmfi.de/stats/game/mariokartwii: Name or service not known

As another developer of an app that requests info from Wiimmfi, this is probably the state for all related software at the moment.

You're right about the 503, but you cannot ping websites like that, as ping doesn't understand http. Try curl for example:

mike@pop-os:~$ curl -I wiimmfi.de
HTTP/1.1 503 Service Temporarily Unavailable
...
malmeloo commented 2 years ago

I added a notice to the readme to make this clear, I'll close this issue if you don't mind as this is not something that I'll be able to fix.