Skip to content

Commit

Permalink
User emails
Browse files Browse the repository at this point in the history
  • Loading branch information
7x11x13 committed Jun 18, 2024
1 parent ccf9d06 commit c12f760
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
12 changes: 10 additions & 2 deletions soundcloud/soundcloud.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_origin(tp):
from .resource.message import Message
from .resource.playlist import AlbumPlaylist, BasicAlbumPlaylist
from .resource.track import BasicTrack, Track
from .resource.user import User, UserStatus
from .resource.user import User, UserEmail, UserStatus
from .resource.web_profile import WebProfile

T = TypeVar("T")
Expand Down Expand Up @@ -82,6 +82,7 @@ def __init__(self, client_id: str = None, auth_token: str = None, user_agent: st
"user_conversation_messages": CollectionRequest[Message](self, "/users/{user_id}/conversations/{conversation_id}/messages", Message),
"user_conversations": CollectionRequest[Conversation](self, "/users/{user_id}/conversations", Conversation),
"user_conversations_unread": CollectionRequest[Conversation](self, "/users/{user_id}/conversations/unread", Conversation),
"user_emails": CollectionRequest[UserEmail](self, "/users/{user_id}/emails", UserEmail),
"user_featured_profiles": CollectionRequest[User](self, "/users/{user_id}/featured-profiles", User),
"user_followers": CollectionRequest[User](self, "/users/{user_id}/followers", User),
"user_followings": CollectionRequest[User](self, "/users/{user_id}/followings", User),
Expand Down Expand Up @@ -288,7 +289,8 @@ def get_track_reposters(self, track_id: int, **kwargs) -> Generator[User, None,
def get_track_original_download(self, track_id: int, token: str = None) -> Optional[str]:
"""
Get track original download link. If track is private,
requires secret token to be provided (last part of secret URL)
requires secret token to be provided (last part of secret URL).
Requires authentication.
"""
if token:
download = self.requests["track_original_download"](track_id=track_id, secret_token=token)
Expand Down Expand Up @@ -343,6 +345,12 @@ def get_unread_conversations(self, user_id: int, **kwargs) -> Generator[Conversa
"""
return self.requests["user_conversations_unread"](user_id=user_id, **kwargs)

def get_user_emails(self, user_id: int, **kwargs) -> Generator[UserEmail, None, None]:
"""
Get user's email addresses. Requires authentication.
"""
return self.requests["user_emails"](user_id=user_id, **kwargs)

def get_user_featured_profiles(self, user_id: int, **kwargs) -> Generator[User, None, None]:
"""
Get profiles featured by this user
Expand Down
5 changes: 5 additions & 0 deletions tests/test_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,8 @@ def test_user_links(client: SoundCloud):
user = client.get_user(992430331)
profiles = client.get_user_links(user.urn)
assert profiles[0].title == "test"


def test_user_emails(client: SoundCloud):
email = next(client.get_user_emails(790976431))
assert email.address.endswith("gmail.com")

0 comments on commit c12f760

Please sign in to comment.