Browse Source

Pass proxy information to interactions and webhooks

Fix #7918
pull/7999/head
Rapptz 3 years ago
parent
commit
4dd5cc2bc9
  1. 41
      discord/interactions.py
  2. 204
      discord/webhook/async_.py

41
discord/interactions.py

@ -356,10 +356,13 @@ class Interaction:
raise ClientException('Channel for message could not be resolved') raise ClientException('Channel for message could not be resolved')
adapter = async_context.get() adapter = async_context.get()
http = self._state.http
data = await adapter.get_original_interaction_response( data = await adapter.get_original_interaction_response(
application_id=self.application_id, application_id=self.application_id,
token=self.token, token=self.token,
session=self._session, session=self._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
) )
state = _InteractionMessageState(self, self._state) state = _InteractionMessageState(self, self._state)
# The state and channel parameters are mocked here # The state and channel parameters are mocked here
@ -441,10 +444,13 @@ class Interaction:
previous_allowed_mentions=previous_mentions, previous_allowed_mentions=previous_mentions,
) )
adapter = async_context.get() adapter = async_context.get()
http = self._state.http
data = await adapter.edit_original_interaction_response( data = await adapter.edit_original_interaction_response(
self.application_id, self.application_id,
self.token, self.token,
session=self._session, session=self._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
payload=params.payload, payload=params.payload,
multipart=params.multipart, multipart=params.multipart,
files=params.files, files=params.files,
@ -475,10 +481,13 @@ class Interaction:
Deleted a message that is not yours. Deleted a message that is not yours.
""" """
adapter = async_context.get() adapter = async_context.get()
http = self._state.http
await adapter.delete_original_interaction_response( await adapter.delete_original_interaction_response(
self.application_id, self.application_id,
self.token, self.token,
session=self._session, session=self._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
) )
@ -561,7 +570,15 @@ class InteractionResponse:
if defer_type: if defer_type:
adapter = async_context.get() adapter = async_context.get()
params = interaction_response_params(type=defer_type, data=data) params = interaction_response_params(type=defer_type, data=data)
await adapter.create_interaction_response(parent.id, parent.token, session=parent._session, params=params) http = parent._state.http
await adapter.create_interaction_response(
parent.id,
parent.token,
session=parent._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
params=params,
)
self._responded = True self._responded = True
async def pong(self) -> None: async def pong(self) -> None:
@ -585,7 +602,15 @@ class InteractionResponse:
if parent.type is InteractionType.ping: if parent.type is InteractionType.ping:
adapter = async_context.get() adapter = async_context.get()
params = interaction_response_params(InteractionResponseType.pong.value) params = interaction_response_params(InteractionResponseType.pong.value)
await adapter.create_interaction_response(parent.id, parent.token, session=parent._session, params=params) http = parent._state.http
await adapter.create_interaction_response(
parent.id,
parent.token,
session=parent._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
params=params,
)
self._responded = True self._responded = True
async def send_message( async def send_message(
@ -671,10 +696,13 @@ class InteractionResponse:
view=view, view=view,
) )
http = parent._state.http
await adapter.create_interaction_response( await adapter.create_interaction_response(
parent.id, parent.id,
parent.token, parent.token,
session=parent._session, session=parent._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
params=params, params=params,
) )
@ -762,10 +790,13 @@ class InteractionResponse:
allowed_mentions=allowed_mentions, allowed_mentions=allowed_mentions,
) )
http = parent._state.http
await adapter.create_interaction_response( await adapter.create_interaction_response(
parent.id, parent.id,
parent.token, parent.token,
session=parent._session, session=parent._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
params=params, params=params,
) )
@ -797,12 +828,15 @@ class InteractionResponse:
parent = self._parent parent = self._parent
adapter = async_context.get() adapter = async_context.get()
http = parent._state.http
params = interaction_response_params(InteractionResponseType.modal.value, modal.to_dict()) params = interaction_response_params(InteractionResponseType.modal.value, modal.to_dict())
await adapter.create_interaction_response( await adapter.create_interaction_response(
parent.id, parent.id,
parent.token, parent.token,
session=parent._session, session=parent._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
params=params, params=params,
) )
@ -840,11 +874,14 @@ class InteractionResponse:
raise ValueError('cannot respond to this interaction with autocomplete.') raise ValueError('cannot respond to this interaction with autocomplete.')
adapter = async_context.get() adapter = async_context.get()
http = parent._state.http
params = interaction_response_params(type=InteractionResponseType.autocomplete_result.value, data=payload) params = interaction_response_params(type=InteractionResponseType.autocomplete_result.value, data=payload)
await adapter.create_interaction_response( await adapter.create_interaction_response(
parent.id, parent.id,
parent.token, parent.token,
session=parent._session, session=parent._session,
proxy=http.proxy,
proxy_auth=http.proxy_auth,
params=params, params=params,
) )

204
discord/webhook/async_.py

@ -129,6 +129,8 @@ class AsyncWebhookAdapter:
*, *,
payload: Optional[Dict[str, Any]] = None, payload: Optional[Dict[str, Any]] = None,
multipart: Optional[List[Dict[str, Any]]] = None, multipart: Optional[List[Dict[str, Any]]] = None,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
files: Optional[Sequence[File]] = None, files: Optional[Sequence[File]] = None,
reason: Optional[str] = None, reason: Optional[str] = None,
auth_token: Optional[str] = None, auth_token: Optional[str] = None,
@ -234,10 +236,12 @@ class AsyncWebhookAdapter:
*, *,
token: Optional[str] = None, token: Optional[str] = None,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
reason: Optional[str] = None, reason: Optional[str] = None,
) -> Response[None]: ) -> Response[None]:
route = Route('DELETE', '/webhooks/{webhook_id}', webhook_id=webhook_id) route = Route('DELETE', '/webhooks/{webhook_id}', webhook_id=webhook_id)
return self.request(route, session, reason=reason, auth_token=token) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, reason=reason, auth_token=token)
def delete_webhook_with_token( def delete_webhook_with_token(
self, self,
@ -245,10 +249,12 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
reason: Optional[str] = None, reason: Optional[str] = None,
) -> Response[None]: ) -> Response[None]:
route = Route('DELETE', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token) route = Route('DELETE', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token)
return self.request(route, session, reason=reason) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, reason=reason)
def edit_webhook( def edit_webhook(
self, self,
@ -257,10 +263,20 @@ class AsyncWebhookAdapter:
payload: Dict[str, Any], payload: Dict[str, Any],
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
reason: Optional[str] = None, reason: Optional[str] = None,
) -> Response[WebhookPayload]: ) -> Response[WebhookPayload]:
route = Route('PATCH', '/webhooks/{webhook_id}', webhook_id=webhook_id) route = Route('PATCH', '/webhooks/{webhook_id}', webhook_id=webhook_id)
return self.request(route, session, reason=reason, payload=payload, auth_token=token) return self.request(
route,
session=session,
proxy=proxy,
proxy_auth=proxy_auth,
reason=reason,
payload=payload,
auth_token=token,
)
def edit_webhook_with_token( def edit_webhook_with_token(
self, self,
@ -269,10 +285,12 @@ class AsyncWebhookAdapter:
payload: Dict[str, Any], payload: Dict[str, Any],
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
reason: Optional[str] = None, reason: Optional[str] = None,
) -> Response[WebhookPayload]: ) -> Response[WebhookPayload]:
route = Route('PATCH', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token) route = Route('PATCH', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token)
return self.request(route, session, reason=reason, payload=payload) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, reason=reason, payload=payload)
def execute_webhook( def execute_webhook(
self, self,
@ -280,6 +298,8 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
payload: Optional[Dict[str, Any]] = None, payload: Optional[Dict[str, Any]] = None,
multipart: Optional[List[Dict[str, Any]]] = None, multipart: Optional[List[Dict[str, Any]]] = None,
files: Optional[Sequence[File]] = None, files: Optional[Sequence[File]] = None,
@ -290,7 +310,16 @@ class AsyncWebhookAdapter:
if thread_id: if thread_id:
params['thread_id'] = thread_id params['thread_id'] = thread_id
route = Route('POST', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token) route = Route('POST', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token)
return self.request(route, session, payload=payload, multipart=multipart, files=files, params=params) return self.request(
route,
session=session,
proxy=proxy,
proxy_auth=proxy_auth,
payload=payload,
multipart=multipart,
files=files,
params=params,
)
def get_webhook_message( def get_webhook_message(
self, self,
@ -299,6 +328,8 @@ class AsyncWebhookAdapter:
message_id: int, message_id: int,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
thread_id: Optional[int] = None, thread_id: Optional[int] = None,
) -> Response[MessagePayload]: ) -> Response[MessagePayload]:
route = Route( route = Route(
@ -309,7 +340,7 @@ class AsyncWebhookAdapter:
message_id=message_id, message_id=message_id,
) )
params = None if thread_id is None else {'thread_id': thread_id} params = None if thread_id is None else {'thread_id': thread_id}
return self.request(route, session, params=params) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, params=params)
def edit_webhook_message( def edit_webhook_message(
self, self,
@ -318,6 +349,8 @@ class AsyncWebhookAdapter:
message_id: int, message_id: int,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
payload: Optional[Dict[str, Any]] = None, payload: Optional[Dict[str, Any]] = None,
multipart: Optional[List[Dict[str, Any]]] = None, multipart: Optional[List[Dict[str, Any]]] = None,
files: Optional[Sequence[File]] = None, files: Optional[Sequence[File]] = None,
@ -331,7 +364,16 @@ class AsyncWebhookAdapter:
message_id=message_id, message_id=message_id,
) )
params = None if thread_id is None else {'thread_id': thread_id} params = None if thread_id is None else {'thread_id': thread_id}
return self.request(route, session, payload=payload, multipart=multipart, files=files, params=params) return self.request(
route,
session=session,
proxy=proxy,
proxy_auth=proxy_auth,
payload=payload,
multipart=multipart,
files=files,
params=params,
)
def delete_webhook_message( def delete_webhook_message(
self, self,
@ -340,6 +382,8 @@ class AsyncWebhookAdapter:
message_id: int, message_id: int,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
thread_id: Optional[int] = None, thread_id: Optional[int] = None,
) -> Response[None]: ) -> Response[None]:
route = Route( route = Route(
@ -350,7 +394,7 @@ class AsyncWebhookAdapter:
message_id=message_id, message_id=message_id,
) )
params = None if thread_id is None else {'thread_id': thread_id} params = None if thread_id is None else {'thread_id': thread_id}
return self.request(route, session, params=params) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, params=params)
def fetch_webhook( def fetch_webhook(
self, self,
@ -358,9 +402,11 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
) -> Response[WebhookPayload]: ) -> Response[WebhookPayload]:
route = Route('GET', '/webhooks/{webhook_id}', webhook_id=webhook_id) route = Route('GET', '/webhooks/{webhook_id}', webhook_id=webhook_id)
return self.request(route, session=session, auth_token=token) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, auth_token=token)
def fetch_webhook_with_token( def fetch_webhook_with_token(
self, self,
@ -368,9 +414,11 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
) -> Response[WebhookPayload]: ) -> Response[WebhookPayload]:
route = Route('GET', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token) route = Route('GET', '/webhooks/{webhook_id}/{webhook_token}', webhook_id=webhook_id, webhook_token=token)
return self.request(route, session=session) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth)
def create_interaction_response( def create_interaction_response(
self, self,
@ -378,6 +426,8 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
params: MultipartParameters, params: MultipartParameters,
) -> Response[None]: ) -> Response[None]:
route = Route( route = Route(
@ -388,9 +438,16 @@ class AsyncWebhookAdapter:
) )
if params.files: if params.files:
return self.request(route, session=session, files=params.files, multipart=params.multipart) return self.request(
route,
session=session,
proxy=proxy,
proxy_auth=proxy_auth,
files=params.files,
multipart=params.multipart,
)
else: else:
return self.request(route, session=session, payload=params.payload) return self.request(route, session=session, proxy=proxy, proxy_auth=proxy_auth, payload=params.payload)
def get_original_interaction_response( def get_original_interaction_response(
self, self,
@ -398,6 +455,8 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
) -> Response[MessagePayload]: ) -> Response[MessagePayload]:
r = Route( r = Route(
'GET', 'GET',
@ -405,7 +464,7 @@ class AsyncWebhookAdapter:
webhook_id=application_id, webhook_id=application_id,
webhook_token=token, webhook_token=token,
) )
return self.request(r, session=session) return self.request(r, session=session, proxy=proxy, proxy_auth=proxy_auth)
def edit_original_interaction_response( def edit_original_interaction_response(
self, self,
@ -413,6 +472,8 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
payload: Optional[Dict[str, Any]] = None, payload: Optional[Dict[str, Any]] = None,
multipart: Optional[List[Dict[str, Any]]] = None, multipart: Optional[List[Dict[str, Any]]] = None,
files: Optional[Sequence[File]] = None, files: Optional[Sequence[File]] = None,
@ -423,7 +484,15 @@ class AsyncWebhookAdapter:
webhook_id=application_id, webhook_id=application_id,
webhook_token=token, webhook_token=token,
) )
return self.request(r, session, payload=payload, multipart=multipart, files=files) return self.request(
r,
session=session,
proxy=proxy,
proxy_auth=proxy_auth,
payload=payload,
multipart=multipart,
files=files,
)
def delete_original_interaction_response( def delete_original_interaction_response(
self, self,
@ -431,6 +500,8 @@ class AsyncWebhookAdapter:
token: str, token: str,
*, *,
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
) -> Response[None]: ) -> Response[None]:
r = Route( r = Route(
'DELETE', 'DELETE',
@ -438,7 +509,7 @@ class AsyncWebhookAdapter:
webhook_id=application_id, webhook_id=application_id,
webhook_token=token, webhook_token=token,
) )
return self.request(r, session=session) return self.request(r, session=session, proxy=proxy, proxy_auth=proxy_auth)
def interaction_response_params(type: int, data: Optional[Dict[str, Any]] = None) -> MultipartParameters: def interaction_response_params(type: int, data: Optional[Dict[str, Any]] = None) -> MultipartParameters:
@ -1058,7 +1129,7 @@ class Webhook(BaseWebhook):
.. versionadded:: 2.0 .. versionadded:: 2.0
""" """
__slots__: Tuple[str, ...] = ('session',) __slots__: Tuple[str, ...] = ('session', 'proxy', 'proxy_auth')
def __init__( def __init__(
self, self,
@ -1066,9 +1137,13 @@ class Webhook(BaseWebhook):
session: aiohttp.ClientSession, session: aiohttp.ClientSession,
token: Optional[str] = None, token: Optional[str] = None,
state: Optional[_State] = None, state: Optional[_State] = None,
proxy: Optional[str] = None,
proxy_auth: Optional[aiohttp.BasicAuth] = None,
) -> None: ) -> None:
super().__init__(data, token, state) super().__init__(data, token, state)
self.session: aiohttp.ClientSession = session self.session: aiohttp.ClientSession = session
self.proxy: Optional[str] = proxy
self.proxy_auth: Optional[aiohttp.BasicAuth] = proxy_auth
def __repr__(self) -> str: def __repr__(self) -> str:
return f'<Webhook id={self.id!r}>' return f'<Webhook id={self.id!r}>'
@ -1170,13 +1245,19 @@ class Webhook(BaseWebhook):
} }
state = channel._state state = channel._state
session = channel._state.http._HTTPClient__session http = state.http
return cls(feed, session=session, state=state, token=state.http.token) session = http._HTTPClient__session
proxy_auth = http.proxy_auth
proxy = http.proxy
return cls(feed, session=session, state=state, proxy_auth=proxy_auth, proxy=proxy, token=state.http.token)
@classmethod @classmethod
def from_state(cls, data: WebhookPayload, state: ConnectionState) -> Self: def from_state(cls, data: WebhookPayload, state: ConnectionState) -> Self:
session = state.http._HTTPClient__session # type: ignore http = state.http
return cls(data, session=session, state=state, token=state.http.token) session = http._HTTPClient__session # type: ignore
proxy_auth = http.proxy_auth
proxy = http.proxy
return cls(data, session=session, state=state, proxy_auth=proxy_auth, proxy=proxy, token=state.http.token)
async def fetch(self, *, prefer_auth: bool = True) -> Webhook: async def fetch(self, *, prefer_auth: bool = True) -> Webhook:
"""|coro| """|coro|
@ -1216,13 +1297,32 @@ class Webhook(BaseWebhook):
adapter = async_context.get() adapter = async_context.get()
if prefer_auth and self.auth_token: if prefer_auth and self.auth_token:
data = await adapter.fetch_webhook(self.id, self.auth_token, session=self.session) data = await adapter.fetch_webhook(
self.id,
self.auth_token,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
)
elif self.token: elif self.token:
data = await adapter.fetch_webhook_with_token(self.id, self.token, session=self.session) data = await adapter.fetch_webhook_with_token(
self.id,
self.token,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
)
else: else:
raise ValueError('This webhook does not have a token associated with it') raise ValueError('This webhook does not have a token associated with it')
return Webhook(data, self.session, token=self.auth_token, state=self._state) return Webhook(
data,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
token=self.auth_token,
state=self._state,
)
async def delete(self, *, reason: Optional[str] = None, prefer_auth: bool = True) -> None: async def delete(self, *, reason: Optional[str] = None, prefer_auth: bool = True) -> None:
"""|coro| """|coro|
@ -1258,9 +1358,18 @@ class Webhook(BaseWebhook):
adapter = async_context.get() adapter = async_context.get()
if prefer_auth and self.auth_token: if prefer_auth and self.auth_token:
await adapter.delete_webhook(self.id, token=self.auth_token, session=self.session, reason=reason) await adapter.delete_webhook(
self.id,
token=self.auth_token,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
reason=reason,
)
elif self.token: elif self.token:
await adapter.delete_webhook_with_token(self.id, self.token, session=self.session, reason=reason) await adapter.delete_webhook_with_token(
self.id, self.token, session=self.session, proxy=self.proxy, proxy_auth=self.proxy_auth, reason=reason,
)
async def edit( async def edit(
self, self,
@ -1328,19 +1437,48 @@ class Webhook(BaseWebhook):
raise ValueError('Editing channel requires authenticated webhook') raise ValueError('Editing channel requires authenticated webhook')
payload['channel_id'] = channel.id payload['channel_id'] = channel.id
data = await adapter.edit_webhook(self.id, self.auth_token, payload=payload, session=self.session, reason=reason) data = await adapter.edit_webhook(
self.id,
self.auth_token,
payload=payload,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
reason=reason,
)
if prefer_auth and self.auth_token: if prefer_auth and self.auth_token:
data = await adapter.edit_webhook(self.id, self.auth_token, payload=payload, session=self.session, reason=reason) data = await adapter.edit_webhook(
self.id,
self.auth_token,
payload=payload,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
reason=reason,
)
elif self.token: elif self.token:
data = await adapter.edit_webhook_with_token( data = await adapter.edit_webhook_with_token(
self.id, self.token, payload=payload, session=self.session, reason=reason self.id,
self.token,
payload=payload,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
reason=reason,
) )
if data is None: if data is None:
raise RuntimeError('Unreachable code hit: data was not assigned') raise RuntimeError('Unreachable code hit: data was not assigned')
return Webhook(data=data, session=self.session, token=self.auth_token, state=self._state) return Webhook(
data,
session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
token=self.auth_token,
state=self._state,
)
def _create_message(self, data, *, thread: Snowflake): def _create_message(self, data, *, thread: Snowflake):
state = _WebhookState(self, parent=self._state, thread=thread) state = _WebhookState(self, parent=self._state, thread=thread)
@ -1566,6 +1704,8 @@ class Webhook(BaseWebhook):
self.id, self.id,
self.token, self.token,
session=self.session, session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
payload=params.payload, payload=params.payload,
multipart=params.multipart, multipart=params.multipart,
files=params.files, files=params.files,
@ -1627,6 +1767,8 @@ class Webhook(BaseWebhook):
self.token, self.token,
id, id,
session=self.session, session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
thread_id=thread_id, thread_id=thread_id,
) )
return self._create_message(data, thread=thread) return self._create_message(data, thread=thread)
@ -1738,6 +1880,8 @@ class Webhook(BaseWebhook):
self.token, self.token,
message_id, message_id,
session=self.session, session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
payload=params.payload, payload=params.payload,
multipart=params.multipart, multipart=params.multipart,
files=params.files, files=params.files,
@ -1798,5 +1942,7 @@ class Webhook(BaseWebhook):
self.token, self.token,
message_id, message_id,
session=self.session, session=self.session,
proxy=self.proxy,
proxy_auth=self.proxy_auth,
thread_id=thread_id, thread_id=thread_id,
) )

Loading…
Cancel
Save