cedws / discord-delete

Tool to delete Discord message history
GNU General Public License v3.0
125 stars 18 forks source link

Add an option to ignore Discord's strict rate-limiting #25

Closed ghost closed 3 years ago

cedws commented 3 years ago

Discord's rate limit has definitely gotten stricter recently, but I haven't seen any 30 minute timeouts. Could you post some logs showing this (censoring IDs and other information)? Keep in mind that the rate limits usually can't be ignored - if the server has asked the client to wait, it will ignore any requests until the timeout is up.

e4c6 commented 3 years ago

Hey, i just received 33m20s timeouts repeatedly.

time="2020-09-23T15:21:11+03:00" level=info msg="Server asked us to sleep for 33m20s"

cedws commented 3 years ago

Woah.

e4c6 commented 3 years ago

Do you have 2FA/MFA enabled?

Nope

If you stop the program and run it again, do you get immediately timed out again?

No it actually doesnt delete anything tho e.g

time="2020-09-23T15:22:32+03:00" level=info msg="No more messages to delete for channel 535905856131432479"

time="2020-09-23T15:25:47+03:00" level=info msg="No more messages to delete for channel 535905856131432479"

How long does it usually run before timeouts this long?

Deletes exactly 10 messages before it timeouts for 33 min 20 sec

Does this happen with the previous version?

Will check and report back

cedws commented 3 years ago

One more thing - can you send the line above the timeout, should look something like Server returned status ....

cedws commented 3 years ago

Nevermind... I see the issue. 33m20s = exactly 2000 seconds. The most recent build moved to API v8 which seemed to change timeout intervals to floats (why on earth) which represent the number of seconds to wait. But they didn't do this for all status codes. HTTP 202 = { "retry_after": 2000 } HTTP 429 = { "retry_after": 1.234 } Ah well, my fault for adopting it too quickly. Reverting and putting out a new build now.