diff --git a/download_bookmarks_example.py b/download_bookmarks_example.py index a5926e6..5abd52c 100644 --- a/download_bookmarks_example.py +++ b/download_bookmarks_example.py @@ -18,29 +18,25 @@ freesound_client.set_token(access_token, "oauth") path_name = os.path.join(os.getcwd(), "tmp") -try: - os.mkdir(path_name) -except: - pass +os.makedirs(path_name, exist_ok=True) -user = freesound_client.get_user("apitest") -print("Username:", user.username) - -bookmarks_results_pager = user.get_bookmark_categories(page_size=100) +bookmarks_results_pager = freesound_client.get_my_bookmark_categories(page_size=100) print("Num categories:", bookmarks_results_pager.count) for bookmark in bookmarks_results_pager: print("\tCategory:", bookmark.name) print("\tNum sounds:", bookmark.num_sounds) - sounds_results_pager = user.get_bookmark_category_sounds(bookmark.id, fields="id,name,type", page_size=1) + sounds_results_pager = freesound_client.get_my_bookmark_category_sounds( + bookmark.id, fields="id,name,type", page_size=1 + ) while True: for sound in sounds_results_pager: print("\t\tDownloading:", sound.name) # Some sound filenames already end with the type... - if sound.name.endswith(sound.type): + if sound.name.lower().endswith(sound.type.lower()): filename = sound.name else: filename = f"{sound.name}.{sound.type}" diff --git a/examples.py b/examples.py index ecf4542..1da7b63 100644 --- a/examples.py +++ b/examples.py @@ -200,21 +200,3 @@ ) print(sound.analysis.lowlevel.spectral_flatness_db.mean) print() - -# Getting bookmark categories from a user example -print("User bookmark categories:") -print("-----------") -user = freesound_client.get_user("frederic.font") -print("User name:", user.username) -results_pager = user.get_bookmark_categories(page_size=10) -print("Num results:", results_pager.count) -print("\t----- PAGE 1 -----") -for bookmark_category in results_pager: - print( - "\t-", - bookmark_category.name, - "with", - bookmark_category.num_sounds, - ) - print("sounds at", bookmark_category.url) -print() diff --git a/freesound.py b/freesound.py index 1377dd2..176944c 100644 --- a/freesound.py +++ b/freesound.py @@ -44,11 +44,11 @@ class URIS: LOGOUT = '/api-auth/logout/' LOGOUT_AUTHORIZE = '/oauth2/logout_and_authorize/' ME = '/me/' + ME_BOOKMARK_CATEGORIES = '/me/bookmark_categories/' + ME_BOOKMARK_CATEGORY_SOUNDS = '/me/bookmark_categories//sounds/' USER = '/users//' USER_SOUNDS = '/users//sounds/' USER_PACKS = '/users//packs/' - USER_BOOKMARK_CATEGORIES = '/users//bookmark_categories/' - USER_BOOKMARK_CATEGORY_SOUNDS = '/users//bookmark_categories//sounds/' # noqa PACK = '/packs//' PACK_SOUNDS = '/packs//sounds/' PACK_DOWNLOAD = '/packs//download/' @@ -176,6 +176,30 @@ def get_pack(self, pack_id): uri = URIS.uri(URIS.PACK, pack_id) return FSRequest.request(uri, {}, self, Pack) + def get_my_bookmark_categories(self, **params): + """ + Get bookmark categories for the authenticated user. + Relevant params: page, page_size + https://freesound.org/docs/api/resources_apiv2.html#my-bookmark-categories + Requires OAuth2 authentication. + + >>> c.get_my_bookmark_categories() + """ + uri = URIS.uri(URIS.ME_BOOKMARK_CATEGORIES) + return FSRequest.request(uri, params, self, GenericPager) + + def get_my_bookmark_category_sounds(self, category_id, **params): + """ + Get sounds in a bookmark category for the authenticated user. + Relevant params: page, page_size, fields, descriptors, normalized + https://freesound.org/docs/api/resources_apiv2.html#my-bookmark-category-sounds + Requires OAuth2 authentication. + + >>> c.get_my_bookmark_category_sounds(0) + """ + uri = URIS.uri(URIS.ME_BOOKMARK_CATEGORY_SOUNDS, category_id) + return FSRequest.request(uri, params, self, Pager) + def set_token(self, token, auth_type="token"): """ Set your API key or Oauth2 token @@ -479,28 +503,6 @@ def get_packs(self, **params): uri = URIS.uri(URIS.USER_PACKS, self.username) return FSRequest.request(uri, params, self.client, GenericPager) - def get_bookmark_categories(self, **params): - """ - Get user bookmark categories. - Relevant params: page, page_size - https://freesound.org/docs/api/resources_apiv2.html#user-bookmark-categories - - >>> u.get_bookmark_categories() - """ - uri = URIS.uri(URIS.USER_BOOKMARK_CATEGORIES, self.username) - return FSRequest.request(uri, params, self.client, GenericPager) - - def get_bookmark_category_sounds(self, category_id, **params): - """ - Get user bookmarks. - Relevant params: page, page_size, fields, descriptors, normalized - https://freesound.org/docs/api/resources_apiv2.html#user-bookmark-category-sounds - - >>> p = u.get_bookmark_category_sounds(0) - """ - uri = URIS.uri(URIS.USER_BOOKMARK_CATEGORY_SOUNDS, self.username, category_id) - return FSRequest.request(uri, params, self.client, Pager) - def __repr__(self): return '' % self.username