Browse Source

Fix send_friend_request not working (fixes #307)

pull/10109/head
dolfies 3 years ago
parent
commit
d16381a0b2
  1. 21
      discord/client.py
  2. 2
      discord/http.py

21
discord/client.py

@ -87,7 +87,6 @@ if TYPE_CHECKING:
from .channel import DMChannel from .channel import DMChannel
from .message import Message from .message import Message
from .member import Member from .member import Member
from .relationship import Relationship
from .voice_client import VoiceProtocol from .voice_client import VoiceProtocol
from .types.snowflake import Snowflake as _Snowflake from .types.snowflake import Snowflake as _Snowflake
@ -2339,27 +2338,25 @@ class Client:
return GroupChannel(me=self.user, data=data, state=state) # type: ignore # user is always present when logged in return GroupChannel(me=self.user, data=data, state=state) # type: ignore # user is always present when logged in
@overload @overload
async def send_friend_request(self, user: BaseUser, /) -> Relationship: async def send_friend_request(self, user: BaseUser, /) -> None:
... ...
@overload @overload
async def send_friend_request(self, user: str, /) -> Relationship: async def send_friend_request(self, user: str, /) -> None:
... ...
@overload @overload
async def send_friend_request(self, username: str, discriminator: str, /) -> Relationship: async def send_friend_request(self, username: str, discriminator: str, /) -> None:
... ...
async def send_friend_request(self, *args: Union[BaseUser, str]) -> Relationship: async def send_friend_request(self, *args: Union[BaseUser, str]) -> None:
"""|coro| """|coro|
Sends a friend request to another user. Sends a friend request to another user.
This function can be used in multiple ways. This function can be used in multiple ways.
.. versionchanged:: 2.0 .. versionadded:: 2.0
All parameters are now positional-only.
.. code-block:: python .. code-block:: python
@ -2390,11 +2387,6 @@ class Client:
Sending the friend request failed. Sending the friend request failed.
TypeError TypeError
More than 2 parameters or less than 1 parameter was passed. More than 2 parameters or less than 1 parameter was passed.
Returns
-------
:class:`.Relationship`
The new relationship.
""" """
username: str username: str
discrim: str discrim: str
@ -2409,8 +2401,7 @@ class Client:
raise TypeError(f'send_friend_request() takes 1 or 2 arguments but {len(args)} were given') raise TypeError(f'send_friend_request() takes 1 or 2 arguments but {len(args)} were given')
state = self._connection state = self._connection
data = await state.http.send_friend_request(username, discrim) await state.http.send_friend_request(username, discrim)
return Relationship(state=state, data=data)
async def applications(self, *, with_team_applications: bool = True) -> List[Application]: async def applications(self, *, with_team_applications: bool = True) -> List[Application]:
"""|coro| """|coro|

2
discord/http.py

@ -2166,7 +2166,7 @@ class HTTPClient:
return self.request(r, **kwargs) return self.request(r, **kwargs)
def send_friend_request(self, username, discriminator): # TODO: return type def send_friend_request(self, username, discriminator) -> Response[None]:
r = Route('POST', '/users/@me/relationships') r = Route('POST', '/users/@me/relationships')
props = choice((ContextProperties._from_add_friend_page, ContextProperties._from_group_dm)) # Friends, Group DM props = choice((ContextProperties._from_add_friend_page, ContextProperties._from_group_dm)) # Friends, Group DM
payload = {'username': username, 'discriminator': int(discriminator)} payload = {'username': username, 'discriminator': int(discriminator)}

Loading…
Cancel
Save