EionRobb / purple-discord

A libpurple/Pidgin plugin for Discord
GNU General Public License v3.0
373 stars 42 forks source link

Temporary IP ban from discord #410

Open halogod35 opened 2 years ago

halogod35 commented 2 years ago

OS: Windows XP Professional 32-bit SP3 Pidgin version: 2.14.1 libjson-glib-1.0.dll location: C:/Program Files/Pidgin/libjson-glib-1.0.dll libdiscord.dll location: C:/Program Files/Pidgin/plugins/libdiscord.dll

After installing everything according to the instructions, discord logged me out of everything. The message is as follows on their website now:

{"code": 0, "message": "You are being blocked from accessing our API temporarily due to exceeding our rate limits frequently. Please read our docs at https://discord.com/developers/docs/topics/rate-limits to prevent this moving forward."}

Steps to reproduce:

  1. Download and install fresh copy of Pidgin 2.14.1.
  2. Download and move libjson-glib-1.0.dll to C:/Program Files/Pidgin/libjson-glib-1.0.dll
  3. Download and move libdiscord.dll to C:/Program Files/Pidgin/plugins/libdiscord.dll
  4. Run program. Select discord from dropdown menu. Enter email and password only.
  5. Log in. Get temporary banned.
alexolog commented 2 years ago

That sounds like a serious problem. Is anyone else experiencing it? Did you try raising it up on the Pidgin discord? (not using 2.14.1 obviously)

Laezor commented 2 years ago

This happened to me also. I am using pidgin version 2.14.9 It seems to be ip temporary block. I can login if I turn on data from phone 429 responses are avoided by inspecting the rate limit headers documented above and by not making requests on exhausted buckets until after they have reset. 429 errors returned with X-RateLimit-Scope: shared are not counted against you.

alexolog commented 2 years ago

@halogod35, did you use Pidgin 2.14.1 or Pidgin 2.14.10? 2.14.1 is quite old.

halogod35 commented 2 years ago

I am using Pidgin 2.14.1 for the most compatibility with Windows XP.

I tried the offline Pidgin 2.14.10 installer. It gives me a GetTickCount64 error with Kernal32.dll. Which I assume is the fact that GetTickCount64 is for Vista+.

My goal here is to be able to get Discord running on XP 32bit. Here's the guide explaining how to install your plugin into Pidgin. This is hotlinked on the Windows XP subreddit wiki (likely will have more people downloading 2.14.1 specifically).

Edit: sorry, I hit close with comment instead of comment.

szr8 commented 2 years ago

On 6/22/2022 15:19 PM, halogod35 wrote:

I am using Pidgin 2.14.1 for the most compatibility with Windows XP.

I tried the offline Pidgin 2.14.10 installer. It gives me a GetTickCount64 error with Kernal32.dll. Which I assume is the fact that GetTickCount64 is for Vista+.

My goal here is to be able to run discord on XP.

If you are willing to use a hex editor, open libwinpthread-1.dll in the Pidgin root directory and search for GetTickCount64 and change the 64 (hex 36 34) to hex 00 00 and save. This will make it use the older GetTickCount() function instead which will allow Pidgin to run. Tested up to the latest version of Pidgin, 2.14.10 on an XP Pro machine used for legacy programs and games.

-- szr

skipster1337 commented 2 years ago

Hey, I'm the maintainer of the website that was linked here. Just wondering - was the IP ban issue fixed after using the latest "patched" Pidgin? I would like to start using this plugin again but can't because of the frequent bans.

skipster1337 commented 2 years ago

Nope, issue still persists. Looks like just getting channel data (like online members) from all the channels at once makes Discord ban your IP temporarily. I could see in the logs that it was making requests extremely fast, which were related to getting info for member lists. It doesn't help that when you log in for the first time, it opens literally every single Discord channel you have. It makes me wonder if there's some way to get this info only when opening a specific chatroom?

skipster1337 commented 2 years ago

Sure enough! The issue is fixed when adding a new Discord account in Pidgin and disabling the "Fetch unread messages when account connects" option in the Advanced tab before connecting. This way, the huge amount of new chat tabs will not open and will not get you IP banned, but previous messages will still appear in channels when opened on demand, and pings / DMs will still automatically open when they appear.

LurkerHub commented 11 months ago

Disabling "Fetch unread messages when account connects" loses DMs sent while offline. A proper rate limit is needed.

LurkerHub commented 8 months ago

Sure enough! The issue is fixed when adding a new Discord account in Pidgin and disabling the "Fetch unread messages when account connects" option in the Advanced tab before connecting. This way, the huge amount of new chat tabs will not open and will not get you IP banned, but previous messages will still appear in channels when opened on demand, and pings / DMs will still automatically open when they appear.

It does not work if anyone tags you, @here or @everyone on a busy channel.