Skip to content

Commit eb3fd55

Browse files
committed
handle cloudflare bans
1 parent 24595bc commit eb3fd55

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

discord_webhook/async_webhook.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import logging
44
from contextlib import asynccontextmanager
55
from functools import partial
6+
from http.client import HTTPException
67

78
from . import DiscordWebhook
89

@@ -74,6 +75,8 @@ async def handle_rate_limit(self, response, request):
7475
"""
7576
while response.status_code == 429:
7677
errors = response.json()
78+
if not response.headers.get('Via'):
79+
raise HTTPException(errors)
7780
wh_sleep = (int(errors['retry_after']) / 1000) + 0.15
7881
logger.error(
7982
"Webhook rate limited: sleeping for {wh_sleep} seconds...".format(

discord_webhook/webhook.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import logging
44
import time
55
from functools import partial
6+
from http.client import HTTPException
67
from typing import Any, Dict, List, Optional, Tuple, Union, cast
78

89
import requests
@@ -409,6 +410,8 @@ def handle_rate_limit(self, response, request):
409410
"""
410411
while response.status_code == 429:
411412
errors = json.loads(response.content.decode("utf-8"))
413+
if not response.headers.get('Via'):
414+
raise HTTPException(errors)
412415
wh_sleep = (int(errors["retry_after"]) / 1000) + 0.15
413416
logger.error(f"Webhook rate limited: sleeping for {wh_sleep} seconds...")
414417
time.sleep(wh_sleep)

0 commit comments

Comments
 (0)