mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-07 20:28:38 +00:00
parent
1df3ed861c
commit
4dd5cc2bc9
@ -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,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -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…
x
Reference in New Issue
Block a user