diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3245daf5a2c62f1174d9f07f4726f4ca258dc1b6..6ca89a0aaafbf61d89f2fbf66ba428570fca43b8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,7 +18,7 @@ pytest: - apk add poetry - poetry install script: - - poetry run pytest --cov-report xml --cov-report term-missing:skip-covered --cov=funkwhale_api_client --junitxml=report.xml tests + - poetry run pytest --cov-report xml --cov-report term-missing:skip-covered --cov=funkwhale_api_client/models --junitxml=report.xml tests/unit artifacts: when: always reports: diff --git a/funkwhale_api_client/api/activity/activity_list.py b/funkwhale_api_client/api/activity/get_activity.py similarity index 100% rename from funkwhale_api_client/api/activity/activity_list.py rename to funkwhale_api_client/api/activity/get_activity.py diff --git a/funkwhale_api_client/api/albums/albums_fetches_retrieve.py b/funkwhale_api_client/api/albums/albums_fetches_retrieve.py deleted file mode 100644 index 5cb03609178a994c609ba9d30f2607c28ff1f68b..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/albums/albums_fetches_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.album import Album -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/albums/{id}/fetches/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Album]: - if response.status_code == 200: - response_200 = Album.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Album]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/albums/albums_libraries_retrieve.py b/funkwhale_api_client/api/albums/albums_libraries_retrieve.py deleted file mode 100644 index f2d8f71b9bc854339999f874025f14ba3a971266..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/albums/albums_libraries_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.album import Album -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/albums/{id}/libraries/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Album]: - if response.status_code == 200: - response_200 = Album.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Album]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/albums/albums_mutations_retrieve.py b/funkwhale_api_client/api/albums/albums_mutations_retrieve.py deleted file mode 100644 index 9b7eeb65a5cbdc5efa001746e084254992d726fb..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/albums/albums_mutations_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.album import Album -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/albums/{id}/mutations/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Album]: - if response.status_code == 200: - response_200 = Album.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Album]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Album]: - """ - Args: - id (int): - - Returns: - Response[Album] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/albums/albums_create.py b/funkwhale_api_client/api/albums/create_album.py similarity index 100% rename from funkwhale_api_client/api/albums/albums_create.py rename to funkwhale_api_client/api/albums/create_album.py diff --git a/funkwhale_api_client/api/albums/albums_fetches_create.py b/funkwhale_api_client/api/albums/create_album_fetch.py similarity index 88% rename from funkwhale_api_client/api/albums/albums_fetches_create.py rename to funkwhale_api_client/api/albums/create_album_fetch.py index ebfb78a8ce1b6ec35dea2760e55e91755d1b172f..2004bcafec744523eb73a8d96fa7f3e75bc515bc 100644 --- a/funkwhale_api_client/api/albums/albums_fetches_create.py +++ b/funkwhale_api_client/api/albums/create_album_fetch.py @@ -3,8 +3,8 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.album import Album from ...models.album_request import AlbumRequest +from ...models.fetch import Fetch from ...types import Response @@ -35,15 +35,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Album]: +def _parse_response(*, response: httpx.Response) -> Optional[Fetch]: if response.status_code == 200: - response_200 = Album.from_dict(response.json()) + response_200 = Fetch.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Album]: +def _build_response(*, response: httpx.Response) -> Response[Fetch]: return Response( status_code=response.status_code, content=response.content, @@ -59,7 +59,7 @@ def sync_detailed( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Response[Album]: +) -> Response[Fetch]: """ Args: id (int): @@ -67,7 +67,7 @@ def sync_detailed( json_body (AlbumRequest): Returns: - Response[Album] + Response[Fetch] """ kwargs = _get_kwargs( @@ -93,7 +93,7 @@ def sync( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Optional[Album]: +) -> Optional[Fetch]: """ Args: id (int): @@ -101,7 +101,7 @@ def sync( json_body (AlbumRequest): Returns: - Response[Album] + Response[Fetch] """ return sync_detailed( @@ -120,7 +120,7 @@ async def asyncio_detailed( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Response[Album]: +) -> Response[Fetch]: """ Args: id (int): @@ -128,7 +128,7 @@ async def asyncio_detailed( json_body (AlbumRequest): Returns: - Response[Album] + Response[Fetch] """ kwargs = _get_kwargs( @@ -152,7 +152,7 @@ async def asyncio( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Optional[Album]: +) -> Optional[Fetch]: """ Args: id (int): @@ -160,7 +160,7 @@ async def asyncio( json_body (AlbumRequest): Returns: - Response[Album] + Response[Fetch] """ return ( diff --git a/funkwhale_api_client/api/albums/albums_mutations_create.py b/funkwhale_api_client/api/albums/create_album_mutation.py similarity index 87% rename from funkwhale_api_client/api/albums/albums_mutations_create.py rename to funkwhale_api_client/api/albums/create_album_mutation.py index c641a61e4811b182c9f3be30a4a48c49b5b9623a..f1c3b9d23fa64fad4e658808faa9ff5c64d0a7e8 100644 --- a/funkwhale_api_client/api/albums/albums_mutations_create.py +++ b/funkwhale_api_client/api/albums/create_album_mutation.py @@ -3,8 +3,8 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.album import Album from ...models.album_request import AlbumRequest +from ...models.api_mutation import APIMutation from ...types import Response @@ -35,15 +35,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Album]: +def _parse_response(*, response: httpx.Response) -> Optional[APIMutation]: if response.status_code == 200: - response_200 = Album.from_dict(response.json()) + response_200 = APIMutation.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Album]: +def _build_response(*, response: httpx.Response) -> Response[APIMutation]: return Response( status_code=response.status_code, content=response.content, @@ -59,7 +59,7 @@ def sync_detailed( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Response[Album]: +) -> Response[APIMutation]: """ Args: id (int): @@ -67,7 +67,7 @@ def sync_detailed( json_body (AlbumRequest): Returns: - Response[Album] + Response[APIMutation] """ kwargs = _get_kwargs( @@ -93,7 +93,7 @@ def sync( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Optional[Album]: +) -> Optional[APIMutation]: """ Args: id (int): @@ -101,7 +101,7 @@ def sync( json_body (AlbumRequest): Returns: - Response[Album] + Response[APIMutation] """ return sync_detailed( @@ -120,7 +120,7 @@ async def asyncio_detailed( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Response[Album]: +) -> Response[APIMutation]: """ Args: id (int): @@ -128,7 +128,7 @@ async def asyncio_detailed( json_body (AlbumRequest): Returns: - Response[Album] + Response[APIMutation] """ kwargs = _get_kwargs( @@ -152,7 +152,7 @@ async def asyncio( form_data: AlbumRequest, multipart_data: AlbumRequest, json_body: AlbumRequest, -) -> Optional[Album]: +) -> Optional[APIMutation]: """ Args: id (int): @@ -160,7 +160,7 @@ async def asyncio( json_body (AlbumRequest): Returns: - Response[Album] + Response[APIMutation] """ return ( diff --git a/funkwhale_api_client/api/albums/albums_destroy.py b/funkwhale_api_client/api/albums/delete_album.py similarity index 100% rename from funkwhale_api_client/api/albums/albums_destroy.py rename to funkwhale_api_client/api/albums/delete_album.py diff --git a/funkwhale_api_client/api/albums/albums_retrieve.py b/funkwhale_api_client/api/albums/get_album.py similarity index 100% rename from funkwhale_api_client/api/albums/albums_retrieve.py rename to funkwhale_api_client/api/albums/get_album.py diff --git a/funkwhale_api_client/api/albums/get_album_fetches.py b/funkwhale_api_client/api/albums/get_album_fetches.py new file mode 100644 index 0000000000000000000000000000000000000000..b78da2267c4024881bc0dec038d6d7a02e455c6c --- /dev/null +++ b/funkwhale_api_client/api/albums/get_album_fetches.py @@ -0,0 +1,381 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_album_fetches_ordering_item import GetAlbumFetchesOrderingItem +from ...models.paginated_fetch_list import PaginatedFetchList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/albums/{id}/fetches/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["artist"] = artist + + params["channel"] = channel + + params["content_category"] = content_category + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["mbid"] = mbid + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedFetchList]: + if response.status_code == 200: + response_200 = PaginatedFetchList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedFetchList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedFetchList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedFetchList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + return sync_detailed( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedFetchList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedFetchList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + ).parsed diff --git a/funkwhale_api_client/api/albums/get_album_libraries.py b/funkwhale_api_client/api/albums/get_album_libraries.py new file mode 100644 index 0000000000000000000000000000000000000000..703f0851ad9d36a7c3c761ee4d7df280ebf8b18b --- /dev/null +++ b/funkwhale_api_client/api/albums/get_album_libraries.py @@ -0,0 +1,381 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_album_libraries_ordering_item import GetAlbumLibrariesOrderingItem +from ...models.paginated_library_list import PaginatedLibraryList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/albums/{id}/libraries/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["artist"] = artist + + params["channel"] = channel + + params["content_category"] = content_category + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["mbid"] = mbid + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedLibraryList]: + if response.status_code == 200: + response_200 = PaginatedLibraryList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedLibraryList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedLibraryList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedLibraryList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + return sync_detailed( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedLibraryList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedLibraryList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + ).parsed diff --git a/funkwhale_api_client/api/albums/get_album_mutations.py b/funkwhale_api_client/api/albums/get_album_mutations.py new file mode 100644 index 0000000000000000000000000000000000000000..f4a360da8ca38f5711d81ee48ae1b7b56a69c2e3 --- /dev/null +++ b/funkwhale_api_client/api/albums/get_album_mutations.py @@ -0,0 +1,381 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_album_mutations_ordering_item import GetAlbumMutationsOrderingItem +from ...models.paginated_api_mutation_list import PaginatedAPIMutationList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/albums/{id}/mutations/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["artist"] = artist + + params["channel"] = channel + + params["content_category"] = content_category + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["mbid"] = mbid + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedAPIMutationList]: + if response.status_code == 200: + response_200 = PaginatedAPIMutationList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedAPIMutationList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedAPIMutationList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedAPIMutationList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + return sync_detailed( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedAPIMutationList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + artist: Union[Unset, None, int] = UNSET, + channel: Union[Unset, None, str] = UNSET, + content_category: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetAlbumMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedAPIMutationList]: + """ + Args: + id (int): + artist (Union[Unset, None, int]): + channel (Union[Unset, None, str]): + content_category (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetAlbumMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + artist=artist, + channel=channel, + content_category=content_category, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + ).parsed diff --git a/funkwhale_api_client/api/albums/albums_list.py b/funkwhale_api_client/api/albums/get_albums.py similarity index 93% rename from funkwhale_api_client/api/albums/albums_list.py rename to funkwhale_api_client/api/albums/get_albums.py index a01af4d6d3c65808ff5fe866a538775cf4c3844f..ef44d134742465e3b5e3bdbe702dbb3804208028 100644 --- a/funkwhale_api_client/api/albums/albums_list.py +++ b/funkwhale_api_client/api/albums/get_albums.py @@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.albums_list_ordering_item import AlbumsListOrderingItem +from ...models.get_albums_ordering_item import GetAlbumsOrderingItem from ...models.paginated_album_list import PaginatedAlbumList from ...types import UNSET, Response, Unset @@ -18,7 +18,7 @@ def _get_kwargs( include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[AlbumsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetAlbumsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -120,7 +120,7 @@ def sync_detailed( include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[AlbumsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetAlbumsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -138,7 +138,7 @@ def sync_detailed( include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[AlbumsListOrderingItem]]): + ordering (Union[Unset, None, List[GetAlbumsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -188,7 +188,7 @@ def sync( include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[AlbumsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetAlbumsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -206,7 +206,7 @@ def sync( include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[AlbumsListOrderingItem]]): + ordering (Union[Unset, None, List[GetAlbumsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -249,7 +249,7 @@ async def asyncio_detailed( include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[AlbumsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetAlbumsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -267,7 +267,7 @@ async def asyncio_detailed( include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[AlbumsListOrderingItem]]): + ordering (Union[Unset, None, List[GetAlbumsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -315,7 +315,7 @@ async def asyncio( include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[AlbumsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetAlbumsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -333,7 +333,7 @@ async def asyncio( include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[AlbumsListOrderingItem]]): + ordering (Union[Unset, None, List[GetAlbumsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): diff --git a/funkwhale_api_client/api/artists/artists_fetches_retrieve.py b/funkwhale_api_client/api/artists/artists_fetches_retrieve.py deleted file mode 100644 index bef84c3db780cdff0f5af8dfabd9407aeb8684a7..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/artists/artists_fetches_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.artist_with_albums import ArtistWithAlbums -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/artists/{id}/fetches/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[ArtistWithAlbums]: - if response.status_code == 200: - response_200 = ArtistWithAlbums.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[ArtistWithAlbums]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/artists/artists_libraries_retrieve.py b/funkwhale_api_client/api/artists/artists_libraries_retrieve.py deleted file mode 100644 index 0550b426566ca7253bbbd29b27bcb904902c59c4..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/artists/artists_libraries_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.artist_with_albums import ArtistWithAlbums -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/artists/{id}/libraries/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[ArtistWithAlbums]: - if response.status_code == 200: - response_200 = ArtistWithAlbums.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[ArtistWithAlbums]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/artists/artists_mutations_retrieve.py b/funkwhale_api_client/api/artists/artists_mutations_retrieve.py deleted file mode 100644 index c89b8aab03f17f19ac0dda2a5b84f5f97f5096f9..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/artists/artists_mutations_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.artist_with_albums import ArtistWithAlbums -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/artists/{id}/mutations/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[ArtistWithAlbums]: - if response.status_code == 200: - response_200 = ArtistWithAlbums.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[ArtistWithAlbums]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[ArtistWithAlbums]: - """ - Args: - id (int): - - Returns: - Response[ArtistWithAlbums] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/artists/artists_fetches_create.py b/funkwhale_api_client/api/artists/create_artist_fetch.py similarity index 86% rename from funkwhale_api_client/api/artists/artists_fetches_create.py rename to funkwhale_api_client/api/artists/create_artist_fetch.py index 411181a1208d940a4c095c398cc8cce75d47de80..238249432298760c1b8ad4a5a794367474ffd38a 100644 --- a/funkwhale_api_client/api/artists/artists_fetches_create.py +++ b/funkwhale_api_client/api/artists/create_artist_fetch.py @@ -3,8 +3,8 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.artist_with_albums import ArtistWithAlbums from ...models.artist_with_albums_request import ArtistWithAlbumsRequest +from ...models.fetch import Fetch from ...types import Response @@ -35,15 +35,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[ArtistWithAlbums]: +def _parse_response(*, response: httpx.Response) -> Optional[Fetch]: if response.status_code == 200: - response_200 = ArtistWithAlbums.from_dict(response.json()) + response_200 = Fetch.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[ArtistWithAlbums]: +def _build_response(*, response: httpx.Response) -> Response[Fetch]: return Response( status_code=response.status_code, content=response.content, @@ -59,7 +59,7 @@ def sync_detailed( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Response[ArtistWithAlbums]: +) -> Response[Fetch]: """ Args: id (int): @@ -67,7 +67,7 @@ def sync_detailed( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[Fetch] """ kwargs = _get_kwargs( @@ -93,7 +93,7 @@ def sync( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Optional[ArtistWithAlbums]: +) -> Optional[Fetch]: """ Args: id (int): @@ -101,7 +101,7 @@ def sync( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[Fetch] """ return sync_detailed( @@ -120,7 +120,7 @@ async def asyncio_detailed( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Response[ArtistWithAlbums]: +) -> Response[Fetch]: """ Args: id (int): @@ -128,7 +128,7 @@ async def asyncio_detailed( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[Fetch] """ kwargs = _get_kwargs( @@ -152,7 +152,7 @@ async def asyncio( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Optional[ArtistWithAlbums]: +) -> Optional[Fetch]: """ Args: id (int): @@ -160,7 +160,7 @@ async def asyncio( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[Fetch] """ return ( diff --git a/funkwhale_api_client/api/artists/artists_mutations_create.py b/funkwhale_api_client/api/artists/create_artist_mutation.py similarity index 86% rename from funkwhale_api_client/api/artists/artists_mutations_create.py rename to funkwhale_api_client/api/artists/create_artist_mutation.py index 1053a8161bef0dc29534a9595763d8dc00281e57..01c0ecc168d2a76a4267cf2d40790f8b9c5221be 100644 --- a/funkwhale_api_client/api/artists/artists_mutations_create.py +++ b/funkwhale_api_client/api/artists/create_artist_mutation.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.artist_with_albums import ArtistWithAlbums +from ...models.api_mutation import APIMutation from ...models.artist_with_albums_request import ArtistWithAlbumsRequest from ...types import Response @@ -35,15 +35,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[ArtistWithAlbums]: +def _parse_response(*, response: httpx.Response) -> Optional[APIMutation]: if response.status_code == 200: - response_200 = ArtistWithAlbums.from_dict(response.json()) + response_200 = APIMutation.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[ArtistWithAlbums]: +def _build_response(*, response: httpx.Response) -> Response[APIMutation]: return Response( status_code=response.status_code, content=response.content, @@ -59,7 +59,7 @@ def sync_detailed( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Response[ArtistWithAlbums]: +) -> Response[APIMutation]: """ Args: id (int): @@ -67,7 +67,7 @@ def sync_detailed( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[APIMutation] """ kwargs = _get_kwargs( @@ -93,7 +93,7 @@ def sync( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Optional[ArtistWithAlbums]: +) -> Optional[APIMutation]: """ Args: id (int): @@ -101,7 +101,7 @@ def sync( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[APIMutation] """ return sync_detailed( @@ -120,7 +120,7 @@ async def asyncio_detailed( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Response[ArtistWithAlbums]: +) -> Response[APIMutation]: """ Args: id (int): @@ -128,7 +128,7 @@ async def asyncio_detailed( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[APIMutation] """ kwargs = _get_kwargs( @@ -152,7 +152,7 @@ async def asyncio( form_data: ArtistWithAlbumsRequest, multipart_data: ArtistWithAlbumsRequest, json_body: ArtistWithAlbumsRequest, -) -> Optional[ArtistWithAlbums]: +) -> Optional[APIMutation]: """ Args: id (int): @@ -160,7 +160,7 @@ async def asyncio( json_body (ArtistWithAlbumsRequest): Returns: - Response[ArtistWithAlbums] + Response[APIMutation] """ return ( diff --git a/funkwhale_api_client/api/artists/artists_retrieve.py b/funkwhale_api_client/api/artists/get_artist.py similarity index 100% rename from funkwhale_api_client/api/artists/artists_retrieve.py rename to funkwhale_api_client/api/artists/get_artist.py diff --git a/funkwhale_api_client/api/artists/get_artist_fetches.py b/funkwhale_api_client/api/artists/get_artist_fetches.py new file mode 100644 index 0000000000000000000000000000000000000000..a0887bfd45f5a714adadf5a5c3a99e74c54cf5d7 --- /dev/null +++ b/funkwhale_api_client/api/artists/get_artist_fetches.py @@ -0,0 +1,426 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_artist_fetches_ordering_item import GetArtistFetchesOrderingItem +from ...models.paginated_fetch_list import PaginatedFetchList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/artists/{id}/fetches/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["content_category"] = content_category + + params["has_albums"] = has_albums + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["mbid"] = mbid + + params["name"] = name + + params["name__icontains"] = name_icontains + + params["name__iexact"] = name_iexact + + params["name__startswith"] = name_startswith + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedFetchList]: + if response.status_code == 200: + response_200 = PaginatedFetchList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedFetchList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedFetchList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedFetchList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + return sync_detailed( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedFetchList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedFetchList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedFetchList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + ).parsed diff --git a/funkwhale_api_client/api/artists/get_artist_libraries.py b/funkwhale_api_client/api/artists/get_artist_libraries.py new file mode 100644 index 0000000000000000000000000000000000000000..5fe73501630c4db2a9031b7d0d859809c84b7b19 --- /dev/null +++ b/funkwhale_api_client/api/artists/get_artist_libraries.py @@ -0,0 +1,426 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_artist_libraries_ordering_item import GetArtistLibrariesOrderingItem +from ...models.paginated_library_list import PaginatedLibraryList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/artists/{id}/libraries/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["content_category"] = content_category + + params["has_albums"] = has_albums + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["mbid"] = mbid + + params["name"] = name + + params["name__icontains"] = name_icontains + + params["name__iexact"] = name_iexact + + params["name__startswith"] = name_startswith + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedLibraryList]: + if response.status_code == 200: + response_200 = PaginatedLibraryList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedLibraryList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedLibraryList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedLibraryList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + return sync_detailed( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedLibraryList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedLibraryList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedLibraryList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + ).parsed diff --git a/funkwhale_api_client/api/artists/get_artist_mutations.py b/funkwhale_api_client/api/artists/get_artist_mutations.py new file mode 100644 index 0000000000000000000000000000000000000000..6c2bf0e6b94ddee05dae91f00d555a7c04c57a2a --- /dev/null +++ b/funkwhale_api_client/api/artists/get_artist_mutations.py @@ -0,0 +1,426 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_artist_mutations_ordering_item import GetArtistMutationsOrderingItem +from ...models.paginated_api_mutation_list import PaginatedAPIMutationList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/artists/{id}/mutations/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["content_category"] = content_category + + params["has_albums"] = has_albums + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["mbid"] = mbid + + params["name"] = name + + params["name__icontains"] = name_icontains + + params["name__iexact"] = name_iexact + + params["name__startswith"] = name_startswith + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedAPIMutationList]: + if response.status_code == 200: + response_200 = PaginatedAPIMutationList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedAPIMutationList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedAPIMutationList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedAPIMutationList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + return sync_detailed( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Response[PaginatedAPIMutationList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + content_category: Union[Unset, None, str] = UNSET, + has_albums: Union[Unset, None, bool] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + name_iexact: Union[Unset, None, str] = UNSET, + name_startswith: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetArtistMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, +) -> Optional[PaginatedAPIMutationList]: + """ + Args: + id (int): + content_category (Union[Unset, None, str]): + has_albums (Union[Unset, None, bool]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + name_iexact (Union[Unset, None, str]): + name_startswith (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetArtistMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + content_category=content_category, + has_albums=has_albums, + hidden=hidden, + include_channels=include_channels, + library=library, + mbid=mbid, + name=name, + name_icontains=name_icontains, + name_iexact=name_iexact, + name_startswith=name_startswith, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + ) + ).parsed diff --git a/funkwhale_api_client/api/artists/artists_list.py b/funkwhale_api_client/api/artists/get_artists.py similarity index 94% rename from funkwhale_api_client/api/artists/artists_list.py rename to funkwhale_api_client/api/artists/get_artists.py index 508f311b4d0975b842f3eed8d71b645b2ab95d64..5fa251ce63b7f2d2e44e7c34b81575043f78a513 100644 --- a/funkwhale_api_client/api/artists/artists_list.py +++ b/funkwhale_api_client/api/artists/get_artists.py @@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.artists_list_ordering_item import ArtistsListOrderingItem +from ...models.get_artists_ordering_item import GetArtistsOrderingItem from ...models.paginated_artist_with_albums_list import PaginatedArtistWithAlbumsList from ...types import UNSET, Response, Unset @@ -21,7 +21,7 @@ def _get_kwargs( name_icontains: Union[Unset, None, str] = UNSET, name_iexact: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ArtistsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetArtistsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -132,7 +132,7 @@ def sync_detailed( name_icontains: Union[Unset, None, str] = UNSET, name_iexact: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ArtistsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetArtistsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -153,7 +153,7 @@ def sync_detailed( name_icontains (Union[Unset, None, str]): name_iexact (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ArtistsListOrderingItem]]): + ordering (Union[Unset, None, List[GetArtistsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -209,7 +209,7 @@ def sync( name_icontains: Union[Unset, None, str] = UNSET, name_iexact: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ArtistsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetArtistsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -230,7 +230,7 @@ def sync( name_icontains (Union[Unset, None, str]): name_iexact (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ArtistsListOrderingItem]]): + ordering (Union[Unset, None, List[GetArtistsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -279,7 +279,7 @@ async def asyncio_detailed( name_icontains: Union[Unset, None, str] = UNSET, name_iexact: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ArtistsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetArtistsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -300,7 +300,7 @@ async def asyncio_detailed( name_icontains (Union[Unset, None, str]): name_iexact (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ArtistsListOrderingItem]]): + ordering (Union[Unset, None, List[GetArtistsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -354,7 +354,7 @@ async def asyncio( name_icontains: Union[Unset, None, str] = UNSET, name_iexact: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ArtistsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetArtistsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -375,7 +375,7 @@ async def asyncio( name_icontains (Union[Unset, None, str]): name_iexact (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ArtistsListOrderingItem]]): + ordering (Union[Unset, None, List[GetArtistsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): diff --git a/funkwhale_api_client/api/attachments/attachments_create.py b/funkwhale_api_client/api/attachments/create_attachment.py similarity index 100% rename from funkwhale_api_client/api/attachments/attachments_create.py rename to funkwhale_api_client/api/attachments/create_attachment.py diff --git a/funkwhale_api_client/api/attachments/attachments_destroy.py b/funkwhale_api_client/api/attachments/delete_attachment.py similarity index 100% rename from funkwhale_api_client/api/attachments/attachments_destroy.py rename to funkwhale_api_client/api/attachments/delete_attachment.py diff --git a/funkwhale_api_client/api/attachments/attachments_retrieve.py b/funkwhale_api_client/api/attachments/get_attachment.py similarity index 100% rename from funkwhale_api_client/api/attachments/attachments_retrieve.py rename to funkwhale_api_client/api/attachments/get_attachment.py diff --git a/funkwhale_api_client/api/attachments/attachments_proxy_retrieve.py b/funkwhale_api_client/api/attachments/get_attachment_proxy.py similarity index 100% rename from funkwhale_api_client/api/attachments/attachments_proxy_retrieve.py rename to funkwhale_api_client/api/attachments/get_attachment_proxy.py diff --git a/funkwhale_api_client/api/auth/auth_password_change_create.py b/funkwhale_api_client/api/auth/change_password.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_password_change_create.py rename to funkwhale_api_client/api/auth/change_password.py diff --git a/funkwhale_api_client/api/auth/auth_registration_change_password_create.py b/funkwhale_api_client/api/auth/change_password_2.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_registration_change_password_create.py rename to funkwhale_api_client/api/auth/change_password_2.py diff --git a/funkwhale_api_client/api/auth/auth_password_reset_confirm_create.py b/funkwhale_api_client/api/auth/confirm_password_reset.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_password_reset_confirm_create.py rename to funkwhale_api_client/api/auth/confirm_password_reset.py diff --git a/funkwhale_api_client/api/auth/auth_user_retrieve.py b/funkwhale_api_client/api/auth/get_auth_user.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_user_retrieve.py rename to funkwhale_api_client/api/auth/get_auth_user.py diff --git a/funkwhale_api_client/api/auth/auth_user_partial_update.py b/funkwhale_api_client/api/auth/partial_update_auth_user.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_user_partial_update.py rename to funkwhale_api_client/api/auth/partial_update_auth_user.py diff --git a/funkwhale_api_client/api/auth/auth_registration_create.py b/funkwhale_api_client/api/auth/register.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_registration_create.py rename to funkwhale_api_client/api/auth/register.py diff --git a/funkwhale_api_client/api/auth/auth_password_reset_create.py b/funkwhale_api_client/api/auth/reset_password.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_password_reset_create.py rename to funkwhale_api_client/api/auth/reset_password.py diff --git a/funkwhale_api_client/api/auth/auth_user_update.py b/funkwhale_api_client/api/auth/update_auth_user.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_user_update.py rename to funkwhale_api_client/api/auth/update_auth_user.py diff --git a/funkwhale_api_client/api/auth/auth_registration_verify_email_create.py b/funkwhale_api_client/api/auth/verify_email.py similarity index 100% rename from funkwhale_api_client/api/auth/auth_registration_verify_email_create.py rename to funkwhale_api_client/api/auth/verify_email.py diff --git a/funkwhale_api_client/api/channels/channels_rss_subscribe_create.py b/funkwhale_api_client/api/channels/channels_rss_subscribe_create.py deleted file mode 100644 index d202a9c03c4629711b14d93e14a0d9c6cad74b42..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/channels/channels_rss_subscribe_create.py +++ /dev/null @@ -1,161 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.channel_create import ChannelCreate -from ...models.channel_create_request import ChannelCreateRequest -from ...types import Response - - -def _get_kwargs( - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/channels/rss-subscribe/".format(client.base_url) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[ChannelCreate]: - if response.status_code == 200: - response_200 = ChannelCreate.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[ChannelCreate]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Response[ChannelCreate]: - """ - Args: - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - kwargs = _get_kwargs( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Optional[ChannelCreate]: - """ - Args: - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - return sync_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Response[ChannelCreate]: - """ - Args: - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - kwargs = _get_kwargs( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Optional[ChannelCreate]: - """ - Args: - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - return ( - await asyncio_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/channels/channels_subscribe_create.py b/funkwhale_api_client/api/channels/channels_subscribe_create.py deleted file mode 100644 index 405cec43d2a9d893f7d374c54643254acdbb11a3..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/channels/channels_subscribe_create.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.channel_create import ChannelCreate -from ...models.channel_create_request import ChannelCreateRequest -from ...types import Response - - -def _get_kwargs( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/channels/{composite}/subscribe/".format(client.base_url, composite=composite) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[ChannelCreate]: - if response.status_code == 200: - response_200 = ChannelCreate.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[ChannelCreate]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Response[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - kwargs = _get_kwargs( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Optional[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - return sync_detailed( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Response[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - kwargs = _get_kwargs( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Optional[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - return ( - await asyncio_detailed( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/channels/channels_unsubscribe_create.py b/funkwhale_api_client/api/channels/channels_unsubscribe_create.py deleted file mode 100644 index e7ee7235250820be715eccd7a2804da170b7c98c..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/channels/channels_unsubscribe_create.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.channel_create import ChannelCreate -from ...models.channel_create_request import ChannelCreateRequest -from ...types import Response - - -def _get_kwargs( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/channels/{composite}/unsubscribe/".format(client.base_url, composite=composite) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[ChannelCreate]: - if response.status_code == 200: - response_200 = ChannelCreate.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[ChannelCreate]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Response[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - kwargs = _get_kwargs( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Optional[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - return sync_detailed( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Response[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - kwargs = _get_kwargs( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - composite: str, - *, - client: AuthenticatedClient, - form_data: ChannelCreateRequest, - multipart_data: ChannelCreateRequest, - json_body: ChannelCreateRequest, -) -> Optional[ChannelCreate]: - """ - Args: - composite (str): - multipart_data (ChannelCreateRequest): - json_body (ChannelCreateRequest): - - Returns: - Response[ChannelCreate] - """ - - return ( - await asyncio_detailed( - composite=composite, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/channels/channels_create.py b/funkwhale_api_client/api/channels/create_channel.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_create.py rename to funkwhale_api_client/api/channels/create_channel.py diff --git a/funkwhale_api_client/api/channels/channels_destroy.py b/funkwhale_api_client/api/channels/delete_channel.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_destroy.py rename to funkwhale_api_client/api/channels/delete_channel.py diff --git a/funkwhale_api_client/api/channels/channels_retrieve.py b/funkwhale_api_client/api/channels/get_channel.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_retrieve.py rename to funkwhale_api_client/api/channels/get_channel.py diff --git a/funkwhale_api_client/api/channels/channels_metadata_choices_retrieve.py b/funkwhale_api_client/api/channels/get_channel_metadata_choices.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_metadata_choices_retrieve.py rename to funkwhale_api_client/api/channels/get_channel_metadata_choices.py diff --git a/funkwhale_api_client/api/channels/channels_rss_retrieve.py b/funkwhale_api_client/api/channels/get_channel_rss.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_rss_retrieve.py rename to funkwhale_api_client/api/channels/get_channel_rss.py diff --git a/funkwhale_api_client/api/channels/channels_list.py b/funkwhale_api_client/api/channels/get_channels.py similarity index 91% rename from funkwhale_api_client/api/channels/channels_list.py rename to funkwhale_api_client/api/channels/get_channels.py index 016836528b3ada358c6fc66add8d4d7242bd3f25..535a4b2b04d6f74e6783733db45273cf855d14f6 100644 --- a/funkwhale_api_client/api/channels/channels_list.py +++ b/funkwhale_api_client/api/channels/get_channels.py @@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.channels_list_ordering_item import ChannelsListOrderingItem +from ...models.get_channels_ordering_item import GetChannelsOrderingItem from ...models.paginated_channel_list import PaginatedChannelList from ...types import UNSET, Response, Unset @@ -13,7 +13,7 @@ def _get_kwargs( client: AuthenticatedClient, external: Union[Unset, None, bool] = UNSET, hidden: Union[Unset, None, bool] = UNSET, - ordering: Union[Unset, None, List[ChannelsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetChannelsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -97,7 +97,7 @@ def sync_detailed( client: AuthenticatedClient, external: Union[Unset, None, bool] = UNSET, hidden: Union[Unset, None, bool] = UNSET, - ordering: Union[Unset, None, List[ChannelsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetChannelsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -109,7 +109,7 @@ def sync_detailed( Args: external (Union[Unset, None, bool]): hidden (Union[Unset, None, bool]): - ordering (Union[Unset, None, List[ChannelsListOrderingItem]]): + ordering (Union[Unset, None, List[GetChannelsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): @@ -147,7 +147,7 @@ def sync( client: AuthenticatedClient, external: Union[Unset, None, bool] = UNSET, hidden: Union[Unset, None, bool] = UNSET, - ordering: Union[Unset, None, List[ChannelsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetChannelsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -159,7 +159,7 @@ def sync( Args: external (Union[Unset, None, bool]): hidden (Union[Unset, None, bool]): - ordering (Union[Unset, None, List[ChannelsListOrderingItem]]): + ordering (Union[Unset, None, List[GetChannelsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): @@ -190,7 +190,7 @@ async def asyncio_detailed( client: AuthenticatedClient, external: Union[Unset, None, bool] = UNSET, hidden: Union[Unset, None, bool] = UNSET, - ordering: Union[Unset, None, List[ChannelsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetChannelsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -202,7 +202,7 @@ async def asyncio_detailed( Args: external (Union[Unset, None, bool]): hidden (Union[Unset, None, bool]): - ordering (Union[Unset, None, List[ChannelsListOrderingItem]]): + ordering (Union[Unset, None, List[GetChannelsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): @@ -238,7 +238,7 @@ async def asyncio( client: AuthenticatedClient, external: Union[Unset, None, bool] = UNSET, hidden: Union[Unset, None, bool] = UNSET, - ordering: Union[Unset, None, List[ChannelsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetChannelsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -250,7 +250,7 @@ async def asyncio( Args: external (Union[Unset, None, bool]): hidden (Union[Unset, None, bool]): - ordering (Union[Unset, None, List[ChannelsListOrderingItem]]): + ordering (Union[Unset, None, List[GetChannelsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): diff --git a/funkwhale_api_client/api/channels/channels_partial_update.py b/funkwhale_api_client/api/channels/partial_update_channel.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_partial_update.py rename to funkwhale_api_client/api/channels/partial_update_channel.py diff --git a/funkwhale_api_client/api/users/users_users_subsonic_token_destroy.py b/funkwhale_api_client/api/channels/subscribe_channel.py similarity index 82% rename from funkwhale_api_client/api/users/users_users_subsonic_token_destroy.py rename to funkwhale_api_client/api/channels/subscribe_channel.py index 77031e6908c29b7faeafd85f1eb54054813297d8..84be4ca706b126a74ef87672149ba46b03c6b6f4 100644 --- a/funkwhale_api_client/api/users/users_users_subsonic_token_destroy.py +++ b/funkwhale_api_client/api/channels/subscribe_channel.py @@ -7,17 +7,17 @@ from ...types import Response def _get_kwargs( - username: str, + composite: str, *, client: AuthenticatedClient, ) -> Dict[str, Any]: - url = "{}/api/v1/users/users/{username}/subsonic-token/".format(client.base_url, username=username) + url = "{}/api/v1/channels/{composite}/subscribe/".format(client.base_url, composite=composite) headers: Dict[str, str] = client.get_headers() cookies: Dict[str, Any] = client.get_cookies() return { - "method": "delete", + "method": "post", "url": url, "headers": headers, "cookies": cookies, @@ -35,20 +35,20 @@ def _build_response(*, response: httpx.Response) -> Response[Any]: def sync_detailed( - username: str, + composite: str, *, client: AuthenticatedClient, ) -> Response[Any]: """ Args: - username (str): + composite (str): Returns: Response[Any] """ kwargs = _get_kwargs( - username=username, + composite=composite, client=client, ) @@ -61,20 +61,20 @@ def sync_detailed( async def asyncio_detailed( - username: str, + composite: str, *, client: AuthenticatedClient, ) -> Response[Any]: """ Args: - username (str): + composite (str): Returns: Response[Any] """ kwargs = _get_kwargs( - username=username, + composite=composite, client=client, ) diff --git a/funkwhale_api_client/api/users/users_users_me_destroy.py b/funkwhale_api_client/api/channels/subscribe_channel_rss.py similarity index 86% rename from funkwhale_api_client/api/users/users_users_me_destroy.py rename to funkwhale_api_client/api/channels/subscribe_channel_rss.py index 244842c6dab1bedbed5c7dedad802c65ab6b4c55..a995699b7103d9ffc407517c78d4ba7bffe9fdda 100644 --- a/funkwhale_api_client/api/users/users_users_me_destroy.py +++ b/funkwhale_api_client/api/channels/subscribe_channel_rss.py @@ -10,13 +10,13 @@ def _get_kwargs( *, client: AuthenticatedClient, ) -> Dict[str, Any]: - url = "{}/api/v1/users/users/me/".format(client.base_url) + url = "{}/api/v1/channels/rss-subscribe/".format(client.base_url) headers: Dict[str, str] = client.get_headers() cookies: Dict[str, Any] = client.get_cookies() return { - "method": "delete", + "method": "post", "url": url, "headers": headers, "cookies": cookies, @@ -37,8 +37,7 @@ def sync_detailed( *, client: AuthenticatedClient, ) -> Response[Any]: - """Return information about the current user or delete it - + """ Returns: Response[Any] """ @@ -59,8 +58,7 @@ async def asyncio_detailed( *, client: AuthenticatedClient, ) -> Response[Any]: - """Return information about the current user or delete it - + """ Returns: Response[Any] """ diff --git a/funkwhale_api_client/api/channels/channels_unsubscribe_destroy.py b/funkwhale_api_client/api/channels/unsubscribe_channel.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_unsubscribe_destroy.py rename to funkwhale_api_client/api/channels/unsubscribe_channel.py diff --git a/funkwhale_api_client/api/channels/unsubscribe_channel_2.py b/funkwhale_api_client/api/channels/unsubscribe_channel_2.py new file mode 100644 index 0000000000000000000000000000000000000000..afc09bad4247cb000ccb4a733f6ddabeebf79225 --- /dev/null +++ b/funkwhale_api_client/api/channels/unsubscribe_channel_2.py @@ -0,0 +1,84 @@ +from typing import Any, Dict + +import httpx + +from ...client import AuthenticatedClient +from ...types import Response + + +def _get_kwargs( + composite: str, + *, + client: AuthenticatedClient, +) -> Dict[str, Any]: + url = "{}/api/v1/channels/{composite}/unsubscribe/".format(client.base_url, composite=composite) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + return { + "method": "post", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + } + + +def _build_response(*, response: httpx.Response) -> Response[Any]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=None, + ) + + +def sync_detailed( + composite: str, + *, + client: AuthenticatedClient, +) -> Response[Any]: + """ + Args: + composite (str): + + Returns: + Response[Any] + """ + + kwargs = _get_kwargs( + composite=composite, + client=client, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +async def asyncio_detailed( + composite: str, + *, + client: AuthenticatedClient, +) -> Response[Any]: + """ + Args: + composite (str): + + Returns: + Response[Any] + """ + + kwargs = _get_kwargs( + composite=composite, + client=client, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) diff --git a/funkwhale_api_client/api/channels/channels_update.py b/funkwhale_api_client/api/channels/update_channel.py similarity index 100% rename from funkwhale_api_client/api/channels/channels_update.py rename to funkwhale_api_client/api/channels/update_channel.py diff --git a/funkwhale_api_client/api/favorites/favorites_tracks_destroy.py b/funkwhale_api_client/api/favorites/delete_favorite_track.py similarity index 100% rename from funkwhale_api_client/api/favorites/favorites_tracks_destroy.py rename to funkwhale_api_client/api/favorites/delete_favorite_track.py diff --git a/funkwhale_api_client/api/favorites/favorites_tracks_create.py b/funkwhale_api_client/api/favorites/favorite_track.py similarity index 100% rename from funkwhale_api_client/api/favorites/favorites_tracks_create.py rename to funkwhale_api_client/api/favorites/favorite_track.py diff --git a/funkwhale_api_client/api/favorites/favorites_tracks_all_retrieve.py b/funkwhale_api_client/api/favorites/get_all_favorite_tracks.py similarity index 81% rename from funkwhale_api_client/api/favorites/favorites_tracks_all_retrieve.py rename to funkwhale_api_client/api/favorites/get_all_favorite_tracks.py index 10ff72b5b0229d73891c1e5814ef829d8050cb04..f6944dde8b2cf1ac1a07bc1b7766ec98dd629b71 100644 --- a/funkwhale_api_client/api/favorites/favorites_tracks_all_retrieve.py +++ b/funkwhale_api_client/api/favorites/get_all_favorite_tracks.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.user_track_favorite import UserTrackFavorite +from ...models.all_favorite import AllFavorite from ...types import Response @@ -25,15 +25,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[UserTrackFavorite]: +def _parse_response(*, response: httpx.Response) -> Optional[AllFavorite]: if response.status_code == 200: - response_200 = UserTrackFavorite.from_dict(response.json()) + response_200 = AllFavorite.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[UserTrackFavorite]: +def _build_response(*, response: httpx.Response) -> Response[AllFavorite]: return Response( status_code=response.status_code, content=response.content, @@ -45,13 +45,13 @@ def _build_response(*, response: httpx.Response) -> Response[UserTrackFavorite]: def sync_detailed( *, client: AuthenticatedClient, -) -> Response[UserTrackFavorite]: +) -> Response[AllFavorite]: """Return all the favorites of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display favorites status in the UI Returns: - Response[UserTrackFavorite] + Response[AllFavorite] """ kwargs = _get_kwargs( @@ -69,13 +69,13 @@ def sync_detailed( def sync( *, client: AuthenticatedClient, -) -> Optional[UserTrackFavorite]: +) -> Optional[AllFavorite]: """Return all the favorites of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display favorites status in the UI Returns: - Response[UserTrackFavorite] + Response[AllFavorite] """ return sync_detailed( @@ -86,13 +86,13 @@ def sync( async def asyncio_detailed( *, client: AuthenticatedClient, -) -> Response[UserTrackFavorite]: +) -> Response[AllFavorite]: """Return all the favorites of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display favorites status in the UI Returns: - Response[UserTrackFavorite] + Response[AllFavorite] """ kwargs = _get_kwargs( @@ -108,13 +108,13 @@ async def asyncio_detailed( async def asyncio( *, client: AuthenticatedClient, -) -> Optional[UserTrackFavorite]: +) -> Optional[AllFavorite]: """Return all the favorites of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display favorites status in the UI Returns: - Response[UserTrackFavorite] + Response[AllFavorite] """ return ( diff --git a/funkwhale_api_client/api/favorites/favorites_tracks_list.py b/funkwhale_api_client/api/favorites/get_favorite_tracks.py similarity index 100% rename from funkwhale_api_client/api/favorites/favorites_tracks_list.py rename to funkwhale_api_client/api/favorites/get_favorite_tracks.py diff --git a/funkwhale_api_client/api/favorites/favorites_tracks_remove_destroy.py b/funkwhale_api_client/api/favorites/unfavorite_track.py similarity index 100% rename from funkwhale_api_client/api/favorites/favorites_tracks_remove_destroy.py rename to funkwhale_api_client/api/favorites/unfavorite_track.py diff --git a/funkwhale_api_client/api/favorites/favorites_tracks_remove_create.py b/funkwhale_api_client/api/favorites/unfavorite_track_2.py similarity index 100% rename from funkwhale_api_client/api/favorites/favorites_tracks_remove_create.py rename to funkwhale_api_client/api/favorites/unfavorite_track_2.py diff --git a/funkwhale_api_client/api/federation/federation_follows_library_accept_create.py b/funkwhale_api_client/api/federation/accept_federation_library_follow.py similarity index 56% rename from funkwhale_api_client/api/federation/federation_follows_library_accept_create.py rename to funkwhale_api_client/api/federation/accept_federation_library_follow.py index fec5007ebc58c6cdae83b23e5e24d3ed5d1a2955..d98e9f7d7316254231a9ebee91411b4ce3a0b672 100644 --- a/funkwhale_api_client/api/federation/federation_follows_library_accept_create.py +++ b/funkwhale_api_client/api/federation/accept_federation_library_follow.py @@ -1,9 +1,8 @@ -from typing import Any, Dict, Optional +from typing import Any, Dict import httpx from ...client import AuthenticatedClient -from ...models.library_follow import LibraryFollow from ...models.library_follow_request import LibraryFollowRequest from ...types import Response @@ -35,20 +34,12 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[LibraryFollow]: - if response.status_code == 200: - response_200 = LibraryFollow.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[LibraryFollow]: +def _build_response(*, response: httpx.Response) -> Response[Any]: return Response( status_code=response.status_code, content=response.content, headers=response.headers, - parsed=_parse_response(response=response), + parsed=None, ) @@ -59,7 +50,7 @@ def sync_detailed( form_data: LibraryFollowRequest, multipart_data: LibraryFollowRequest, json_body: LibraryFollowRequest, -) -> Response[LibraryFollow]: +) -> Response[Any]: """ Args: uuid (str): @@ -67,7 +58,7 @@ def sync_detailed( json_body (LibraryFollowRequest): Returns: - Response[LibraryFollow] + Response[Any] """ kwargs = _get_kwargs( @@ -86,33 +77,6 @@ def sync_detailed( return _build_response(response=response) -def sync( - uuid: str, - *, - client: AuthenticatedClient, - form_data: LibraryFollowRequest, - multipart_data: LibraryFollowRequest, - json_body: LibraryFollowRequest, -) -> Optional[LibraryFollow]: - """ - Args: - uuid (str): - multipart_data (LibraryFollowRequest): - json_body (LibraryFollowRequest): - - Returns: - Response[LibraryFollow] - """ - - return sync_detailed( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - async def asyncio_detailed( uuid: str, *, @@ -120,7 +84,7 @@ async def asyncio_detailed( form_data: LibraryFollowRequest, multipart_data: LibraryFollowRequest, json_body: LibraryFollowRequest, -) -> Response[LibraryFollow]: +) -> Response[Any]: """ Args: uuid (str): @@ -128,7 +92,7 @@ async def asyncio_detailed( json_body (LibraryFollowRequest): Returns: - Response[LibraryFollow] + Response[Any] """ kwargs = _get_kwargs( @@ -143,32 +107,3 @@ async def asyncio_detailed( response = await _client.request(**kwargs) return _build_response(response=response) - - -async def asyncio( - uuid: str, - *, - client: AuthenticatedClient, - form_data: LibraryFollowRequest, - multipart_data: LibraryFollowRequest, - json_body: LibraryFollowRequest, -) -> Optional[LibraryFollow]: - """ - Args: - uuid (str): - multipart_data (LibraryFollowRequest): - json_body (LibraryFollowRequest): - - Returns: - Response[LibraryFollow] - """ - - return ( - await asyncio_detailed( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/federation/federation_fetches_create.py b/funkwhale_api_client/api/federation/create_federation_fetch.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_fetches_create.py rename to funkwhale_api_client/api/federation/create_federation_fetch.py diff --git a/funkwhale_api_client/api/federation/federation_inbox_action_create.py b/funkwhale_api_client/api/federation/create_federation_inbox_action.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_inbox_action_create.py rename to funkwhale_api_client/api/federation/create_federation_inbox_action.py diff --git a/funkwhale_api_client/api/federation/federation_libraries_fetch_create.py b/funkwhale_api_client/api/federation/create_federation_library_fetch.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_libraries_fetch_create.py rename to funkwhale_api_client/api/federation/create_federation_library_fetch.py diff --git a/funkwhale_api_client/api/federation/federation_follows_library_create.py b/funkwhale_api_client/api/federation/create_federation_library_follow.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_follows_library_create.py rename to funkwhale_api_client/api/federation/create_federation_library_follow.py diff --git a/funkwhale_api_client/api/federation/federation_libraries_scan_create.py b/funkwhale_api_client/api/federation/create_federation_library_scan.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_libraries_scan_create.py rename to funkwhale_api_client/api/federation/create_federation_library_scan.py diff --git a/funkwhale_api_client/api/federation/federation_follows_library_destroy.py b/funkwhale_api_client/api/federation/delete_federation_library_follow.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_follows_library_destroy.py rename to funkwhale_api_client/api/federation/delete_federation_library_follow.py diff --git a/funkwhale_api_client/api/federation/federation_actors_libraries_retrieve.py b/funkwhale_api_client/api/federation/federation_actors_libraries_retrieve.py deleted file mode 100644 index f039c52b856fe09e3ddb4b1822c8c090ea503270..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/federation/federation_actors_libraries_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.full_actor import FullActor -from ...types import Response - - -def _get_kwargs( - full_username: str, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/federation/actors/{full_username}/libraries/".format(client.base_url, full_username=full_username) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[FullActor]: - if response.status_code == 200: - response_200 = FullActor.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[FullActor]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - full_username: str, - *, - client: AuthenticatedClient, -) -> Response[FullActor]: - """ - Args: - full_username (str): - - Returns: - Response[FullActor] - """ - - kwargs = _get_kwargs( - full_username=full_username, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - full_username: str, - *, - client: AuthenticatedClient, -) -> Optional[FullActor]: - """ - Args: - full_username (str): - - Returns: - Response[FullActor] - """ - - return sync_detailed( - full_username=full_username, - client=client, - ).parsed - - -async def asyncio_detailed( - full_username: str, - *, - client: AuthenticatedClient, -) -> Response[FullActor]: - """ - Args: - full_username (str): - - Returns: - Response[FullActor] - """ - - kwargs = _get_kwargs( - full_username=full_username, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - full_username: str, - *, - client: AuthenticatedClient, -) -> Optional[FullActor]: - """ - Args: - full_username (str): - - Returns: - Response[FullActor] - """ - - return ( - await asyncio_detailed( - full_username=full_username, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/federation/federation_follows_library_all_retrieve.py b/funkwhale_api_client/api/federation/get_all_federation_library_follows.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_follows_library_all_retrieve.py rename to funkwhale_api_client/api/federation/get_all_federation_library_follows.py diff --git a/funkwhale_api_client/api/federation/federation_actors_retrieve.py b/funkwhale_api_client/api/federation/get_federation_actor.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_actors_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_actor.py diff --git a/funkwhale_api_client/api/libraries/libraries_follows_retrieve.py b/funkwhale_api_client/api/federation/get_federation_actor_library.py similarity index 81% rename from funkwhale_api_client/api/libraries/libraries_follows_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_actor_library.py index 63b211c6c7320feb6499e9c9447b7ae31a7df9cc..ceddcf4a93d0a958c45f0652d1fff9617791afe3 100644 --- a/funkwhale_api_client/api/libraries/libraries_follows_retrieve.py +++ b/funkwhale_api_client/api/federation/get_federation_actor_library.py @@ -8,11 +8,11 @@ from ...types import Response def _get_kwargs( - uuid: str, + full_username: str, *, client: AuthenticatedClient, ) -> Dict[str, Any]: - url = "{}/api/v1/libraries/{uuid}/follows/".format(client.base_url, uuid=uuid) + url = "{}/api/v1/federation/actors/{full_username}/libraries/".format(client.base_url, full_username=full_username) headers: Dict[str, str] = client.get_headers() cookies: Dict[str, Any] = client.get_cookies() @@ -44,20 +44,20 @@ def _build_response(*, response: httpx.Response) -> Response[LibraryForOwner]: def sync_detailed( - uuid: str, + full_username: str, *, client: AuthenticatedClient, ) -> Response[LibraryForOwner]: """ Args: - uuid (str): + full_username (str): Returns: Response[LibraryForOwner] """ kwargs = _get_kwargs( - uuid=uuid, + full_username=full_username, client=client, ) @@ -70,39 +70,39 @@ def sync_detailed( def sync( - uuid: str, + full_username: str, *, client: AuthenticatedClient, ) -> Optional[LibraryForOwner]: """ Args: - uuid (str): + full_username (str): Returns: Response[LibraryForOwner] """ return sync_detailed( - uuid=uuid, + full_username=full_username, client=client, ).parsed async def asyncio_detailed( - uuid: str, + full_username: str, *, client: AuthenticatedClient, ) -> Response[LibraryForOwner]: """ Args: - uuid (str): + full_username (str): Returns: Response[LibraryForOwner] """ kwargs = _get_kwargs( - uuid=uuid, + full_username=full_username, client=client, ) @@ -113,13 +113,13 @@ async def asyncio_detailed( async def asyncio( - uuid: str, + full_username: str, *, client: AuthenticatedClient, ) -> Optional[LibraryForOwner]: """ Args: - uuid (str): + full_username (str): Returns: Response[LibraryForOwner] @@ -127,7 +127,7 @@ async def asyncio( return ( await asyncio_detailed( - uuid=uuid, + full_username=full_username, client=client, ) ).parsed diff --git a/funkwhale_api_client/api/federation/federation_domains_retrieve.py b/funkwhale_api_client/api/federation/get_federation_domain.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_domains_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_domain.py diff --git a/funkwhale_api_client/api/federation/federation_domains_list.py b/funkwhale_api_client/api/federation/get_federation_domains.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_domains_list.py rename to funkwhale_api_client/api/federation/get_federation_domains.py diff --git a/funkwhale_api_client/api/federation/federation_fetches_retrieve.py b/funkwhale_api_client/api/federation/get_federation_fetch.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_fetches_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_fetch.py diff --git a/funkwhale_api_client/api/federation/federation_inbox_retrieve.py b/funkwhale_api_client/api/federation/get_federation_inbox.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_inbox_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_inbox.py diff --git a/funkwhale_api_client/api/federation/federation_inbox_list.py b/funkwhale_api_client/api/federation/get_federation_inboxes.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_inbox_list.py rename to funkwhale_api_client/api/federation/get_federation_inboxes.py diff --git a/funkwhale_api_client/api/federation/federation_libraries_retrieve.py b/funkwhale_api_client/api/federation/get_federation_library.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_libraries_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_library.py diff --git a/funkwhale_api_client/api/federation/federation_follows_library_retrieve.py b/funkwhale_api_client/api/federation/get_federation_library_follow.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_follows_library_retrieve.py rename to funkwhale_api_client/api/federation/get_federation_library_follow.py diff --git a/funkwhale_api_client/api/federation/federation_follows_library_list.py b/funkwhale_api_client/api/federation/get_federation_library_follows.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_follows_library_list.py rename to funkwhale_api_client/api/federation/get_federation_library_follows.py diff --git a/funkwhale_api_client/api/federation/federation_inbox_partial_update.py b/funkwhale_api_client/api/federation/partial_update_federation_inbox.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_inbox_partial_update.py rename to funkwhale_api_client/api/federation/partial_update_federation_inbox.py diff --git a/funkwhale_api_client/api/federation/federation_follows_library_reject_create.py b/funkwhale_api_client/api/federation/reject_federation_library_follow.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_follows_library_reject_create.py rename to funkwhale_api_client/api/federation/reject_federation_library_follow.py diff --git a/funkwhale_api_client/api/federation/federation_inbox_update.py b/funkwhale_api_client/api/federation/update_federation_inbox.py similarity index 100% rename from funkwhale_api_client/api/federation/federation_inbox_update.py rename to funkwhale_api_client/api/federation/update_federation_inbox.py diff --git a/funkwhale_api_client/api/history/history_listenings_create.py b/funkwhale_api_client/api/history/create_history_listening.py similarity index 100% rename from funkwhale_api_client/api/history/history_listenings_create.py rename to funkwhale_api_client/api/history/create_history_listening.py diff --git a/funkwhale_api_client/api/history/history_listenings_retrieve.py b/funkwhale_api_client/api/history/get_history_listening.py similarity index 100% rename from funkwhale_api_client/api/history/history_listenings_retrieve.py rename to funkwhale_api_client/api/history/get_history_listening.py diff --git a/funkwhale_api_client/api/history/history_listenings_list.py b/funkwhale_api_client/api/history/get_history_listenings.py similarity index 100% rename from funkwhale_api_client/api/history/history_listenings_list.py rename to funkwhale_api_client/api/history/get_history_listenings.py diff --git a/funkwhale_api_client/api/instance/instance_admin_settings_bulk_create.py b/funkwhale_api_client/api/instance/create_instance_admin_setting_bulk.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_admin_settings_bulk_create.py rename to funkwhale_api_client/api/instance/create_instance_admin_setting_bulk.py diff --git a/funkwhale_api_client/api/instance/instance_admin_settings_retrieve.py b/funkwhale_api_client/api/instance/get_instance_admin_setting.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_admin_settings_retrieve.py rename to funkwhale_api_client/api/instance/get_instance_admin_setting.py diff --git a/funkwhale_api_client/api/instance/instance_admin_settings_list.py b/funkwhale_api_client/api/instance/get_instance_admin_settings.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_admin_settings_list.py rename to funkwhale_api_client/api/instance/get_instance_admin_settings.py diff --git a/funkwhale_api_client/api/instance/instance_settings_retrieve.py b/funkwhale_api_client/api/instance/get_instance_settings.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_settings_retrieve.py rename to funkwhale_api_client/api/instance/get_instance_settings.py diff --git a/funkwhale_api_client/api/instance/instance_nodeinfo_2_0_retrieve.py b/funkwhale_api_client/api/instance/get_node_info_20.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_nodeinfo_2_0_retrieve.py rename to funkwhale_api_client/api/instance/get_node_info_20.py diff --git a/funkwhale_api_client/api/instance/instance_spa_manifest_json_retrieve.py b/funkwhale_api_client/api/instance/get_spa_manifest.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_spa_manifest_json_retrieve.py rename to funkwhale_api_client/api/instance/get_spa_manifest.py diff --git a/funkwhale_api_client/api/instance/instance_admin_settings_partial_update.py b/funkwhale_api_client/api/instance/partial_update_instance_admin_setting.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_admin_settings_partial_update.py rename to funkwhale_api_client/api/instance/partial_update_instance_admin_setting.py diff --git a/funkwhale_api_client/api/instance/instance_admin_settings_update.py b/funkwhale_api_client/api/instance/update_instance_admin_setting.py similarity index 100% rename from funkwhale_api_client/api/instance/instance_admin_settings_update.py rename to funkwhale_api_client/api/instance/update_instance_admin_setting.py diff --git a/funkwhale_api_client/api/libraries/libraries_create.py b/funkwhale_api_client/api/libraries/create_library.py similarity index 100% rename from funkwhale_api_client/api/libraries/libraries_create.py rename to funkwhale_api_client/api/libraries/create_library.py diff --git a/funkwhale_api_client/api/libraries/libraries_fs_import_create.py b/funkwhale_api_client/api/libraries/create_library_fs_import.py similarity index 56% rename from funkwhale_api_client/api/libraries/libraries_fs_import_create.py rename to funkwhale_api_client/api/libraries/create_library_fs_import.py index bf81bff32b54a9b333e721d6e76f0b799afcd3a3..9af4246a0ac27dd1077b8790285c0d5c40b802d5 100644 --- a/funkwhale_api_client/api/libraries/libraries_fs_import_create.py +++ b/funkwhale_api_client/api/libraries/create_library_fs_import.py @@ -1,9 +1,8 @@ -from typing import Any, Dict, Optional +from typing import Any, Dict import httpx from ...client import AuthenticatedClient -from ...models.library_for_owner import LibraryForOwner from ...models.library_for_owner_request import LibraryForOwnerRequest from ...types import Response @@ -34,20 +33,12 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[LibraryForOwner]: - if response.status_code == 200: - response_200 = LibraryForOwner.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[LibraryForOwner]: +def _build_response(*, response: httpx.Response) -> Response[Any]: return Response( status_code=response.status_code, content=response.content, headers=response.headers, - parsed=_parse_response(response=response), + parsed=None, ) @@ -57,14 +48,14 @@ def sync_detailed( form_data: LibraryForOwnerRequest, multipart_data: LibraryForOwnerRequest, json_body: LibraryForOwnerRequest, -) -> Response[LibraryForOwner]: +) -> Response[Any]: """ Args: multipart_data (LibraryForOwnerRequest): json_body (LibraryForOwnerRequest): Returns: - Response[LibraryForOwner] + Response[Any] """ kwargs = _get_kwargs( @@ -82,44 +73,20 @@ def sync_detailed( return _build_response(response=response) -def sync( - *, - client: AuthenticatedClient, - form_data: LibraryForOwnerRequest, - multipart_data: LibraryForOwnerRequest, - json_body: LibraryForOwnerRequest, -) -> Optional[LibraryForOwner]: - """ - Args: - multipart_data (LibraryForOwnerRequest): - json_body (LibraryForOwnerRequest): - - Returns: - Response[LibraryForOwner] - """ - - return sync_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - async def asyncio_detailed( *, client: AuthenticatedClient, form_data: LibraryForOwnerRequest, multipart_data: LibraryForOwnerRequest, json_body: LibraryForOwnerRequest, -) -> Response[LibraryForOwner]: +) -> Response[Any]: """ Args: multipart_data (LibraryForOwnerRequest): json_body (LibraryForOwnerRequest): Returns: - Response[LibraryForOwner] + Response[Any] """ kwargs = _get_kwargs( @@ -133,29 +100,3 @@ async def asyncio_detailed( response = await _client.request(**kwargs) return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, - form_data: LibraryForOwnerRequest, - multipart_data: LibraryForOwnerRequest, - json_body: LibraryForOwnerRequest, -) -> Optional[LibraryForOwner]: - """ - Args: - multipart_data (LibraryForOwnerRequest): - json_body (LibraryForOwnerRequest): - - Returns: - Response[LibraryForOwner] - """ - - return ( - await asyncio_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/libraries/libraries_destroy.py b/funkwhale_api_client/api/libraries/delete_library.py similarity index 100% rename from funkwhale_api_client/api/libraries/libraries_destroy.py rename to funkwhale_api_client/api/libraries/delete_library.py diff --git a/funkwhale_api_client/api/libraries/libraries_fs_import_destroy.py b/funkwhale_api_client/api/libraries/delete_library_fs_import.py similarity index 100% rename from funkwhale_api_client/api/libraries/libraries_fs_import_destroy.py rename to funkwhale_api_client/api/libraries/delete_library_fs_import.py diff --git a/funkwhale_api_client/api/libraries/libraries_list.py b/funkwhale_api_client/api/libraries/get_libraries.py similarity index 88% rename from funkwhale_api_client/api/libraries/libraries_list.py rename to funkwhale_api_client/api/libraries/get_libraries.py index 452c205cc9219a14e0a0a5efb7e399db9be964f6..bf71aa584359884e9a235a1153c333d5005ca793 100644 --- a/funkwhale_api_client/api/libraries/libraries_list.py +++ b/funkwhale_api_client/api/libraries/get_libraries.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.libraries_list_privacy_level import LibrariesListPrivacyLevel +from ...models.get_libraries_privacy_level import GetLibrariesPrivacyLevel from ...models.paginated_library_for_owner_list import PaginatedLibraryForOwnerList from ...types import UNSET, Response, Unset @@ -14,7 +14,7 @@ def _get_kwargs( ordering: Union[Unset, None, str] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, LibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, GetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, scope: Union[Unset, None, str] = UNSET, ) -> Dict[str, Any]: @@ -75,7 +75,7 @@ def sync_detailed( ordering: Union[Unset, None, str] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, LibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, GetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, scope: Union[Unset, None, str] = UNSET, ) -> Response[PaginatedLibraryForOwnerList]: @@ -84,7 +84,7 @@ def sync_detailed( ordering (Union[Unset, None, str]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, LibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, GetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): scope (Union[Unset, None, str]): @@ -116,7 +116,7 @@ def sync( ordering: Union[Unset, None, str] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, LibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, GetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, scope: Union[Unset, None, str] = UNSET, ) -> Optional[PaginatedLibraryForOwnerList]: @@ -125,7 +125,7 @@ def sync( ordering (Union[Unset, None, str]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, LibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, GetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): scope (Union[Unset, None, str]): @@ -150,7 +150,7 @@ async def asyncio_detailed( ordering: Union[Unset, None, str] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, LibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, GetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, scope: Union[Unset, None, str] = UNSET, ) -> Response[PaginatedLibraryForOwnerList]: @@ -159,7 +159,7 @@ async def asyncio_detailed( ordering (Union[Unset, None, str]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, LibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, GetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): scope (Union[Unset, None, str]): @@ -189,7 +189,7 @@ async def asyncio( ordering: Union[Unset, None, str] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, LibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, GetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, scope: Union[Unset, None, str] = UNSET, ) -> Optional[PaginatedLibraryForOwnerList]: @@ -198,7 +198,7 @@ async def asyncio( ordering (Union[Unset, None, str]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, LibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, GetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): scope (Union[Unset, None, str]): diff --git a/funkwhale_api_client/api/libraries/libraries_retrieve.py b/funkwhale_api_client/api/libraries/get_library.py similarity index 100% rename from funkwhale_api_client/api/libraries/libraries_retrieve.py rename to funkwhale_api_client/api/libraries/get_library.py diff --git a/funkwhale_api_client/api/libraries/get_library_follows.py b/funkwhale_api_client/api/libraries/get_library_follows.py new file mode 100644 index 0000000000000000000000000000000000000000..a19e36b2bf57bb60c8df39dc32e13b9b12922af4 --- /dev/null +++ b/funkwhale_api_client/api/libraries/get_library_follows.py @@ -0,0 +1,232 @@ +from typing import Any, Dict, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_library_follows_privacy_level import GetLibraryFollowsPrivacyLevel +from ...models.paginated_library_follow_list import PaginatedLibraryFollowList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + uuid: str, + *, + client: AuthenticatedClient, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + privacy_level: Union[Unset, None, GetLibraryFollowsPrivacyLevel] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/libraries/{uuid}/follows/".format(client.base_url, uuid=uuid) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["ordering"] = ordering + + params["page"] = page + + params["page_size"] = page_size + + json_privacy_level: Union[Unset, None, str] = UNSET + if not isinstance(privacy_level, Unset): + json_privacy_level = privacy_level.value if privacy_level else None + + params["privacy_level"] = json_privacy_level + + params["q"] = q + + params["scope"] = scope + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedLibraryFollowList]: + if response.status_code == 200: + response_200 = PaginatedLibraryFollowList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedLibraryFollowList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + uuid: str, + *, + client: AuthenticatedClient, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + privacy_level: Union[Unset, None, GetLibraryFollowsPrivacyLevel] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedLibraryFollowList]: + """ + Args: + uuid (str): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + privacy_level (Union[Unset, None, GetLibraryFollowsPrivacyLevel]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryFollowList] + """ + + kwargs = _get_kwargs( + uuid=uuid, + client=client, + ordering=ordering, + page=page, + page_size=page_size, + privacy_level=privacy_level, + q=q, + scope=scope, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + uuid: str, + *, + client: AuthenticatedClient, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + privacy_level: Union[Unset, None, GetLibraryFollowsPrivacyLevel] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedLibraryFollowList]: + """ + Args: + uuid (str): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + privacy_level (Union[Unset, None, GetLibraryFollowsPrivacyLevel]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryFollowList] + """ + + return sync_detailed( + uuid=uuid, + client=client, + ordering=ordering, + page=page, + page_size=page_size, + privacy_level=privacy_level, + q=q, + scope=scope, + ).parsed + + +async def asyncio_detailed( + uuid: str, + *, + client: AuthenticatedClient, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + privacy_level: Union[Unset, None, GetLibraryFollowsPrivacyLevel] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedLibraryFollowList]: + """ + Args: + uuid (str): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + privacy_level (Union[Unset, None, GetLibraryFollowsPrivacyLevel]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryFollowList] + """ + + kwargs = _get_kwargs( + uuid=uuid, + client=client, + ordering=ordering, + page=page, + page_size=page_size, + privacy_level=privacy_level, + q=q, + scope=scope, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + uuid: str, + *, + client: AuthenticatedClient, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + privacy_level: Union[Unset, None, GetLibraryFollowsPrivacyLevel] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedLibraryFollowList]: + """ + Args: + uuid (str): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + privacy_level (Union[Unset, None, GetLibraryFollowsPrivacyLevel]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryFollowList] + """ + + return ( + await asyncio_detailed( + uuid=uuid, + client=client, + ordering=ordering, + page=page, + page_size=page_size, + privacy_level=privacy_level, + q=q, + scope=scope, + ) + ).parsed diff --git a/funkwhale_api_client/api/libraries/get_library_fs_import.py b/funkwhale_api_client/api/libraries/get_library_fs_import.py new file mode 100644 index 0000000000000000000000000000000000000000..6afe6c44b7035b932379c3ccccb4089186c3fef4 --- /dev/null +++ b/funkwhale_api_client/api/libraries/get_library_fs_import.py @@ -0,0 +1,73 @@ +from typing import Any, Dict + +import httpx + +from ...client import AuthenticatedClient +from ...types import Response + + +def _get_kwargs( + *, + client: AuthenticatedClient, +) -> Dict[str, Any]: + url = "{}/api/v1/libraries/fs-import/".format(client.base_url) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + } + + +def _build_response(*, response: httpx.Response) -> Response[Any]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=None, + ) + + +def sync_detailed( + *, + client: AuthenticatedClient, +) -> Response[Any]: + """ + Returns: + Response[Any] + """ + + kwargs = _get_kwargs( + client=client, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +async def asyncio_detailed( + *, + client: AuthenticatedClient, +) -> Response[Any]: + """ + Returns: + Response[Any] + """ + + kwargs = _get_kwargs( + client=client, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) diff --git a/funkwhale_api_client/api/libraries/libraries_fs_import_retrieve.py b/funkwhale_api_client/api/libraries/libraries_fs_import_retrieve.py deleted file mode 100644 index 6430717337863f163f2f9969bf3109c86fd2df56..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/libraries/libraries_fs_import_retrieve.py +++ /dev/null @@ -1,112 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.library_for_owner import LibraryForOwner -from ...types import Response - - -def _get_kwargs( - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/libraries/fs-import/".format(client.base_url) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[LibraryForOwner]: - if response.status_code == 200: - response_200 = LibraryForOwner.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[LibraryForOwner]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, -) -> Response[LibraryForOwner]: - """ - Returns: - Response[LibraryForOwner] - """ - - kwargs = _get_kwargs( - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - *, - client: AuthenticatedClient, -) -> Optional[LibraryForOwner]: - """ - Returns: - Response[LibraryForOwner] - """ - - return sync_detailed( - client=client, - ).parsed - - -async def asyncio_detailed( - *, - client: AuthenticatedClient, -) -> Response[LibraryForOwner]: - """ - Returns: - Response[LibraryForOwner] - """ - - kwargs = _get_kwargs( - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, -) -> Optional[LibraryForOwner]: - """ - Returns: - Response[LibraryForOwner] - """ - - return ( - await asyncio_detailed( - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/libraries/libraries_partial_update.py b/funkwhale_api_client/api/libraries/partial_update_library.py similarity index 100% rename from funkwhale_api_client/api/libraries/libraries_partial_update.py rename to funkwhale_api_client/api/libraries/partial_update_library.py diff --git a/funkwhale_api_client/api/libraries/libraries_update.py b/funkwhale_api_client/api/libraries/update_library.py similarity index 100% rename from funkwhale_api_client/api/libraries/libraries_update.py rename to funkwhale_api_client/api/libraries/update_library.py diff --git a/funkwhale_api_client/api/licenses/licenses_retrieve.py b/funkwhale_api_client/api/licenses/get_license.py similarity index 100% rename from funkwhale_api_client/api/licenses/licenses_retrieve.py rename to funkwhale_api_client/api/licenses/get_license.py diff --git a/funkwhale_api_client/api/licenses/licenses_list.py b/funkwhale_api_client/api/licenses/get_licenses.py similarity index 100% rename from funkwhale_api_client/api/licenses/licenses_list.py rename to funkwhale_api_client/api/licenses/get_licenses.py diff --git a/funkwhale_api_client/api/mutations/mutations_destroy.py b/funkwhale_api_client/api/listen/get_track_file.py similarity index 93% rename from funkwhale_api_client/api/mutations/mutations_destroy.py rename to funkwhale_api_client/api/listen/get_track_file.py index 2b20afddb0c60a57b2ab6c771a6abacb82997d03..5e327ab57be1f4e9d92cd403a0118c7c27c049ef 100644 --- a/funkwhale_api_client/api/mutations/mutations_destroy.py +++ b/funkwhale_api_client/api/listen/get_track_file.py @@ -11,13 +11,13 @@ def _get_kwargs( *, client: AuthenticatedClient, ) -> Dict[str, Any]: - url = "{}/api/v1/mutations/{uuid}/".format(client.base_url, uuid=uuid) + url = "{}/api/v1/listen/{uuid}/".format(client.base_url, uuid=uuid) headers: Dict[str, str] = client.get_headers() cookies: Dict[str, Any] = client.get_cookies() return { - "method": "delete", + "method": "get", "url": url, "headers": headers, "cookies": cookies, diff --git a/funkwhale_api_client/api/manage/manage_accounts_action_create.py b/funkwhale_api_client/api/manage/admin_create_account_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_accounts_action_create.py rename to funkwhale_api_client/api/manage/admin_create_account_action.py diff --git a/funkwhale_api_client/api/manage/manage_library_albums_action_create.py b/funkwhale_api_client/api/manage/admin_create_album_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_albums_action_create.py rename to funkwhale_api_client/api/manage/admin_create_album_action.py diff --git a/funkwhale_api_client/api/manage/manage_library_artists_action_create.py b/funkwhale_api_client/api/manage/admin_create_artist_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_artists_action_create.py rename to funkwhale_api_client/api/manage/admin_create_artist_action.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_create.py b/funkwhale_api_client/api/manage/admin_create_federation_domain.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_create.py rename to funkwhale_api_client/api/manage/admin_create_federation_domain.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_action_create.py b/funkwhale_api_client/api/manage/admin_create_federation_domain_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_action_create.py rename to funkwhale_api_client/api/manage/admin_create_federation_domain_action.py diff --git a/funkwhale_api_client/api/manage/manage_users_invitations_create.py b/funkwhale_api_client/api/manage/admin_create_invitation.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_invitations_create.py rename to funkwhale_api_client/api/manage/admin_create_invitation.py diff --git a/funkwhale_api_client/api/manage/manage_users_invitations_action_create.py b/funkwhale_api_client/api/manage/admin_create_invitation_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_invitations_action_create.py rename to funkwhale_api_client/api/manage/admin_create_invitation_action.py diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_action_create.py b/funkwhale_api_client/api/manage/admin_create_library_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_libraries_action_create.py rename to funkwhale_api_client/api/manage/admin_create_library_action.py diff --git a/funkwhale_api_client/api/manage/manage_tags_create.py b/funkwhale_api_client/api/manage/admin_create_tag.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_tags_create.py rename to funkwhale_api_client/api/manage/admin_create_tag.py diff --git a/funkwhale_api_client/api/manage/manage_tags_action_create.py b/funkwhale_api_client/api/manage/admin_create_tag_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_tags_action_create.py rename to funkwhale_api_client/api/manage/admin_create_tag_action.py diff --git a/funkwhale_api_client/api/manage/manage_library_tracks_action_create.py b/funkwhale_api_client/api/manage/admin_create_track_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_tracks_action_create.py rename to funkwhale_api_client/api/manage/admin_create_track_action.py diff --git a/funkwhale_api_client/api/manage/manage_library_uploads_action_create.py b/funkwhale_api_client/api/manage/admin_create_upload_action.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_uploads_action_create.py rename to funkwhale_api_client/api/manage/admin_create_upload_action.py diff --git a/funkwhale_api_client/api/manage/manage_library_albums_destroy.py b/funkwhale_api_client/api/manage/admin_delete_album.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_albums_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_album.py diff --git a/funkwhale_api_client/api/manage/manage_library_artists_destroy.py b/funkwhale_api_client/api/manage/admin_delete_artist.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_artists_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_artist.py diff --git a/funkwhale_api_client/api/manage/manage_channels_destroy.py b/funkwhale_api_client/api/manage/admin_delete_channel.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_channels_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_channel.py diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_destroy.py b/funkwhale_api_client/api/manage/admin_delete_library.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_libraries_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_library.py diff --git a/funkwhale_api_client/api/manage/manage_tags_destroy.py b/funkwhale_api_client/api/manage/admin_delete_tag.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_tags_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_tag.py diff --git a/funkwhale_api_client/api/manage/manage_library_tracks_destroy.py b/funkwhale_api_client/api/manage/admin_delete_track.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_tracks_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_track.py diff --git a/funkwhale_api_client/api/manage/manage_library_uploads_destroy.py b/funkwhale_api_client/api/manage/admin_delete_upload.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_uploads_destroy.py rename to funkwhale_api_client/api/manage/admin_delete_upload.py diff --git a/funkwhale_api_client/api/manage/manage_accounts_retrieve.py b/funkwhale_api_client/api/manage/admin_get_account.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_accounts_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_account.py diff --git a/funkwhale_api_client/api/manage/manage_accounts_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_account_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_accounts_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_account_stats.py diff --git a/funkwhale_api_client/api/manage/manage_accounts_list.py b/funkwhale_api_client/api/manage/admin_get_accounts.py similarity index 91% rename from funkwhale_api_client/api/manage/manage_accounts_list.py rename to funkwhale_api_client/api/manage/admin_get_accounts.py index 4170c20a3422dbfcd4cab422eeb92f041ea02e3e..32cb820a1328e59eaede64d4e06151db5fb982f4 100644 --- a/funkwhale_api_client/api/manage/manage_accounts_list.py +++ b/funkwhale_api_client/api/manage/admin_get_accounts.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_accounts_list_type import ManageAccountsListType +from ...models.admin_get_accounts_type import AdminGetAccountsType from ...models.paginated_manage_actor_list import PaginatedManageActorList from ...types import UNSET, Response, Unset @@ -18,7 +18,7 @@ def _get_kwargs( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageAccountsListType] = UNSET, + type: Union[Unset, None, AdminGetAccountsType] = UNSET, ) -> Dict[str, Any]: url = "{}/api/v1/manage/accounts/".format(client.base_url) @@ -85,7 +85,7 @@ def sync_detailed( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageAccountsListType] = UNSET, + type: Union[Unset, None, AdminGetAccountsType] = UNSET, ) -> Response[PaginatedManageActorList]: """ Args: @@ -96,7 +96,7 @@ def sync_detailed( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - type (Union[Unset, None, ManageAccountsListType]): + type (Union[Unset, None, AdminGetAccountsType]): Returns: Response[PaginatedManageActorList] @@ -132,7 +132,7 @@ def sync( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageAccountsListType] = UNSET, + type: Union[Unset, None, AdminGetAccountsType] = UNSET, ) -> Optional[PaginatedManageActorList]: """ Args: @@ -143,7 +143,7 @@ def sync( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - type (Union[Unset, None, ManageAccountsListType]): + type (Union[Unset, None, AdminGetAccountsType]): Returns: Response[PaginatedManageActorList] @@ -172,7 +172,7 @@ async def asyncio_detailed( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageAccountsListType] = UNSET, + type: Union[Unset, None, AdminGetAccountsType] = UNSET, ) -> Response[PaginatedManageActorList]: """ Args: @@ -183,7 +183,7 @@ async def asyncio_detailed( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - type (Union[Unset, None, ManageAccountsListType]): + type (Union[Unset, None, AdminGetAccountsType]): Returns: Response[PaginatedManageActorList] @@ -217,7 +217,7 @@ async def asyncio( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageAccountsListType] = UNSET, + type: Union[Unset, None, AdminGetAccountsType] = UNSET, ) -> Optional[PaginatedManageActorList]: """ Args: @@ -228,7 +228,7 @@ async def asyncio( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - type (Union[Unset, None, ManageAccountsListType]): + type (Union[Unset, None, AdminGetAccountsType]): Returns: Response[PaginatedManageActorList] diff --git a/funkwhale_api_client/api/manage/manage_library_albums_retrieve.py b/funkwhale_api_client/api/manage/admin_get_album.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_albums_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_album.py diff --git a/funkwhale_api_client/api/manage/manage_library_albums_list.py b/funkwhale_api_client/api/manage/admin_get_albums.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_albums_list.py rename to funkwhale_api_client/api/manage/admin_get_albums.py diff --git a/funkwhale_api_client/api/manage/manage_library_artists_retrieve.py b/funkwhale_api_client/api/manage/admin_get_artist.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_artists_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_artist.py diff --git a/funkwhale_api_client/api/manage/manage_library_artists_list.py b/funkwhale_api_client/api/manage/admin_get_artists.py similarity index 87% rename from funkwhale_api_client/api/manage/manage_library_artists_list.py rename to funkwhale_api_client/api/manage/admin_get_artists.py index 51a48ce93eb115481588ccc06d89bf80c37866a6..c993a1da92bce578fd48d6ac658e71c566866a13 100644 --- a/funkwhale_api_client/api/manage/manage_library_artists_list.py +++ b/funkwhale_api_client/api/manage/admin_get_artists.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_library_artists_list_content_category import ManageLibraryArtistsListContentCategory +from ...models.admin_get_artists_content_category import AdminGetArtistsContentCategory from ...models.paginated_manage_artist_list import PaginatedManageArtistList from ...types import UNSET, Response, Unset @@ -11,7 +11,7 @@ from ...types import UNSET, Response, Unset def _get_kwargs( *, client: AuthenticatedClient, - content_category: Union[Unset, None, ManageLibraryArtistsListContentCategory] = UNSET, + content_category: Union[Unset, None, AdminGetArtistsContentCategory] = UNSET, fid: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, @@ -78,7 +78,7 @@ def _build_response(*, response: httpx.Response) -> Response[PaginatedManageArti def sync_detailed( *, client: AuthenticatedClient, - content_category: Union[Unset, None, ManageLibraryArtistsListContentCategory] = UNSET, + content_category: Union[Unset, None, AdminGetArtistsContentCategory] = UNSET, fid: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, @@ -89,7 +89,7 @@ def sync_detailed( ) -> Response[PaginatedManageArtistList]: """ Args: - content_category (Union[Unset, None, ManageLibraryArtistsListContentCategory]): + content_category (Union[Unset, None, AdminGetArtistsContentCategory]): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): name (Union[Unset, None, str]): @@ -125,7 +125,7 @@ def sync_detailed( def sync( *, client: AuthenticatedClient, - content_category: Union[Unset, None, ManageLibraryArtistsListContentCategory] = UNSET, + content_category: Union[Unset, None, AdminGetArtistsContentCategory] = UNSET, fid: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, @@ -136,7 +136,7 @@ def sync( ) -> Optional[PaginatedManageArtistList]: """ Args: - content_category (Union[Unset, None, ManageLibraryArtistsListContentCategory]): + content_category (Union[Unset, None, AdminGetArtistsContentCategory]): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): name (Union[Unset, None, str]): @@ -165,7 +165,7 @@ def sync( async def asyncio_detailed( *, client: AuthenticatedClient, - content_category: Union[Unset, None, ManageLibraryArtistsListContentCategory] = UNSET, + content_category: Union[Unset, None, AdminGetArtistsContentCategory] = UNSET, fid: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, @@ -176,7 +176,7 @@ async def asyncio_detailed( ) -> Response[PaginatedManageArtistList]: """ Args: - content_category (Union[Unset, None, ManageLibraryArtistsListContentCategory]): + content_category (Union[Unset, None, AdminGetArtistsContentCategory]): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): name (Union[Unset, None, str]): @@ -210,7 +210,7 @@ async def asyncio_detailed( async def asyncio( *, client: AuthenticatedClient, - content_category: Union[Unset, None, ManageLibraryArtistsListContentCategory] = UNSET, + content_category: Union[Unset, None, AdminGetArtistsContentCategory] = UNSET, fid: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, @@ -221,7 +221,7 @@ async def asyncio( ) -> Optional[PaginatedManageArtistList]: """ Args: - content_category (Union[Unset, None, ManageLibraryArtistsListContentCategory]): + content_category (Union[Unset, None, AdminGetArtistsContentCategory]): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): name (Union[Unset, None, str]): diff --git a/funkwhale_api_client/api/manage/manage_channels_retrieve.py b/funkwhale_api_client/api/manage/admin_get_channel.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_channels_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_channel.py diff --git a/funkwhale_api_client/api/manage/manage_channels_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_channel_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_channels_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_channel_stats.py diff --git a/funkwhale_api_client/api/manage/manage_channels_list.py b/funkwhale_api_client/api/manage/admin_get_channels.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_channels_list.py rename to funkwhale_api_client/api/manage/admin_get_channels.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_retrieve.py b/funkwhale_api_client/api/manage/admin_get_federation_domain.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_federation_domain.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_nodeinfo_retrieve.py b/funkwhale_api_client/api/manage/admin_get_federation_domain_nodeinfo.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_nodeinfo_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_federation_domain_nodeinfo.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_federation_domain_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_federation_domain_stats.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_list.py b/funkwhale_api_client/api/manage/admin_get_federation_domains.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_list.py rename to funkwhale_api_client/api/manage/admin_get_federation_domains.py diff --git a/funkwhale_api_client/api/manage/manage_users_invitations_retrieve.py b/funkwhale_api_client/api/manage/admin_get_invitation.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_invitations_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_invitation.py diff --git a/funkwhale_api_client/api/manage/manage_users_invitations_list.py b/funkwhale_api_client/api/manage/admin_get_invitations.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_invitations_list.py rename to funkwhale_api_client/api/manage/admin_get_invitations.py diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_list.py b/funkwhale_api_client/api/manage/admin_get_libraries.py similarity index 78% rename from funkwhale_api_client/api/manage/manage_library_libraries_list.py rename to funkwhale_api_client/api/manage/admin_get_libraries.py index 41f806fe7ade0b081f66266e38ed266ed9c20fd7..3b09ade01a9064316ba091c6c92cd5edc552f0a7 100644 --- a/funkwhale_api_client/api/manage/manage_library_libraries_list.py +++ b/funkwhale_api_client/api/manage/admin_get_libraries.py @@ -3,8 +3,8 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_library_libraries_list_ordering_item import ManageLibraryLibrariesListOrderingItem -from ...models.manage_library_libraries_list_privacy_level import ManageLibraryLibrariesListPrivacyLevel +from ...models.admin_get_libraries_ordering_item import AdminGetLibrariesOrderingItem +from ...models.admin_get_libraries_privacy_level import AdminGetLibrariesPrivacyLevel from ...models.paginated_manage_library_list import PaginatedManageLibraryList from ...types import UNSET, Response, Unset @@ -15,10 +15,10 @@ def _get_kwargs( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetLibrariesOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Dict[str, Any]: url = "{}/api/v1/manage/library/libraries/".format(client.base_url) @@ -93,10 +93,10 @@ def sync_detailed( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetLibrariesOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Response[PaginatedManageLibraryList]: """ @@ -104,10 +104,10 @@ def sync_detailed( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): name (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetLibrariesOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): Returns: @@ -140,10 +140,10 @@ def sync( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetLibrariesOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Optional[PaginatedManageLibraryList]: """ @@ -151,10 +151,10 @@ def sync( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): name (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetLibrariesOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): Returns: @@ -180,10 +180,10 @@ async def asyncio_detailed( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetLibrariesOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Response[PaginatedManageLibraryList]: """ @@ -191,10 +191,10 @@ async def asyncio_detailed( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): name (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetLibrariesOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): Returns: @@ -225,10 +225,10 @@ async def asyncio( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, name: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetLibrariesOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, - privacy_level: Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetLibrariesPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Optional[PaginatedManageLibraryList]: """ @@ -236,10 +236,10 @@ async def asyncio( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): name (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryLibrariesListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetLibrariesOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): - privacy_level (Union[Unset, None, ManageLibraryLibrariesListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetLibrariesPrivacyLevel]): q (Union[Unset, None, str]): Returns: diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_retrieve.py b/funkwhale_api_client/api/manage/admin_get_library.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_libraries_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_library.py diff --git a/funkwhale_api_client/api/manage/manage_library_albums_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_library_album_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_albums_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_library_album_stats.py diff --git a/funkwhale_api_client/api/manage/manage_library_artists_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_library_artist_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_artists_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_library_artist_stats.py diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_library_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_libraries_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_library_stats.py diff --git a/funkwhale_api_client/api/manage/manage_tags_retrieve.py b/funkwhale_api_client/api/manage/admin_get_tag.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_tags_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_tag.py diff --git a/funkwhale_api_client/api/manage/manage_tags_list.py b/funkwhale_api_client/api/manage/admin_get_tags.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_tags_list.py rename to funkwhale_api_client/api/manage/admin_get_tags.py diff --git a/funkwhale_api_client/api/manage/manage_library_tracks_retrieve.py b/funkwhale_api_client/api/manage/admin_get_track.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_tracks_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_track.py diff --git a/funkwhale_api_client/api/manage/manage_library_tracks_stats_retrieve.py b/funkwhale_api_client/api/manage/admin_get_track_stats.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_tracks_stats_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_track_stats.py diff --git a/funkwhale_api_client/api/manage/manage_library_tracks_list.py b/funkwhale_api_client/api/manage/admin_get_tracks.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_tracks_list.py rename to funkwhale_api_client/api/manage/admin_get_tracks.py diff --git a/funkwhale_api_client/api/manage/manage_library_uploads_retrieve.py b/funkwhale_api_client/api/manage/admin_get_upload.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_uploads_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_upload.py diff --git a/funkwhale_api_client/api/manage/manage_library_uploads_list.py b/funkwhale_api_client/api/manage/admin_get_uploads.py similarity index 82% rename from funkwhale_api_client/api/manage/manage_library_uploads_list.py rename to funkwhale_api_client/api/manage/admin_get_uploads.py index 3816bf415a5ed0cfd1e5d9aba916b3f2f67c556c..c6cd61d96606a181b3e78617084abd5ee3cdddda 100644 --- a/funkwhale_api_client/api/manage/manage_library_uploads_list.py +++ b/funkwhale_api_client/api/manage/admin_get_uploads.py @@ -3,8 +3,8 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_library_uploads_list_import_status import ManageLibraryUploadsListImportStatus -from ...models.manage_library_uploads_list_ordering_item import ManageLibraryUploadsListOrderingItem +from ...models.admin_get_uploads_import_status import AdminGetUploadsImportStatus +from ...models.admin_get_uploads_ordering_item import AdminGetUploadsOrderingItem from ...models.paginated_manage_upload_list import PaginatedManageUploadList from ...types import UNSET, Response, Unset @@ -15,9 +15,9 @@ def _get_kwargs( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, ManageLibraryUploadsListImportStatus] = UNSET, + import_status: Union[Unset, None, AdminGetUploadsImportStatus] = UNSET, mimetype: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetUploadsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, privacy_level: Union[Unset, None, str] = UNSET, @@ -99,9 +99,9 @@ def sync_detailed( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, ManageLibraryUploadsListImportStatus] = UNSET, + import_status: Union[Unset, None, AdminGetUploadsImportStatus] = UNSET, mimetype: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetUploadsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, privacy_level: Union[Unset, None, str] = UNSET, @@ -112,9 +112,9 @@ def sync_detailed( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, ManageLibraryUploadsListImportStatus]): + import_status (Union[Unset, None, AdminGetUploadsImportStatus]): mimetype (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetUploadsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): privacy_level (Union[Unset, None, str]): @@ -152,9 +152,9 @@ def sync( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, ManageLibraryUploadsListImportStatus] = UNSET, + import_status: Union[Unset, None, AdminGetUploadsImportStatus] = UNSET, mimetype: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetUploadsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, privacy_level: Union[Unset, None, str] = UNSET, @@ -165,9 +165,9 @@ def sync( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, ManageLibraryUploadsListImportStatus]): + import_status (Union[Unset, None, AdminGetUploadsImportStatus]): mimetype (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetUploadsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): privacy_level (Union[Unset, None, str]): @@ -198,9 +198,9 @@ async def asyncio_detailed( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, ManageLibraryUploadsListImportStatus] = UNSET, + import_status: Union[Unset, None, AdminGetUploadsImportStatus] = UNSET, mimetype: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetUploadsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, privacy_level: Union[Unset, None, str] = UNSET, @@ -211,9 +211,9 @@ async def asyncio_detailed( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, ManageLibraryUploadsListImportStatus]): + import_status (Union[Unset, None, AdminGetUploadsImportStatus]): mimetype (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetUploadsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): privacy_level (Union[Unset, None, str]): @@ -249,9 +249,9 @@ async def asyncio( domain: Union[Unset, None, str] = UNSET, fid: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, ManageLibraryUploadsListImportStatus] = UNSET, + import_status: Union[Unset, None, AdminGetUploadsImportStatus] = UNSET, mimetype: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[AdminGetUploadsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, privacy_level: Union[Unset, None, str] = UNSET, @@ -262,9 +262,9 @@ async def asyncio( domain (Union[Unset, None, str]): fid (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, ManageLibraryUploadsListImportStatus]): + import_status (Union[Unset, None, AdminGetUploadsImportStatus]): mimetype (Union[Unset, None, str]): - ordering (Union[Unset, None, List[ManageLibraryUploadsListOrderingItem]]): + ordering (Union[Unset, None, List[AdminGetUploadsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): privacy_level (Union[Unset, None, str]): diff --git a/funkwhale_api_client/api/manage/manage_users_users_retrieve.py b/funkwhale_api_client/api/manage/admin_get_user.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_users_retrieve.py rename to funkwhale_api_client/api/manage/admin_get_user.py diff --git a/funkwhale_api_client/api/manage/manage_users_users_list.py b/funkwhale_api_client/api/manage/admin_get_users.py similarity index 91% rename from funkwhale_api_client/api/manage/manage_users_users_list.py rename to funkwhale_api_client/api/manage/admin_get_users.py index d842a00f43c46c6242ca9d71854235a86eea6723..36fc9ab694e2be25057ba2705f9610951584e4e2 100644 --- a/funkwhale_api_client/api/manage/manage_users_users_list.py +++ b/funkwhale_api_client/api/manage/admin_get_users.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_users_users_list_privacy_level import ManageUsersUsersListPrivacyLevel +from ...models.admin_get_users_privacy_level import AdminGetUsersPrivacyLevel from ...models.paginated_manage_user_list import PaginatedManageUserList from ...types import UNSET, Response, Unset @@ -20,7 +20,7 @@ def _get_kwargs( permission_library: Union[Unset, None, bool] = UNSET, permission_moderation: Union[Unset, None, bool] = UNSET, permission_settings: Union[Unset, None, bool] = UNSET, - privacy_level: Union[Unset, None, ManageUsersUsersListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetUsersPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Dict[str, Any]: url = "{}/api/v1/manage/users/users/".format(client.base_url) @@ -96,7 +96,7 @@ def sync_detailed( permission_library: Union[Unset, None, bool] = UNSET, permission_moderation: Union[Unset, None, bool] = UNSET, permission_settings: Union[Unset, None, bool] = UNSET, - privacy_level: Union[Unset, None, ManageUsersUsersListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetUsersPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Response[PaginatedManageUserList]: """ @@ -110,7 +110,7 @@ def sync_detailed( permission_library (Union[Unset, None, bool]): permission_moderation (Union[Unset, None, bool]): permission_settings (Union[Unset, None, bool]): - privacy_level (Union[Unset, None, ManageUsersUsersListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetUsersPrivacyLevel]): q (Union[Unset, None, str]): Returns: @@ -152,7 +152,7 @@ def sync( permission_library: Union[Unset, None, bool] = UNSET, permission_moderation: Union[Unset, None, bool] = UNSET, permission_settings: Union[Unset, None, bool] = UNSET, - privacy_level: Union[Unset, None, ManageUsersUsersListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetUsersPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Optional[PaginatedManageUserList]: """ @@ -166,7 +166,7 @@ def sync( permission_library (Union[Unset, None, bool]): permission_moderation (Union[Unset, None, bool]): permission_settings (Union[Unset, None, bool]): - privacy_level (Union[Unset, None, ManageUsersUsersListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetUsersPrivacyLevel]): q (Union[Unset, None, str]): Returns: @@ -201,7 +201,7 @@ async def asyncio_detailed( permission_library: Union[Unset, None, bool] = UNSET, permission_moderation: Union[Unset, None, bool] = UNSET, permission_settings: Union[Unset, None, bool] = UNSET, - privacy_level: Union[Unset, None, ManageUsersUsersListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetUsersPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Response[PaginatedManageUserList]: """ @@ -215,7 +215,7 @@ async def asyncio_detailed( permission_library (Union[Unset, None, bool]): permission_moderation (Union[Unset, None, bool]): permission_settings (Union[Unset, None, bool]): - privacy_level (Union[Unset, None, ManageUsersUsersListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetUsersPrivacyLevel]): q (Union[Unset, None, str]): Returns: @@ -255,7 +255,7 @@ async def asyncio( permission_library: Union[Unset, None, bool] = UNSET, permission_moderation: Union[Unset, None, bool] = UNSET, permission_settings: Union[Unset, None, bool] = UNSET, - privacy_level: Union[Unset, None, ManageUsersUsersListPrivacyLevel] = UNSET, + privacy_level: Union[Unset, None, AdminGetUsersPrivacyLevel] = UNSET, q: Union[Unset, None, str] = UNSET, ) -> Optional[PaginatedManageUserList]: """ @@ -269,7 +269,7 @@ async def asyncio( permission_library (Union[Unset, None, bool]): permission_moderation (Union[Unset, None, bool]): permission_settings (Union[Unset, None, bool]): - privacy_level (Union[Unset, None, ManageUsersUsersListPrivacyLevel]): + privacy_level (Union[Unset, None, AdminGetUsersPrivacyLevel]): q (Union[Unset, None, str]): Returns: diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_partial_update.py b/funkwhale_api_client/api/manage/admin_partial_update_federation_domain.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_partial_update.py rename to funkwhale_api_client/api/manage/admin_partial_update_federation_domain.py diff --git a/funkwhale_api_client/api/manage/manage_users_invitations_partial_update.py b/funkwhale_api_client/api/manage/admin_partial_update_invitation.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_invitations_partial_update.py rename to funkwhale_api_client/api/manage/admin_partial_update_invitation.py diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_partial_update.py b/funkwhale_api_client/api/manage/admin_partial_update_library.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_libraries_partial_update.py rename to funkwhale_api_client/api/manage/admin_partial_update_library.py diff --git a/funkwhale_api_client/api/manage/manage_users_users_partial_update.py b/funkwhale_api_client/api/manage/admin_partial_update_user.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_users_partial_update.py rename to funkwhale_api_client/api/manage/admin_partial_update_user.py diff --git a/funkwhale_api_client/api/manage/manage_federation_domains_update.py b/funkwhale_api_client/api/manage/admin_update_federation_domain.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_federation_domains_update.py rename to funkwhale_api_client/api/manage/admin_update_federation_domain.py diff --git a/funkwhale_api_client/api/manage/manage_users_invitations_update.py b/funkwhale_api_client/api/manage/admin_update_invitation.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_invitations_update.py rename to funkwhale_api_client/api/manage/admin_update_invitation.py diff --git a/funkwhale_api_client/api/manage/manage_library_libraries_update.py b/funkwhale_api_client/api/manage/admin_update_library.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_library_libraries_update.py rename to funkwhale_api_client/api/manage/admin_update_library.py diff --git a/funkwhale_api_client/api/manage/manage_users_users_update.py b/funkwhale_api_client/api/manage/admin_update_user.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_users_users_update.py rename to funkwhale_api_client/api/manage/admin_update_user.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_instance_policies_create.py b/funkwhale_api_client/api/manage/moderation_create_instance_policy.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_instance_policies_create.py rename to funkwhale_api_client/api/manage/moderation_create_instance_policy.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_notes_create.py b/funkwhale_api_client/api/manage/moderation_create_note.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_notes_create.py rename to funkwhale_api_client/api/manage/moderation_create_note.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_instance_policies_destroy.py b/funkwhale_api_client/api/manage/moderation_delete_instance_policy.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_instance_policies_destroy.py rename to funkwhale_api_client/api/manage/moderation_delete_instance_policy.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_notes_destroy.py b/funkwhale_api_client/api/manage/moderation_delete_note.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_notes_destroy.py rename to funkwhale_api_client/api/manage/moderation_delete_note.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_instance_policies_list.py b/funkwhale_api_client/api/manage/moderation_get_instance_policies.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_instance_policies_list.py rename to funkwhale_api_client/api/manage/moderation_get_instance_policies.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_instance_policies_retrieve.py b/funkwhale_api_client/api/manage/moderation_get_instance_policy.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_instance_policies_retrieve.py rename to funkwhale_api_client/api/manage/moderation_get_instance_policy.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_notes_retrieve.py b/funkwhale_api_client/api/manage/moderation_get_note.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_notes_retrieve.py rename to funkwhale_api_client/api/manage/moderation_get_note.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_notes_list.py b/funkwhale_api_client/api/manage/moderation_get_notes.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_notes_list.py rename to funkwhale_api_client/api/manage/moderation_get_notes.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_reports_retrieve.py b/funkwhale_api_client/api/manage/moderation_get_report.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_reports_retrieve.py rename to funkwhale_api_client/api/manage/moderation_get_report.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_reports_list.py b/funkwhale_api_client/api/manage/moderation_get_reports.py similarity index 89% rename from funkwhale_api_client/api/manage/manage_moderation_reports_list.py rename to funkwhale_api_client/api/manage/moderation_get_reports.py index 12b8cb4a1acebb05ecac03172d64240d0ea4dc38..21fb000df313b2c5a8722e76213224665db899c3 100644 --- a/funkwhale_api_client/api/manage/manage_moderation_reports_list.py +++ b/funkwhale_api_client/api/manage/moderation_get_reports.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_moderation_reports_list_type import ManageModerationReportsListType +from ...models.moderation_get_reports_type import ModerationGetReportsType from ...models.paginated_manage_report_list import PaginatedManageReportList from ...types import UNSET, Response, Unset @@ -17,7 +17,7 @@ def _get_kwargs( page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, submitter_email: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageModerationReportsListType] = UNSET, + type: Union[Unset, None, ModerationGetReportsType] = UNSET, ) -> Dict[str, Any]: url = "{}/api/v1/manage/moderation/reports/".format(client.base_url) @@ -81,7 +81,7 @@ def sync_detailed( page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, submitter_email: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageModerationReportsListType] = UNSET, + type: Union[Unset, None, ModerationGetReportsType] = UNSET, ) -> Response[PaginatedManageReportList]: """ Args: @@ -91,7 +91,7 @@ def sync_detailed( page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): submitter_email (Union[Unset, None, str]): - type (Union[Unset, None, ManageModerationReportsListType]): + type (Union[Unset, None, ModerationGetReportsType]): Returns: Response[PaginatedManageReportList] @@ -125,7 +125,7 @@ def sync( page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, submitter_email: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageModerationReportsListType] = UNSET, + type: Union[Unset, None, ModerationGetReportsType] = UNSET, ) -> Optional[PaginatedManageReportList]: """ Args: @@ -135,7 +135,7 @@ def sync( page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): submitter_email (Union[Unset, None, str]): - type (Union[Unset, None, ManageModerationReportsListType]): + type (Union[Unset, None, ModerationGetReportsType]): Returns: Response[PaginatedManageReportList] @@ -162,7 +162,7 @@ async def asyncio_detailed( page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, submitter_email: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageModerationReportsListType] = UNSET, + type: Union[Unset, None, ModerationGetReportsType] = UNSET, ) -> Response[PaginatedManageReportList]: """ Args: @@ -172,7 +172,7 @@ async def asyncio_detailed( page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): submitter_email (Union[Unset, None, str]): - type (Union[Unset, None, ManageModerationReportsListType]): + type (Union[Unset, None, ModerationGetReportsType]): Returns: Response[PaginatedManageReportList] @@ -204,7 +204,7 @@ async def asyncio( page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, submitter_email: Union[Unset, None, str] = UNSET, - type: Union[Unset, None, ManageModerationReportsListType] = UNSET, + type: Union[Unset, None, ModerationGetReportsType] = UNSET, ) -> Optional[PaginatedManageReportList]: """ Args: @@ -214,7 +214,7 @@ async def asyncio( page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): submitter_email (Union[Unset, None, str]): - type (Union[Unset, None, ManageModerationReportsListType]): + type (Union[Unset, None, ModerationGetReportsType]): Returns: Response[PaginatedManageReportList] diff --git a/funkwhale_api_client/api/manage/manage_moderation_requests_retrieve.py b/funkwhale_api_client/api/manage/moderation_get_request.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_requests_retrieve.py rename to funkwhale_api_client/api/manage/moderation_get_request.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_requests_list.py b/funkwhale_api_client/api/manage/moderation_get_requests.py similarity index 77% rename from funkwhale_api_client/api/manage/manage_moderation_requests_list.py rename to funkwhale_api_client/api/manage/moderation_get_requests.py index 65a312002b2152e0007ba1de8b05729199f69821..92e3a7efa56b363c927619be67e1aee3a8d8a085 100644 --- a/funkwhale_api_client/api/manage/manage_moderation_requests_list.py +++ b/funkwhale_api_client/api/manage/moderation_get_requests.py @@ -3,8 +3,8 @@ from typing import Any, Dict, Optional, Union import httpx from ...client import AuthenticatedClient -from ...models.manage_moderation_requests_list_status import ManageModerationRequestsListStatus -from ...models.manage_moderation_requests_list_type import ManageModerationRequestsListType +from ...models.moderation_get_requests_status import ModerationGetRequestsStatus +from ...models.moderation_get_requests_type import ModerationGetRequestsType from ...models.paginated_manage_user_request_list import PaginatedManageUserRequestList from ...types import UNSET, Response, Unset @@ -16,8 +16,8 @@ def _get_kwargs( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - status: Union[Unset, None, ManageModerationRequestsListStatus] = UNSET, - type: Union[Unset, None, ManageModerationRequestsListType] = UNSET, + status: Union[Unset, None, ModerationGetRequestsStatus] = UNSET, + type: Union[Unset, None, ModerationGetRequestsType] = UNSET, ) -> Dict[str, Any]: url = "{}/api/v1/manage/moderation/requests/".format(client.base_url) @@ -81,8 +81,8 @@ def sync_detailed( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - status: Union[Unset, None, ManageModerationRequestsListStatus] = UNSET, - type: Union[Unset, None, ManageModerationRequestsListType] = UNSET, + status: Union[Unset, None, ModerationGetRequestsStatus] = UNSET, + type: Union[Unset, None, ModerationGetRequestsType] = UNSET, ) -> Response[PaginatedManageUserRequestList]: """ Args: @@ -90,8 +90,8 @@ def sync_detailed( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - status (Union[Unset, None, ManageModerationRequestsListStatus]): - type (Union[Unset, None, ManageModerationRequestsListType]): + status (Union[Unset, None, ModerationGetRequestsStatus]): + type (Union[Unset, None, ModerationGetRequestsType]): Returns: Response[PaginatedManageUserRequestList] @@ -122,8 +122,8 @@ def sync( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - status: Union[Unset, None, ManageModerationRequestsListStatus] = UNSET, - type: Union[Unset, None, ManageModerationRequestsListType] = UNSET, + status: Union[Unset, None, ModerationGetRequestsStatus] = UNSET, + type: Union[Unset, None, ModerationGetRequestsType] = UNSET, ) -> Optional[PaginatedManageUserRequestList]: """ Args: @@ -131,8 +131,8 @@ def sync( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - status (Union[Unset, None, ManageModerationRequestsListStatus]): - type (Union[Unset, None, ManageModerationRequestsListType]): + status (Union[Unset, None, ModerationGetRequestsStatus]): + type (Union[Unset, None, ModerationGetRequestsType]): Returns: Response[PaginatedManageUserRequestList] @@ -156,8 +156,8 @@ async def asyncio_detailed( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - status: Union[Unset, None, ManageModerationRequestsListStatus] = UNSET, - type: Union[Unset, None, ManageModerationRequestsListType] = UNSET, + status: Union[Unset, None, ModerationGetRequestsStatus] = UNSET, + type: Union[Unset, None, ModerationGetRequestsType] = UNSET, ) -> Response[PaginatedManageUserRequestList]: """ Args: @@ -165,8 +165,8 @@ async def asyncio_detailed( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - status (Union[Unset, None, ManageModerationRequestsListStatus]): - type (Union[Unset, None, ManageModerationRequestsListType]): + status (Union[Unset, None, ModerationGetRequestsStatus]): + type (Union[Unset, None, ModerationGetRequestsType]): Returns: Response[PaginatedManageUserRequestList] @@ -195,8 +195,8 @@ async def asyncio( page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, - status: Union[Unset, None, ManageModerationRequestsListStatus] = UNSET, - type: Union[Unset, None, ManageModerationRequestsListType] = UNSET, + status: Union[Unset, None, ModerationGetRequestsStatus] = UNSET, + type: Union[Unset, None, ModerationGetRequestsType] = UNSET, ) -> Optional[PaginatedManageUserRequestList]: """ Args: @@ -204,8 +204,8 @@ async def asyncio( page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): - status (Union[Unset, None, ManageModerationRequestsListStatus]): - type (Union[Unset, None, ManageModerationRequestsListType]): + status (Union[Unset, None, ModerationGetRequestsStatus]): + type (Union[Unset, None, ModerationGetRequestsType]): Returns: Response[PaginatedManageUserRequestList] diff --git a/funkwhale_api_client/api/manage/manage_moderation_instance_policies_partial_update.py b/funkwhale_api_client/api/manage/moderation_partial_update_instance_policy.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_instance_policies_partial_update.py rename to funkwhale_api_client/api/manage/moderation_partial_update_instance_policy.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_reports_partial_update.py b/funkwhale_api_client/api/manage/moderation_partial_update_report.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_reports_partial_update.py rename to funkwhale_api_client/api/manage/moderation_partial_update_report.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_requests_partial_update.py b/funkwhale_api_client/api/manage/moderation_partial_update_request.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_requests_partial_update.py rename to funkwhale_api_client/api/manage/moderation_partial_update_request.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_instance_policies_update.py b/funkwhale_api_client/api/manage/moderation_update_instance_policy.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_instance_policies_update.py rename to funkwhale_api_client/api/manage/moderation_update_instance_policy.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_reports_update.py b/funkwhale_api_client/api/manage/moderation_update_report.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_reports_update.py rename to funkwhale_api_client/api/manage/moderation_update_report.py diff --git a/funkwhale_api_client/api/manage/manage_moderation_requests_update.py b/funkwhale_api_client/api/manage/moderation_update_request.py similarity index 100% rename from funkwhale_api_client/api/manage/manage_moderation_requests_update.py rename to funkwhale_api_client/api/manage/moderation_update_request.py diff --git a/funkwhale_api_client/api/moderation/moderation_content_filters_create.py b/funkwhale_api_client/api/moderation/create_moderation_content_filter.py similarity index 100% rename from funkwhale_api_client/api/moderation/moderation_content_filters_create.py rename to funkwhale_api_client/api/moderation/create_moderation_content_filter.py diff --git a/funkwhale_api_client/api/moderation/moderation_reports_create.py b/funkwhale_api_client/api/moderation/create_moderation_report.py similarity index 100% rename from funkwhale_api_client/api/moderation/moderation_reports_create.py rename to funkwhale_api_client/api/moderation/create_moderation_report.py diff --git a/funkwhale_api_client/api/moderation/moderation_content_filters_destroy.py b/funkwhale_api_client/api/moderation/delete_moderation_content_filter.py similarity index 100% rename from funkwhale_api_client/api/moderation/moderation_content_filters_destroy.py rename to funkwhale_api_client/api/moderation/delete_moderation_content_filter.py diff --git a/funkwhale_api_client/api/moderation/moderation_content_filters_retrieve.py b/funkwhale_api_client/api/moderation/get_moderation_content_filter.py similarity index 100% rename from funkwhale_api_client/api/moderation/moderation_content_filters_retrieve.py rename to funkwhale_api_client/api/moderation/get_moderation_content_filter.py diff --git a/funkwhale_api_client/api/moderation/moderation_content_filters_list.py b/funkwhale_api_client/api/moderation/get_moderation_content_filters.py similarity index 100% rename from funkwhale_api_client/api/moderation/moderation_content_filters_list.py rename to funkwhale_api_client/api/moderation/get_moderation_content_filters.py diff --git a/funkwhale_api_client/api/mutations/__init__.py b/funkwhale_api_client/api/mutations/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/funkwhale_api_client/api/mutations/mutations_approve_create.py b/funkwhale_api_client/api/mutations/mutations_approve_create.py deleted file mode 100644 index edab908d2ccf1c9bca38df203db75188c1d521d8..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/mutations/mutations_approve_create.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.api_mutation import APIMutation -from ...models.api_mutation_request import APIMutationRequest -from ...types import Response - - -def _get_kwargs( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/mutations/{uuid}/approve/".format(client.base_url, uuid=uuid) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[APIMutation]: - if response.status_code == 200: - response_200 = APIMutation.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[APIMutation]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Response[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Optional[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - return sync_detailed( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Response[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Optional[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - return ( - await asyncio_detailed( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/mutations/mutations_reject_create.py b/funkwhale_api_client/api/mutations/mutations_reject_create.py deleted file mode 100644 index 43d42472d7ad8a22d0c19bd5910500c68afe1b00..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/mutations/mutations_reject_create.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.api_mutation import APIMutation -from ...models.api_mutation_request import APIMutationRequest -from ...types import Response - - -def _get_kwargs( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/mutations/{uuid}/reject/".format(client.base_url, uuid=uuid) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[APIMutation]: - if response.status_code == 200: - response_200 = APIMutation.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[APIMutation]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Response[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Optional[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - return sync_detailed( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Response[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - uuid: str, - *, - client: AuthenticatedClient, - form_data: APIMutationRequest, - multipart_data: APIMutationRequest, - json_body: APIMutationRequest, -) -> Optional[APIMutation]: - """ - Args: - uuid (str): - multipart_data (APIMutationRequest): - json_body (APIMutationRequest): - - Returns: - Response[APIMutation] - """ - - return ( - await asyncio_detailed( - uuid=uuid, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/mutations/mutations_retrieve.py b/funkwhale_api_client/api/mutations/mutations_retrieve.py deleted file mode 100644 index 96a53dd2bc31ff4092d319589402403a896757f5..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/mutations/mutations_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.api_mutation import APIMutation -from ...types import Response - - -def _get_kwargs( - uuid: str, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/mutations/{uuid}/".format(client.base_url, uuid=uuid) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[APIMutation]: - if response.status_code == 200: - response_200 = APIMutation.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[APIMutation]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - uuid: str, - *, - client: AuthenticatedClient, -) -> Response[APIMutation]: - """ - Args: - uuid (str): - - Returns: - Response[APIMutation] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - uuid: str, - *, - client: AuthenticatedClient, -) -> Optional[APIMutation]: - """ - Args: - uuid (str): - - Returns: - Response[APIMutation] - """ - - return sync_detailed( - uuid=uuid, - client=client, - ).parsed - - -async def asyncio_detailed( - uuid: str, - *, - client: AuthenticatedClient, -) -> Response[APIMutation]: - """ - Args: - uuid (str): - - Returns: - Response[APIMutation] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - uuid: str, - *, - client: AuthenticatedClient, -) -> Optional[APIMutation]: - """ - Args: - uuid (str): - - Returns: - Response[APIMutation] - """ - - return ( - await asyncio_detailed( - uuid=uuid, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/oauth/oauth_apps_create.py b/funkwhale_api_client/api/oauth/create_oauth_app.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_create.py rename to funkwhale_api_client/api/oauth/create_oauth_app.py diff --git a/funkwhale_api_client/api/oauth/oauth_authorize_create.py b/funkwhale_api_client/api/oauth/create_oauth_authorize.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_authorize_create.py rename to funkwhale_api_client/api/oauth/create_oauth_authorize.py diff --git a/funkwhale_api_client/api/oauth/oauth_apps_destroy.py b/funkwhale_api_client/api/oauth/delete_oauth_app.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_destroy.py rename to funkwhale_api_client/api/oauth/delete_oauth_app.py diff --git a/funkwhale_api_client/api/oauth/oauth_grants_destroy.py b/funkwhale_api_client/api/oauth/delete_oauth_grant.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_grants_destroy.py rename to funkwhale_api_client/api/oauth/delete_oauth_grant.py diff --git a/funkwhale_api_client/api/oauth/oauth_apps_retrieve.py b/funkwhale_api_client/api/oauth/get_oauth_app.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_retrieve.py rename to funkwhale_api_client/api/oauth/get_oauth_app.py diff --git a/funkwhale_api_client/api/oauth/oauth_apps_list.py b/funkwhale_api_client/api/oauth/get_oauth_apps.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_list.py rename to funkwhale_api_client/api/oauth/get_oauth_apps.py diff --git a/funkwhale_api_client/api/oauth/oauth_authorize_retrieve.py b/funkwhale_api_client/api/oauth/get_oauth_authorize.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_authorize_retrieve.py rename to funkwhale_api_client/api/oauth/get_oauth_authorize.py diff --git a/funkwhale_api_client/api/oauth/oauth_grants_retrieve.py b/funkwhale_api_client/api/oauth/get_oauth_grant.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_grants_retrieve.py rename to funkwhale_api_client/api/oauth/get_oauth_grant.py diff --git a/funkwhale_api_client/api/oauth/oauth_grants_list.py b/funkwhale_api_client/api/oauth/get_oauth_grants.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_grants_list.py rename to funkwhale_api_client/api/oauth/get_oauth_grants.py diff --git a/funkwhale_api_client/api/oauth/oauth_apps_partial_update.py b/funkwhale_api_client/api/oauth/partial_update_oauth_app.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_partial_update.py rename to funkwhale_api_client/api/oauth/partial_update_oauth_app.py diff --git a/funkwhale_api_client/api/oauth/oauth_apps_refresh_token_create.py b/funkwhale_api_client/api/oauth/refresh_oauth_token.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_refresh_token_create.py rename to funkwhale_api_client/api/oauth/refresh_oauth_token.py diff --git a/funkwhale_api_client/api/oauth/oauth_apps_update.py b/funkwhale_api_client/api/oauth/update_oauth_app.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_apps_update.py rename to funkwhale_api_client/api/oauth/update_oauth_app.py diff --git a/funkwhale_api_client/api/oauth/oauth_authorize_update.py b/funkwhale_api_client/api/oauth/update_oauth_authorize.py similarity index 100% rename from funkwhale_api_client/api/oauth/oauth_authorize_update.py rename to funkwhale_api_client/api/oauth/update_oauth_authorize.py diff --git a/funkwhale_api_client/api/oembed/oembed_retrieve.py b/funkwhale_api_client/api/oembed/get_oembed.py similarity index 100% rename from funkwhale_api_client/api/oembed/oembed_retrieve.py rename to funkwhale_api_client/api/oembed/get_oembed.py diff --git a/funkwhale_api_client/api/playlists/playlists_add_create.py b/funkwhale_api_client/api/playlists/add_to_playlist.py similarity index 73% rename from funkwhale_api_client/api/playlists/playlists_add_create.py rename to funkwhale_api_client/api/playlists/add_to_playlist.py index fb6818b5a5583c0df2571fda37f4a49d5d9d3328..e03d7fadfa6ff149afa5d10e6025871cc31733a1 100644 --- a/funkwhale_api_client/api/playlists/playlists_add_create.py +++ b/funkwhale_api_client/api/playlists/add_to_playlist.py @@ -4,7 +4,7 @@ import httpx from ...client import AuthenticatedClient from ...models.playlist import Playlist -from ...models.playlist_request import PlaylistRequest +from ...models.playlist_add_many_request import PlaylistAddManyRequest from ...types import Response @@ -12,9 +12,9 @@ def _get_kwargs( id: int, *, client: AuthenticatedClient, - form_data: PlaylistRequest, - multipart_data: PlaylistRequest, - json_body: PlaylistRequest, + form_data: PlaylistAddManyRequest, + multipart_data: PlaylistAddManyRequest, + json_body: PlaylistAddManyRequest, ) -> Dict[str, Any]: url = "{}/api/v1/playlists/{id}/add/".format(client.base_url, id=id) @@ -56,15 +56,15 @@ def sync_detailed( id: int, *, client: AuthenticatedClient, - form_data: PlaylistRequest, - multipart_data: PlaylistRequest, - json_body: PlaylistRequest, + form_data: PlaylistAddManyRequest, + multipart_data: PlaylistAddManyRequest, + json_body: PlaylistAddManyRequest, ) -> Response[Playlist]: """ Args: id (int): - multipart_data (PlaylistRequest): - json_body (PlaylistRequest): + multipart_data (PlaylistAddManyRequest): + json_body (PlaylistAddManyRequest): Returns: Response[Playlist] @@ -90,15 +90,15 @@ def sync( id: int, *, client: AuthenticatedClient, - form_data: PlaylistRequest, - multipart_data: PlaylistRequest, - json_body: PlaylistRequest, + form_data: PlaylistAddManyRequest, + multipart_data: PlaylistAddManyRequest, + json_body: PlaylistAddManyRequest, ) -> Optional[Playlist]: """ Args: id (int): - multipart_data (PlaylistRequest): - json_body (PlaylistRequest): + multipart_data (PlaylistAddManyRequest): + json_body (PlaylistAddManyRequest): Returns: Response[Playlist] @@ -117,15 +117,15 @@ async def asyncio_detailed( id: int, *, client: AuthenticatedClient, - form_data: PlaylistRequest, - multipart_data: PlaylistRequest, - json_body: PlaylistRequest, + form_data: PlaylistAddManyRequest, + multipart_data: PlaylistAddManyRequest, + json_body: PlaylistAddManyRequest, ) -> Response[Playlist]: """ Args: id (int): - multipart_data (PlaylistRequest): - json_body (PlaylistRequest): + multipart_data (PlaylistAddManyRequest): + json_body (PlaylistAddManyRequest): Returns: Response[Playlist] @@ -149,15 +149,15 @@ async def asyncio( id: int, *, client: AuthenticatedClient, - form_data: PlaylistRequest, - multipart_data: PlaylistRequest, - json_body: PlaylistRequest, + form_data: PlaylistAddManyRequest, + multipart_data: PlaylistAddManyRequest, + json_body: PlaylistAddManyRequest, ) -> Optional[Playlist]: """ Args: id (int): - multipart_data (PlaylistRequest): - json_body (PlaylistRequest): + multipart_data (PlaylistAddManyRequest): + json_body (PlaylistAddManyRequest): Returns: Response[Playlist] diff --git a/funkwhale_api_client/api/playlists/playlists_clear_destroy.py b/funkwhale_api_client/api/playlists/clear_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_clear_destroy.py rename to funkwhale_api_client/api/playlists/clear_playlist.py diff --git a/funkwhale_api_client/api/playlists/playlists_create.py b/funkwhale_api_client/api/playlists/create_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_create.py rename to funkwhale_api_client/api/playlists/create_playlist.py diff --git a/funkwhale_api_client/api/playlists/playlists_destroy.py b/funkwhale_api_client/api/playlists/delete_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_destroy.py rename to funkwhale_api_client/api/playlists/delete_playlist.py diff --git a/funkwhale_api_client/api/playlists/playlists_retrieve.py b/funkwhale_api_client/api/playlists/get_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_retrieve.py rename to funkwhale_api_client/api/playlists/get_playlist.py diff --git a/funkwhale_api_client/api/playlists/get_playlist_tracks.py b/funkwhale_api_client/api/playlists/get_playlist_tracks.py new file mode 100644 index 0000000000000000000000000000000000000000..7361f31af33f15cbc6bacd083f1e4b7e69974d12 --- /dev/null +++ b/funkwhale_api_client/api/playlists/get_playlist_tracks.py @@ -0,0 +1,302 @@ +from typing import Any, Dict, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.paginated_playlist_track_list import PaginatedPlaylistTrackList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, int] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + track: Union[Unset, None, int] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/playlists/{id}/tracks/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["album"] = album + + params["artist"] = artist + + params["name"] = name + + params["name__icontains"] = name_icontains + + params["ordering"] = ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["scope"] = scope + + params["track"] = track + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedPlaylistTrackList]: + if response.status_code == 200: + response_200 = PaginatedPlaylistTrackList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedPlaylistTrackList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, int] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + track: Union[Unset, None, int] = UNSET, +) -> Response[PaginatedPlaylistTrackList]: + """ + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, int]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + track (Union[Unset, None, int]): + + Returns: + Response[PaginatedPlaylistTrackList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + name=name, + name_icontains=name_icontains, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + scope=scope, + track=track, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, int] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + track: Union[Unset, None, int] = UNSET, +) -> Optional[PaginatedPlaylistTrackList]: + """ + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, int]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + track (Union[Unset, None, int]): + + Returns: + Response[PaginatedPlaylistTrackList] + """ + + return sync_detailed( + id=id, + client=client, + album=album, + artist=artist, + name=name, + name_icontains=name_icontains, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + scope=scope, + track=track, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, int] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + track: Union[Unset, None, int] = UNSET, +) -> Response[PaginatedPlaylistTrackList]: + """ + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, int]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + track (Union[Unset, None, int]): + + Returns: + Response[PaginatedPlaylistTrackList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + name=name, + name_icontains=name_icontains, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + scope=scope, + track=track, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, int] = UNSET, + name: Union[Unset, None, str] = UNSET, + name_icontains: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, str] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + track: Union[Unset, None, int] = UNSET, +) -> Optional[PaginatedPlaylistTrackList]: + """ + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, int]): + name (Union[Unset, None, str]): + name_icontains (Union[Unset, None, str]): + ordering (Union[Unset, None, str]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + track (Union[Unset, None, int]): + + Returns: + Response[PaginatedPlaylistTrackList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + album=album, + artist=artist, + name=name, + name_icontains=name_icontains, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + scope=scope, + track=track, + ) + ).parsed diff --git a/funkwhale_api_client/api/playlists/playlists_list.py b/funkwhale_api_client/api/playlists/get_playlists.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_list.py rename to funkwhale_api_client/api/playlists/get_playlists.py diff --git a/funkwhale_api_client/api/playlists/playlists_partial_update.py b/funkwhale_api_client/api/playlists/partial_update_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_partial_update.py rename to funkwhale_api_client/api/playlists/partial_update_playlist.py diff --git a/funkwhale_api_client/api/playlists/playlists_tracks_retrieve.py b/funkwhale_api_client/api/playlists/playlists_tracks_retrieve.py deleted file mode 100644 index e637dd3e47a834c4790ba7b3ae7274805a1e4cac..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/playlists/playlists_tracks_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.playlist import Playlist -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/playlists/{id}/tracks/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Playlist]: - if response.status_code == 200: - response_200 = Playlist.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Playlist]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Playlist]: - """ - Args: - id (int): - - Returns: - Response[Playlist] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Playlist]: - """ - Args: - id (int): - - Returns: - Response[Playlist] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Playlist]: - """ - Args: - id (int): - - Returns: - Response[Playlist] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Playlist]: - """ - Args: - id (int): - - Returns: - Response[Playlist] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/playlists/playlists_remove_destroy.py b/funkwhale_api_client/api/playlists/remove_from_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_remove_destroy.py rename to funkwhale_api_client/api/playlists/remove_from_playlist.py diff --git a/funkwhale_api_client/api/playlists/playlists_remove_create.py b/funkwhale_api_client/api/playlists/remove_from_playlist_2.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_remove_create.py rename to funkwhale_api_client/api/playlists/remove_from_playlist_2.py diff --git a/funkwhale_api_client/api/playlists/playlists_move_create.py b/funkwhale_api_client/api/playlists/reorder_track_in_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_move_create.py rename to funkwhale_api_client/api/playlists/reorder_track_in_playlist.py diff --git a/funkwhale_api_client/api/playlists/playlists_update.py b/funkwhale_api_client/api/playlists/update_playlist.py similarity index 100% rename from funkwhale_api_client/api/playlists/playlists_update.py rename to funkwhale_api_client/api/playlists/update_playlist.py diff --git a/funkwhale_api_client/api/plugins/plugins_create.py b/funkwhale_api_client/api/plugins/create_plugin.py similarity index 100% rename from funkwhale_api_client/api/plugins/plugins_create.py rename to funkwhale_api_client/api/plugins/create_plugin.py diff --git a/funkwhale_api_client/api/plugins/plugins_scan_create.py b/funkwhale_api_client/api/plugins/create_plugin_scan.py similarity index 100% rename from funkwhale_api_client/api/plugins/plugins_scan_create.py rename to funkwhale_api_client/api/plugins/create_plugin_scan.py diff --git a/funkwhale_api_client/api/plugins/plugins_disable_create.py b/funkwhale_api_client/api/plugins/disable_plugin.py similarity index 100% rename from funkwhale_api_client/api/plugins/plugins_disable_create.py rename to funkwhale_api_client/api/plugins/disable_plugin.py diff --git a/funkwhale_api_client/api/plugins/plugins_enable_create.py b/funkwhale_api_client/api/plugins/enable_plugin.py similarity index 100% rename from funkwhale_api_client/api/plugins/plugins_enable_create.py rename to funkwhale_api_client/api/plugins/enable_plugin.py diff --git a/funkwhale_api_client/api/plugins/plugins_retrieve.py b/funkwhale_api_client/api/plugins/get_plugin.py similarity index 100% rename from funkwhale_api_client/api/plugins/plugins_retrieve.py rename to funkwhale_api_client/api/plugins/get_plugin.py diff --git a/funkwhale_api_client/api/plugins/plugins_list.py b/funkwhale_api_client/api/plugins/get_plugins.py similarity index 100% rename from funkwhale_api_client/api/plugins/plugins_list.py rename to funkwhale_api_client/api/plugins/get_plugins.py diff --git a/funkwhale_api_client/api/radios/radios_radios_create.py b/funkwhale_api_client/api/radios/create_radio.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_create.py rename to funkwhale_api_client/api/radios/create_radio.py diff --git a/funkwhale_api_client/api/radios/radios_sessions_create.py b/funkwhale_api_client/api/radios/create_radio_session.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_sessions_create.py rename to funkwhale_api_client/api/radios/create_radio_session.py diff --git a/funkwhale_api_client/api/radios/radios_radios_destroy.py b/funkwhale_api_client/api/radios/delete_radio.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_destroy.py rename to funkwhale_api_client/api/radios/delete_radio.py diff --git a/funkwhale_api_client/api/radios/radios_tracks_create.py b/funkwhale_api_client/api/radios/get_next_radio_track.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_tracks_create.py rename to funkwhale_api_client/api/radios/get_next_radio_track.py diff --git a/funkwhale_api_client/api/radios/radios_radios_retrieve.py b/funkwhale_api_client/api/radios/get_radio.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_retrieve.py rename to funkwhale_api_client/api/radios/get_radio.py diff --git a/funkwhale_api_client/api/radios/radios_radios_filters_retrieve.py b/funkwhale_api_client/api/radios/get_radio_filter.py similarity index 80% rename from funkwhale_api_client/api/radios/radios_radios_filters_retrieve.py rename to funkwhale_api_client/api/radios/get_radio_filter.py index 019936a1de5d2f37fe7199ae38e44faff9f9eda1..830af0901bce9488038ac34909c1789780109d44 100644 --- a/funkwhale_api_client/api/radios/radios_radios_filters_retrieve.py +++ b/funkwhale_api_client/api/radios/get_radio_filter.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.radio import Radio +from ...models.filter_ import Filter from ...types import Response @@ -25,15 +25,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Radio]: +def _parse_response(*, response: httpx.Response) -> Optional[Filter]: if response.status_code == 200: - response_200 = Radio.from_dict(response.json()) + response_200 = Filter.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Radio]: +def _build_response(*, response: httpx.Response) -> Response[Filter]: return Response( status_code=response.status_code, content=response.content, @@ -45,10 +45,10 @@ def _build_response(*, response: httpx.Response) -> Response[Radio]: def sync_detailed( *, client: AuthenticatedClient, -) -> Response[Radio]: +) -> Response[Filter]: """ Returns: - Response[Radio] + Response[Filter] """ kwargs = _get_kwargs( @@ -66,10 +66,10 @@ def sync_detailed( def sync( *, client: AuthenticatedClient, -) -> Optional[Radio]: +) -> Optional[Filter]: """ Returns: - Response[Radio] + Response[Filter] """ return sync_detailed( @@ -80,10 +80,10 @@ def sync( async def asyncio_detailed( *, client: AuthenticatedClient, -) -> Response[Radio]: +) -> Response[Filter]: """ Returns: - Response[Radio] + Response[Filter] """ kwargs = _get_kwargs( @@ -99,10 +99,10 @@ async def asyncio_detailed( async def asyncio( *, client: AuthenticatedClient, -) -> Optional[Radio]: +) -> Optional[Filter]: """ Returns: - Response[Radio] + Response[Filter] """ return ( diff --git a/funkwhale_api_client/api/radios/radios_sessions_retrieve.py b/funkwhale_api_client/api/radios/get_radio_session.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_sessions_retrieve.py rename to funkwhale_api_client/api/radios/get_radio_session.py diff --git a/funkwhale_api_client/api/tracks/tracks_fetches_retrieve.py b/funkwhale_api_client/api/radios/get_radio_track.py similarity index 88% rename from funkwhale_api_client/api/tracks/tracks_fetches_retrieve.py rename to funkwhale_api_client/api/radios/get_radio_track.py index 8d75aec9a0cefa4e611caa3c53adb0a848aa206f..7dc298b67e432cc2f06009980c08979a6a44bb4f 100644 --- a/funkwhale_api_client/api/tracks/tracks_fetches_retrieve.py +++ b/funkwhale_api_client/api/radios/get_radio_track.py @@ -12,7 +12,7 @@ def _get_kwargs( *, client: AuthenticatedClient, ) -> Dict[str, Any]: - url = "{}/api/v1/tracks/{id}/fetches/".format(client.base_url, id=id) + url = "{}/api/v1/radios/radios/{id}/tracks/".format(client.base_url, id=id) headers: Dict[str, str] = client.get_headers() cookies: Dict[str, Any] = client.get_cookies() @@ -48,8 +48,7 @@ def sync_detailed( *, client: AuthenticatedClient, ) -> Response[Track]: - """A simple ViewSet for viewing and editing accounts. - + """ Args: id (int): @@ -75,8 +74,7 @@ def sync( *, client: AuthenticatedClient, ) -> Optional[Track]: - """A simple ViewSet for viewing and editing accounts. - + """ Args: id (int): @@ -95,8 +93,7 @@ async def asyncio_detailed( *, client: AuthenticatedClient, ) -> Response[Track]: - """A simple ViewSet for viewing and editing accounts. - + """ Args: id (int): @@ -120,8 +117,7 @@ async def asyncio( *, client: AuthenticatedClient, ) -> Optional[Track]: - """A simple ViewSet for viewing and editing accounts. - + """ Args: id (int): diff --git a/funkwhale_api_client/api/radios/radios_radios_list.py b/funkwhale_api_client/api/radios/get_radios.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_list.py rename to funkwhale_api_client/api/radios/get_radios.py diff --git a/funkwhale_api_client/api/radios/radios_radios_partial_update.py b/funkwhale_api_client/api/radios/partial_update_radio.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_partial_update.py rename to funkwhale_api_client/api/radios/partial_update_radio.py diff --git a/funkwhale_api_client/api/radios/radios_radios_tracks_retrieve.py b/funkwhale_api_client/api/radios/radios_radios_tracks_retrieve.py deleted file mode 100644 index e9f7bea7c10ecabb3f481716c48ade4e70494fc3..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/radios/radios_radios_tracks_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.radio import Radio -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/radios/radios/{id}/tracks/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Radio]: - if response.status_code == 200: - response_200 = Radio.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Radio]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Radio]: - """ - Args: - id (int): - - Returns: - Response[Radio] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Radio]: - """ - Args: - id (int): - - Returns: - Response[Radio] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Radio]: - """ - Args: - id (int): - - Returns: - Response[Radio] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Radio]: - """ - Args: - id (int): - - Returns: - Response[Radio] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/radios/radios_radios_update.py b/funkwhale_api_client/api/radios/update_radio.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_update.py rename to funkwhale_api_client/api/radios/update_radio.py diff --git a/funkwhale_api_client/api/radios/radios_radios_validate_create.py b/funkwhale_api_client/api/radios/validate_radio.py similarity index 100% rename from funkwhale_api_client/api/radios/radios_radios_validate_create.py rename to funkwhale_api_client/api/radios/validate_radio.py diff --git a/funkwhale_api_client/api/rate_limit/rate_limit_retrieve.py b/funkwhale_api_client/api/rate_limit/get_rate_limit.py similarity index 100% rename from funkwhale_api_client/api/rate_limit/rate_limit_retrieve.py rename to funkwhale_api_client/api/rate_limit/get_rate_limit.py diff --git a/funkwhale_api_client/api/search/search_retrieve.py b/funkwhale_api_client/api/search/get_search_results.py similarity index 100% rename from funkwhale_api_client/api/search/search_retrieve.py rename to funkwhale_api_client/api/search/get_search_results.py diff --git a/funkwhale_api_client/api/stream/stream_retrieve.py b/funkwhale_api_client/api/stream/get_track_stream.py similarity index 100% rename from funkwhale_api_client/api/stream/stream_retrieve.py rename to funkwhale_api_client/api/stream/get_track_stream.py diff --git a/funkwhale_api_client/api/subscriptions/subscriptions_all_retrieve.py b/funkwhale_api_client/api/subscriptions/get_all_subscriptions.py similarity index 81% rename from funkwhale_api_client/api/subscriptions/subscriptions_all_retrieve.py rename to funkwhale_api_client/api/subscriptions/get_all_subscriptions.py index 3651d2590eb512c8e7ff536b295b54487c05c861..286ff73be2a7a13679828d04dc687da4f5b9f7ad 100644 --- a/funkwhale_api_client/api/subscriptions/subscriptions_all_retrieve.py +++ b/funkwhale_api_client/api/subscriptions/get_all_subscriptions.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.subscription import Subscription +from ...models.all_subscriptions import AllSubscriptions from ...types import Response @@ -25,15 +25,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Subscription]: +def _parse_response(*, response: httpx.Response) -> Optional[AllSubscriptions]: if response.status_code == 200: - response_200 = Subscription.from_dict(response.json()) + response_200 = AllSubscriptions.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Subscription]: +def _build_response(*, response: httpx.Response) -> Response[AllSubscriptions]: return Response( status_code=response.status_code, content=response.content, @@ -45,13 +45,13 @@ def _build_response(*, response: httpx.Response) -> Response[Subscription]: def sync_detailed( *, client: AuthenticatedClient, -) -> Response[Subscription]: +) -> Response[AllSubscriptions]: """Return all the subscriptions of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display subscription status in the UI Returns: - Response[Subscription] + Response[AllSubscriptions] """ kwargs = _get_kwargs( @@ -69,13 +69,13 @@ def sync_detailed( def sync( *, client: AuthenticatedClient, -) -> Optional[Subscription]: +) -> Optional[AllSubscriptions]: """Return all the subscriptions of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display subscription status in the UI Returns: - Response[Subscription] + Response[AllSubscriptions] """ return sync_detailed( @@ -86,13 +86,13 @@ def sync( async def asyncio_detailed( *, client: AuthenticatedClient, -) -> Response[Subscription]: +) -> Response[AllSubscriptions]: """Return all the subscriptions of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display subscription status in the UI Returns: - Response[Subscription] + Response[AllSubscriptions] """ kwargs = _get_kwargs( @@ -108,13 +108,13 @@ async def asyncio_detailed( async def asyncio( *, client: AuthenticatedClient, -) -> Optional[Subscription]: +) -> Optional[AllSubscriptions]: """Return all the subscriptions of the current user, with only limited data to have a performant endpoint and avoid lots of queries just to display subscription status in the UI Returns: - Response[Subscription] + Response[AllSubscriptions] """ return ( diff --git a/funkwhale_api_client/api/subscriptions/subscriptions_retrieve.py b/funkwhale_api_client/api/subscriptions/get_subscription.py similarity index 100% rename from funkwhale_api_client/api/subscriptions/subscriptions_retrieve.py rename to funkwhale_api_client/api/subscriptions/get_subscription.py diff --git a/funkwhale_api_client/api/subscriptions/subscriptions_list.py b/funkwhale_api_client/api/subscriptions/get_subscriptions.py similarity index 100% rename from funkwhale_api_client/api/subscriptions/subscriptions_list.py rename to funkwhale_api_client/api/subscriptions/get_subscriptions.py diff --git a/funkwhale_api_client/api/tags/tags_retrieve.py b/funkwhale_api_client/api/tags/get_tag.py similarity index 100% rename from funkwhale_api_client/api/tags/tags_retrieve.py rename to funkwhale_api_client/api/tags/get_tag.py diff --git a/funkwhale_api_client/api/tags/tags_list.py b/funkwhale_api_client/api/tags/get_tags.py similarity index 89% rename from funkwhale_api_client/api/tags/tags_list.py rename to funkwhale_api_client/api/tags/get_tags.py index db9cff75b2d81763f29915681d02a0e8a692a0d2..ef57ac95caa477204119fa796d940190f51f0233 100644 --- a/funkwhale_api_client/api/tags/tags_list.py +++ b/funkwhale_api_client/api/tags/get_tags.py @@ -3,8 +3,8 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient +from ...models.get_tags_ordering_item import GetTagsOrderingItem from ...models.paginated_tag_list import PaginatedTagList -from ...models.tags_list_ordering_item import TagsListOrderingItem from ...types import UNSET, Response, Unset @@ -13,7 +13,7 @@ def _get_kwargs( client: AuthenticatedClient, name: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TagsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTagsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -81,7 +81,7 @@ def sync_detailed( client: AuthenticatedClient, name: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TagsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTagsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -90,7 +90,7 @@ def sync_detailed( Args: name (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TagsListOrderingItem]]): + ordering (Union[Unset, None, List[GetTagsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): @@ -122,7 +122,7 @@ def sync( client: AuthenticatedClient, name: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TagsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTagsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -131,7 +131,7 @@ def sync( Args: name (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TagsListOrderingItem]]): + ordering (Union[Unset, None, List[GetTagsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): @@ -156,7 +156,7 @@ async def asyncio_detailed( client: AuthenticatedClient, name: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TagsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTagsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -165,7 +165,7 @@ async def asyncio_detailed( Args: name (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TagsListOrderingItem]]): + ordering (Union[Unset, None, List[GetTagsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): @@ -195,7 +195,7 @@ async def asyncio( client: AuthenticatedClient, name: Union[Unset, None, str] = UNSET, name_startswith: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TagsListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTagsOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, q: Union[Unset, None, str] = UNSET, @@ -204,7 +204,7 @@ async def asyncio( Args: name (Union[Unset, None, str]): name_startswith (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TagsListOrderingItem]]): + ordering (Union[Unset, None, List[GetTagsOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): q (Union[Unset, None, str]): diff --git a/funkwhale_api_client/api/text_preview/text_preview_create.py b/funkwhale_api_client/api/text_preview/preview_text.py similarity index 100% rename from funkwhale_api_client/api/text_preview/text_preview_create.py rename to funkwhale_api_client/api/text_preview/preview_text.py diff --git a/funkwhale_api_client/api/tracks/tracks_fetches_create.py b/funkwhale_api_client/api/tracks/create_track_fetch.py similarity index 89% rename from funkwhale_api_client/api/tracks/tracks_fetches_create.py rename to funkwhale_api_client/api/tracks/create_track_fetch.py index 3c824e66c7da3bad0e2ade48e24bd64a3c0eefb9..687b1cb0a1b37004aabf269532d33ff45fa49d09 100644 --- a/funkwhale_api_client/api/tracks/tracks_fetches_create.py +++ b/funkwhale_api_client/api/tracks/create_track_fetch.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.track import Track +from ...models.fetch import Fetch from ...models.track_request import TrackRequest from ...types import Response @@ -35,15 +35,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Track]: +def _parse_response(*, response: httpx.Response) -> Optional[Fetch]: if response.status_code == 200: - response_200 = Track.from_dict(response.json()) + response_200 = Fetch.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Track]: +def _build_response(*, response: httpx.Response) -> Response[Fetch]: return Response( status_code=response.status_code, content=response.content, @@ -59,7 +59,7 @@ def sync_detailed( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Response[Track]: +) -> Response[Fetch]: """A simple ViewSet for viewing and editing accounts. Args: @@ -68,7 +68,7 @@ def sync_detailed( json_body (TrackRequest): Returns: - Response[Track] + Response[Fetch] """ kwargs = _get_kwargs( @@ -94,7 +94,7 @@ def sync( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Optional[Track]: +) -> Optional[Fetch]: """A simple ViewSet for viewing and editing accounts. Args: @@ -103,7 +103,7 @@ def sync( json_body (TrackRequest): Returns: - Response[Track] + Response[Fetch] """ return sync_detailed( @@ -122,7 +122,7 @@ async def asyncio_detailed( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Response[Track]: +) -> Response[Fetch]: """A simple ViewSet for viewing and editing accounts. Args: @@ -131,7 +131,7 @@ async def asyncio_detailed( json_body (TrackRequest): Returns: - Response[Track] + Response[Fetch] """ kwargs = _get_kwargs( @@ -155,7 +155,7 @@ async def asyncio( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Optional[Track]: +) -> Optional[Fetch]: """A simple ViewSet for viewing and editing accounts. Args: @@ -164,7 +164,7 @@ async def asyncio( json_body (TrackRequest): Returns: - Response[Track] + Response[Fetch] """ return ( diff --git a/funkwhale_api_client/api/tracks/tracks_mutations_create.py b/funkwhale_api_client/api/tracks/create_track_mutation.py similarity index 87% rename from funkwhale_api_client/api/tracks/tracks_mutations_create.py rename to funkwhale_api_client/api/tracks/create_track_mutation.py index 55536bae60032a3b844e5fb1b6128a5bf156e17a..19bf60dc21dcd6931c0416ed4763ad593cf177c0 100644 --- a/funkwhale_api_client/api/tracks/tracks_mutations_create.py +++ b/funkwhale_api_client/api/tracks/create_track_mutation.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.track import Track +from ...models.api_mutation import APIMutation from ...models.track_request import TrackRequest from ...types import Response @@ -35,15 +35,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Track]: +def _parse_response(*, response: httpx.Response) -> Optional[APIMutation]: if response.status_code == 200: - response_200 = Track.from_dict(response.json()) + response_200 = APIMutation.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Track]: +def _build_response(*, response: httpx.Response) -> Response[APIMutation]: return Response( status_code=response.status_code, content=response.content, @@ -59,7 +59,7 @@ def sync_detailed( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Response[Track]: +) -> Response[APIMutation]: """A simple ViewSet for viewing and editing accounts. Args: @@ -68,7 +68,7 @@ def sync_detailed( json_body (TrackRequest): Returns: - Response[Track] + Response[APIMutation] """ kwargs = _get_kwargs( @@ -94,7 +94,7 @@ def sync( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Optional[Track]: +) -> Optional[APIMutation]: """A simple ViewSet for viewing and editing accounts. Args: @@ -103,7 +103,7 @@ def sync( json_body (TrackRequest): Returns: - Response[Track] + Response[APIMutation] """ return sync_detailed( @@ -122,7 +122,7 @@ async def asyncio_detailed( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Response[Track]: +) -> Response[APIMutation]: """A simple ViewSet for viewing and editing accounts. Args: @@ -131,7 +131,7 @@ async def asyncio_detailed( json_body (TrackRequest): Returns: - Response[Track] + Response[APIMutation] """ kwargs = _get_kwargs( @@ -155,7 +155,7 @@ async def asyncio( form_data: TrackRequest, multipart_data: TrackRequest, json_body: TrackRequest, -) -> Optional[Track]: +) -> Optional[APIMutation]: """A simple ViewSet for viewing and editing accounts. Args: @@ -164,7 +164,7 @@ async def asyncio( json_body (TrackRequest): Returns: - Response[Track] + Response[APIMutation] """ return ( diff --git a/funkwhale_api_client/api/tracks/tracks_destroy.py b/funkwhale_api_client/api/tracks/delete_track.py similarity index 100% rename from funkwhale_api_client/api/tracks/tracks_destroy.py rename to funkwhale_api_client/api/tracks/delete_track.py diff --git a/funkwhale_api_client/api/tracks/tracks_retrieve.py b/funkwhale_api_client/api/tracks/get_track.py similarity index 100% rename from funkwhale_api_client/api/tracks/tracks_retrieve.py rename to funkwhale_api_client/api/tracks/get_track.py diff --git a/funkwhale_api_client/api/tracks/get_track_fetches.py b/funkwhale_api_client/api/tracks/get_track_fetches.py new file mode 100644 index 0000000000000000000000000000000000000000..44722d09bbab1e18539e060b98d8b024138bee9a --- /dev/null +++ b/funkwhale_api_client/api/tracks/get_track_fetches.py @@ -0,0 +1,460 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_track_fetches_ordering_item import GetTrackFetchesOrderingItem +from ...models.paginated_fetch_list import PaginatedFetchList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/tracks/{id}/fetches/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["album"] = album + + params["artist"] = artist + + params["channel"] = channel + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["license"] = license_ + + params["mbid"] = mbid + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params["title"] = title + + params["title__icontains"] = title_icontains + + params["title__iexact"] = title_iexact + + params["title__startswith"] = title_startswith + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedFetchList]: + if response.status_code == 200: + response_200 = PaginatedFetchList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedFetchList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedFetchList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedFetchList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedFetchList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedFetchList] + """ + + return sync_detailed( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedFetchList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedFetchList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackFetchesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedFetchList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackFetchesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedFetchList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + ).parsed diff --git a/funkwhale_api_client/api/tracks/get_track_libraries.py b/funkwhale_api_client/api/tracks/get_track_libraries.py new file mode 100644 index 0000000000000000000000000000000000000000..04c6cfc804e5131812372781c8e80858355850ae --- /dev/null +++ b/funkwhale_api_client/api/tracks/get_track_libraries.py @@ -0,0 +1,460 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_track_libraries_ordering_item import GetTrackLibrariesOrderingItem +from ...models.paginated_library_list import PaginatedLibraryList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/tracks/{id}/libraries/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["album"] = album + + params["artist"] = artist + + params["channel"] = channel + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["license"] = license_ + + params["mbid"] = mbid + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params["title"] = title + + params["title__icontains"] = title_icontains + + params["title__iexact"] = title_iexact + + params["title__startswith"] = title_startswith + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedLibraryList]: + if response.status_code == 200: + response_200 = PaginatedLibraryList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedLibraryList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedLibraryList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedLibraryList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryList] + """ + + return sync_detailed( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedLibraryList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackLibrariesOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedLibraryList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackLibrariesOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedLibraryList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + ).parsed diff --git a/funkwhale_api_client/api/tracks/get_track_mutations.py b/funkwhale_api_client/api/tracks/get_track_mutations.py new file mode 100644 index 0000000000000000000000000000000000000000..65478c634082e98fdcd1e66ddc73a1de0e8dd28c --- /dev/null +++ b/funkwhale_api_client/api/tracks/get_track_mutations.py @@ -0,0 +1,460 @@ +from typing import Any, Dict, List, Optional, Union + +import httpx + +from ...client import AuthenticatedClient +from ...models.get_track_mutations_ordering_item import GetTrackMutationsOrderingItem +from ...models.paginated_api_mutation_list import PaginatedAPIMutationList +from ...types import UNSET, Response, Unset + + +def _get_kwargs( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Dict[str, Any]: + url = "{}/api/v1/tracks/{id}/mutations/".format(client.base_url, id=id) + + headers: Dict[str, str] = client.get_headers() + cookies: Dict[str, Any] = client.get_cookies() + + params: Dict[str, Any] = {} + params["album"] = album + + params["artist"] = artist + + params["channel"] = channel + + params["hidden"] = hidden + + params["include_channels"] = include_channels + + params["library"] = library + + params["license"] = license_ + + params["mbid"] = mbid + + json_ordering: Union[Unset, None, List[str]] = UNSET + if not isinstance(ordering, Unset): + if ordering is None: + json_ordering = None + else: + json_ordering = [] + for ordering_item_data in ordering: + ordering_item = ordering_item_data.value + + json_ordering.append(ordering_item) + + params["ordering"] = json_ordering + + params["page"] = page + + params["page_size"] = page_size + + params["playable"] = playable + + params["q"] = q + + params["related"] = related + + params["scope"] = scope + + json_tag: Union[Unset, None, List[str]] = UNSET + if not isinstance(tag, Unset): + if tag is None: + json_tag = None + else: + json_tag = tag + + params["tag"] = json_tag + + params["title"] = title + + params["title__icontains"] = title_icontains + + params["title__iexact"] = title_iexact + + params["title__startswith"] = title_startswith + + params = {k: v for k, v in params.items() if v is not UNSET and v is not None} + + return { + "method": "get", + "url": url, + "headers": headers, + "cookies": cookies, + "timeout": client.get_timeout(), + "params": params, + } + + +def _parse_response(*, response: httpx.Response) -> Optional[PaginatedAPIMutationList]: + if response.status_code == 200: + response_200 = PaginatedAPIMutationList.from_dict(response.json()) + + return response_200 + return None + + +def _build_response(*, response: httpx.Response) -> Response[PaginatedAPIMutationList]: + return Response( + status_code=response.status_code, + content=response.content, + headers=response.headers, + parsed=_parse_response(response=response), + ) + + +def sync_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedAPIMutationList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + + response = httpx.request( + verify=client.verify_ssl, + **kwargs, + ) + + return _build_response(response=response) + + +def sync( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedAPIMutationList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + return sync_detailed( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ).parsed + + +async def asyncio_detailed( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Response[PaginatedAPIMutationList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + kwargs = _get_kwargs( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + + async with httpx.AsyncClient(verify=client.verify_ssl) as _client: + response = await _client.request(**kwargs) + + return _build_response(response=response) + + +async def asyncio( + id: int, + *, + client: AuthenticatedClient, + album: Union[Unset, None, int] = UNSET, + artist: Union[Unset, None, str] = UNSET, + channel: Union[Unset, None, str] = UNSET, + hidden: Union[Unset, None, bool] = UNSET, + include_channels: Union[Unset, None, bool] = UNSET, + library: Union[Unset, None, str] = UNSET, + license_: Union[Unset, None, str] = UNSET, + mbid: Union[Unset, None, str] = UNSET, + ordering: Union[Unset, None, List[GetTrackMutationsOrderingItem]] = UNSET, + page: Union[Unset, None, int] = UNSET, + page_size: Union[Unset, None, int] = UNSET, + playable: Union[Unset, None, bool] = UNSET, + q: Union[Unset, None, str] = UNSET, + related: Union[Unset, None, str] = UNSET, + scope: Union[Unset, None, str] = UNSET, + tag: Union[Unset, None, List[str]] = UNSET, + title: Union[Unset, None, str] = UNSET, + title_icontains: Union[Unset, None, str] = UNSET, + title_iexact: Union[Unset, None, str] = UNSET, + title_startswith: Union[Unset, None, str] = UNSET, +) -> Optional[PaginatedAPIMutationList]: + """A simple ViewSet for viewing and editing accounts. + + Args: + id (int): + album (Union[Unset, None, int]): + artist (Union[Unset, None, str]): + channel (Union[Unset, None, str]): + hidden (Union[Unset, None, bool]): + include_channels (Union[Unset, None, bool]): + library (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + ordering (Union[Unset, None, List[GetTrackMutationsOrderingItem]]): + page (Union[Unset, None, int]): + page_size (Union[Unset, None, int]): + playable (Union[Unset, None, bool]): + q (Union[Unset, None, str]): + related (Union[Unset, None, str]): + scope (Union[Unset, None, str]): + tag (Union[Unset, None, List[str]]): + title (Union[Unset, None, str]): + title_icontains (Union[Unset, None, str]): + title_iexact (Union[Unset, None, str]): + title_startswith (Union[Unset, None, str]): + + Returns: + Response[PaginatedAPIMutationList] + """ + + return ( + await asyncio_detailed( + id=id, + client=client, + album=album, + artist=artist, + channel=channel, + hidden=hidden, + include_channels=include_channels, + library=library, + license_=license_, + mbid=mbid, + ordering=ordering, + page=page, + page_size=page_size, + playable=playable, + q=q, + related=related, + scope=scope, + tag=tag, + title=title, + title_icontains=title_icontains, + title_iexact=title_iexact, + title_startswith=title_startswith, + ) + ).parsed diff --git a/funkwhale_api_client/api/tracks/tracks_list.py b/funkwhale_api_client/api/tracks/get_tracks.py similarity index 95% rename from funkwhale_api_client/api/tracks/tracks_list.py rename to funkwhale_api_client/api/tracks/get_tracks.py index 425b9428b49284d0fdbac17daeb83ea6e34d82f4..346edcfb3968dfe6d0431ed300cdb024c5bf6470 100644 --- a/funkwhale_api_client/api/tracks/tracks_list.py +++ b/funkwhale_api_client/api/tracks/get_tracks.py @@ -3,8 +3,8 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient +from ...models.get_tracks_ordering_item import GetTracksOrderingItem from ...models.paginated_track_list import PaginatedTrackList -from ...models.tracks_list_ordering_item import TracksListOrderingItem from ...types import UNSET, Response, Unset @@ -20,7 +20,7 @@ def _get_kwargs( library: Union[Unset, None, str] = UNSET, license_: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TracksListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTracksOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -147,7 +147,7 @@ def sync_detailed( library: Union[Unset, None, str] = UNSET, license_: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TracksListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTracksOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -172,7 +172,7 @@ def sync_detailed( library (Union[Unset, None, str]): license_ (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TracksListOrderingItem]]): + ordering (Union[Unset, None, List[GetTracksOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -234,7 +234,7 @@ def sync( library: Union[Unset, None, str] = UNSET, license_: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TracksListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTracksOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -259,7 +259,7 @@ def sync( library (Union[Unset, None, str]): license_ (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TracksListOrderingItem]]): + ordering (Union[Unset, None, List[GetTracksOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -314,7 +314,7 @@ async def asyncio_detailed( library: Union[Unset, None, str] = UNSET, license_: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TracksListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTracksOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -339,7 +339,7 @@ async def asyncio_detailed( library (Union[Unset, None, str]): license_ (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TracksListOrderingItem]]): + ordering (Union[Unset, None, List[GetTracksOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): @@ -399,7 +399,7 @@ async def asyncio( library: Union[Unset, None, str] = UNSET, license_: Union[Unset, None, str] = UNSET, mbid: Union[Unset, None, str] = UNSET, - ordering: Union[Unset, None, List[TracksListOrderingItem]] = UNSET, + ordering: Union[Unset, None, List[GetTracksOrderingItem]] = UNSET, page: Union[Unset, None, int] = UNSET, page_size: Union[Unset, None, int] = UNSET, playable: Union[Unset, None, bool] = UNSET, @@ -424,7 +424,7 @@ async def asyncio( library (Union[Unset, None, str]): license_ (Union[Unset, None, str]): mbid (Union[Unset, None, str]): - ordering (Union[Unset, None, List[TracksListOrderingItem]]): + ordering (Union[Unset, None, List[GetTracksOrderingItem]]): page (Union[Unset, None, int]): page_size (Union[Unset, None, int]): playable (Union[Unset, None, bool]): diff --git a/funkwhale_api_client/api/tracks/tracks_libraries_retrieve.py b/funkwhale_api_client/api/tracks/tracks_libraries_retrieve.py deleted file mode 100644 index 8a1d7722449c00ecaf32a5f0e51337ae2106836b..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/tracks/tracks_libraries_retrieve.py +++ /dev/null @@ -1,137 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.track import Track -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/tracks/{id}/libraries/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Track]: - if response.status_code == 200: - response_200 = Track.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Track]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/tracks/tracks_mutations_retrieve.py b/funkwhale_api_client/api/tracks/tracks_mutations_retrieve.py deleted file mode 100644 index d020b347f21dfa2e653afcd81085a4fde48d7ff5..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/tracks/tracks_mutations_retrieve.py +++ /dev/null @@ -1,137 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.track import Track -from ...types import Response - - -def _get_kwargs( - id: int, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/tracks/{id}/mutations/".format(client.base_url, id=id) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[Track]: - if response.status_code == 200: - response_200 = Track.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[Track]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - return sync_detailed( - id=id, - client=client, - ).parsed - - -async def asyncio_detailed( - id: int, - *, - client: AuthenticatedClient, -) -> Response[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - kwargs = _get_kwargs( - id=id, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - id: int, - *, - client: AuthenticatedClient, -) -> Optional[Track]: - """A simple ViewSet for viewing and editing accounts. - - Args: - id (int): - - Returns: - Response[Track] - """ - - return ( - await asyncio_detailed( - id=id, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/uploads/uploads_create.py b/funkwhale_api_client/api/uploads/create_upload.py similarity index 100% rename from funkwhale_api_client/api/uploads/uploads_create.py rename to funkwhale_api_client/api/uploads/create_upload.py diff --git a/funkwhale_api_client/api/uploads/uploads_action_create.py b/funkwhale_api_client/api/uploads/create_upload_action.py similarity index 100% rename from funkwhale_api_client/api/uploads/uploads_action_create.py rename to funkwhale_api_client/api/uploads/create_upload_action.py diff --git a/funkwhale_api_client/api/uploads/uploads_destroy.py b/funkwhale_api_client/api/uploads/delete_upload.py similarity index 100% rename from funkwhale_api_client/api/uploads/uploads_destroy.py rename to funkwhale_api_client/api/uploads/delete_upload.py diff --git a/funkwhale_api_client/api/uploads/uploads_retrieve.py b/funkwhale_api_client/api/uploads/get_upload.py similarity index 100% rename from funkwhale_api_client/api/uploads/uploads_retrieve.py rename to funkwhale_api_client/api/uploads/get_upload.py diff --git a/funkwhale_api_client/api/listen/listen_retrieve.py b/funkwhale_api_client/api/uploads/get_upload_metadata.py similarity index 81% rename from funkwhale_api_client/api/listen/listen_retrieve.py rename to funkwhale_api_client/api/uploads/get_upload_metadata.py index f96f67b3b3372b61d085d9bd1dfd2e22455b267b..087e471c384b53a8c4087c2ec3d480fde0b55594 100644 --- a/funkwhale_api_client/api/listen/listen_retrieve.py +++ b/funkwhale_api_client/api/uploads/get_upload_metadata.py @@ -3,7 +3,7 @@ from typing import Any, Dict, Optional import httpx from ...client import AuthenticatedClient -from ...models.track import Track +from ...models.track_metadata import TrackMetadata from ...types import Response @@ -12,7 +12,7 @@ def _get_kwargs( *, client: AuthenticatedClient, ) -> Dict[str, Any]: - url = "{}/api/v1/listen/{uuid}/".format(client.base_url, uuid=uuid) + url = "{}/api/v1/uploads/{uuid}/audio-file-metadata/".format(client.base_url, uuid=uuid) headers: Dict[str, str] = client.get_headers() cookies: Dict[str, Any] = client.get_cookies() @@ -26,15 +26,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[Track]: +def _parse_response(*, response: httpx.Response) -> Optional[TrackMetadata]: if response.status_code == 200: - response_200 = Track.from_dict(response.json()) + response_200 = TrackMetadata.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[Track]: +def _build_response(*, response: httpx.Response) -> Response[TrackMetadata]: return Response( status_code=response.status_code, content=response.content, @@ -47,13 +47,13 @@ def sync_detailed( uuid: str, *, client: AuthenticatedClient, -) -> Response[Track]: +) -> Response[TrackMetadata]: """ Args: uuid (str): Returns: - Response[Track] + Response[TrackMetadata] """ kwargs = _get_kwargs( @@ -73,13 +73,13 @@ def sync( uuid: str, *, client: AuthenticatedClient, -) -> Optional[Track]: +) -> Optional[TrackMetadata]: """ Args: uuid (str): Returns: - Response[Track] + Response[TrackMetadata] """ return sync_detailed( @@ -92,13 +92,13 @@ async def asyncio_detailed( uuid: str, *, client: AuthenticatedClient, -) -> Response[Track]: +) -> Response[TrackMetadata]: """ Args: uuid (str): Returns: - Response[Track] + Response[TrackMetadata] """ kwargs = _get_kwargs( @@ -116,13 +116,13 @@ async def asyncio( uuid: str, *, client: AuthenticatedClient, -) -> Optional[Track]: +) -> Optional[TrackMetadata]: """ Args: uuid (str): Returns: - Response[Track] + Response[TrackMetadata] """ return ( diff --git a/funkwhale_api_client/api/uploads/uploads_list.py b/funkwhale_api_client/api/uploads/get_uploads.py similarity index 93% rename from funkwhale_api_client/api/uploads/uploads_list.py rename to funkwhale_api_client/api/uploads/get_uploads.py index 964b253cd0fd38d2720edc143c09380dc9546e65..fd7fa107cac7a4b47dc38b2123fc5d0853bcc0b7 100644 --- a/funkwhale_api_client/api/uploads/uploads_list.py +++ b/funkwhale_api_client/api/uploads/get_uploads.py @@ -3,8 +3,8 @@ from typing import Any, Dict, List, Optional, Union import httpx from ...client import AuthenticatedClient +from ...models.get_uploads_import_status_item import GetUploadsImportStatusItem from ...models.paginated_upload_for_owner_list import PaginatedUploadForOwnerList -from ...models.uploads_list_import_status_item import UploadsListImportStatusItem from ...types import UNSET, Response, Unset @@ -14,7 +14,7 @@ def _get_kwargs( album_artist: Union[Unset, None, str] = UNSET, channel: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, List[UploadsListImportStatusItem]] = UNSET, + import_status: Union[Unset, None, List[GetUploadsImportStatusItem]] = UNSET, include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mimetype: Union[Unset, None, str] = UNSET, @@ -109,7 +109,7 @@ def sync_detailed( album_artist: Union[Unset, None, str] = UNSET, channel: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, List[UploadsListImportStatusItem]] = UNSET, + import_status: Union[Unset, None, List[GetUploadsImportStatusItem]] = UNSET, include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mimetype: Union[Unset, None, str] = UNSET, @@ -127,7 +127,7 @@ def sync_detailed( album_artist (Union[Unset, None, str]): channel (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, List[UploadsListImportStatusItem]]): + import_status (Union[Unset, None, List[GetUploadsImportStatusItem]]): include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mimetype (Union[Unset, None, str]): @@ -177,7 +177,7 @@ def sync( album_artist: Union[Unset, None, str] = UNSET, channel: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, List[UploadsListImportStatusItem]] = UNSET, + import_status: Union[Unset, None, List[GetUploadsImportStatusItem]] = UNSET, include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mimetype: Union[Unset, None, str] = UNSET, @@ -195,7 +195,7 @@ def sync( album_artist (Union[Unset, None, str]): channel (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, List[UploadsListImportStatusItem]]): + import_status (Union[Unset, None, List[GetUploadsImportStatusItem]]): include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mimetype (Union[Unset, None, str]): @@ -238,7 +238,7 @@ async def asyncio_detailed( album_artist: Union[Unset, None, str] = UNSET, channel: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, List[UploadsListImportStatusItem]] = UNSET, + import_status: Union[Unset, None, List[GetUploadsImportStatusItem]] = UNSET, include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mimetype: Union[Unset, None, str] = UNSET, @@ -256,7 +256,7 @@ async def asyncio_detailed( album_artist (Union[Unset, None, str]): channel (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, List[UploadsListImportStatusItem]]): + import_status (Union[Unset, None, List[GetUploadsImportStatusItem]]): include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mimetype (Union[Unset, None, str]): @@ -304,7 +304,7 @@ async def asyncio( album_artist: Union[Unset, None, str] = UNSET, channel: Union[Unset, None, str] = UNSET, import_reference: Union[Unset, None, str] = UNSET, - import_status: Union[Unset, None, List[UploadsListImportStatusItem]] = UNSET, + import_status: Union[Unset, None, List[GetUploadsImportStatusItem]] = UNSET, include_channels: Union[Unset, None, bool] = UNSET, library: Union[Unset, None, str] = UNSET, mimetype: Union[Unset, None, str] = UNSET, @@ -322,7 +322,7 @@ async def asyncio( album_artist (Union[Unset, None, str]): channel (Union[Unset, None, str]): import_reference (Union[Unset, None, str]): - import_status (Union[Unset, None, List[UploadsListImportStatusItem]]): + import_status (Union[Unset, None, List[GetUploadsImportStatusItem]]): include_channels (Union[Unset, None, bool]): library (Union[Unset, None, str]): mimetype (Union[Unset, None, str]): diff --git a/funkwhale_api_client/api/uploads/uploads_partial_update.py b/funkwhale_api_client/api/uploads/partial_update_upload.py similarity index 100% rename from funkwhale_api_client/api/uploads/uploads_partial_update.py rename to funkwhale_api_client/api/uploads/partial_update_upload.py diff --git a/funkwhale_api_client/api/uploads/uploads_update.py b/funkwhale_api_client/api/uploads/update_upload.py similarity index 100% rename from funkwhale_api_client/api/uploads/uploads_update.py rename to funkwhale_api_client/api/uploads/update_upload.py diff --git a/funkwhale_api_client/api/uploads/uploads_audio_file_metadata_retrieve.py b/funkwhale_api_client/api/uploads/uploads_audio_file_metadata_retrieve.py deleted file mode 100644 index 9980d2914e6c78fa4972414839621c2abb4e28c3..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/uploads/uploads_audio_file_metadata_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.upload_for_owner import UploadForOwner -from ...types import Response - - -def _get_kwargs( - uuid: str, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/uploads/{uuid}/audio-file-metadata/".format(client.base_url, uuid=uuid) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UploadForOwner]: - if response.status_code == 200: - response_200 = UploadForOwner.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UploadForOwner]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - uuid: str, - *, - client: AuthenticatedClient, -) -> Response[UploadForOwner]: - """ - Args: - uuid (str): - - Returns: - Response[UploadForOwner] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - uuid: str, - *, - client: AuthenticatedClient, -) -> Optional[UploadForOwner]: - """ - Args: - uuid (str): - - Returns: - Response[UploadForOwner] - """ - - return sync_detailed( - uuid=uuid, - client=client, - ).parsed - - -async def asyncio_detailed( - uuid: str, - *, - client: AuthenticatedClient, -) -> Response[UploadForOwner]: - """ - Args: - uuid (str): - - Returns: - Response[UploadForOwner] - """ - - kwargs = _get_kwargs( - uuid=uuid, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - uuid: str, - *, - client: AuthenticatedClient, -) -> Optional[UploadForOwner]: - """ - Args: - uuid (str): - - Returns: - Response[UploadForOwner] - """ - - return ( - await asyncio_detailed( - uuid=uuid, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_change_email_create.py b/funkwhale_api_client/api/users/change_email.py similarity index 57% rename from funkwhale_api_client/api/users/users_change_email_create.py rename to funkwhale_api_client/api/users/change_email.py index 1e9830297a3c350cebeabf38cb94cb6378e2e203..398bc077c19ac8d22924758294ec3e85e67134ab 100644 --- a/funkwhale_api_client/api/users/users_change_email_create.py +++ b/funkwhale_api_client/api/users/change_email.py @@ -1,9 +1,8 @@ -from typing import Any, Dict, Optional +from typing import Any, Dict import httpx from ...client import AuthenticatedClient -from ...models.user_write import UserWrite from ...models.user_write_request import UserWriteRequest from ...types import Response @@ -34,20 +33,12 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: +def _build_response(*, response: httpx.Response) -> Response[Any]: return Response( status_code=response.status_code, content=response.content, headers=response.headers, - parsed=_parse_response(response=response), + parsed=None, ) @@ -57,14 +48,14 @@ def sync_detailed( form_data: UserWriteRequest, multipart_data: UserWriteRequest, json_body: UserWriteRequest, -) -> Response[UserWrite]: +) -> Response[Any]: """ Args: multipart_data (UserWriteRequest): json_body (UserWriteRequest): Returns: - Response[UserWrite] + Response[Any] """ kwargs = _get_kwargs( @@ -82,44 +73,20 @@ def sync_detailed( return _build_response(response=response) -def sync( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - async def asyncio_detailed( *, client: AuthenticatedClient, form_data: UserWriteRequest, multipart_data: UserWriteRequest, json_body: UserWriteRequest, -) -> Response[UserWrite]: +) -> Response[Any]: """ Args: multipart_data (UserWriteRequest): json_body (UserWriteRequest): Returns: - Response[UserWrite] + Response[Any] """ kwargs = _get_kwargs( @@ -133,29 +100,3 @@ async def asyncio_detailed( response = await _client.request(**kwargs) return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_subsonic_token_create.py b/funkwhale_api_client/api/users/create_user_subsonic_token.py similarity index 100% rename from funkwhale_api_client/api/users/users_subsonic_token_create.py rename to funkwhale_api_client/api/users/create_user_subsonic_token.py diff --git a/funkwhale_api_client/api/users/users_me_destroy.py b/funkwhale_api_client/api/users/delete_authenticated_user.py similarity index 100% rename from funkwhale_api_client/api/users/users_me_destroy.py rename to funkwhale_api_client/api/users/delete_authenticated_user.py diff --git a/funkwhale_api_client/api/users/users_subsonic_token_destroy.py b/funkwhale_api_client/api/users/delete_user_subsonic_token.py similarity index 100% rename from funkwhale_api_client/api/users/users_subsonic_token_destroy.py rename to funkwhale_api_client/api/users/delete_user_subsonic_token.py diff --git a/funkwhale_api_client/api/users/users_me_retrieve.py b/funkwhale_api_client/api/users/get_authenticated_user.py similarity index 100% rename from funkwhale_api_client/api/users/users_me_retrieve.py rename to funkwhale_api_client/api/users/get_authenticated_user.py diff --git a/funkwhale_api_client/api/users/users_subsonic_token_retrieve.py b/funkwhale_api_client/api/users/get_user_subsonic_token.py similarity index 100% rename from funkwhale_api_client/api/users/users_subsonic_token_retrieve.py rename to funkwhale_api_client/api/users/get_user_subsonic_token.py diff --git a/funkwhale_api_client/api/users/users_partial_update.py b/funkwhale_api_client/api/users/partial_update_user.py similarity index 100% rename from funkwhale_api_client/api/users/users_partial_update.py rename to funkwhale_api_client/api/users/partial_update_user.py diff --git a/funkwhale_api_client/api/users/users_settings_create.py b/funkwhale_api_client/api/users/update_settings.py similarity index 100% rename from funkwhale_api_client/api/users/users_settings_create.py rename to funkwhale_api_client/api/users/update_settings.py diff --git a/funkwhale_api_client/api/users/users_update.py b/funkwhale_api_client/api/users/update_user.py similarity index 100% rename from funkwhale_api_client/api/users/users_update.py rename to funkwhale_api_client/api/users/update_user.py diff --git a/funkwhale_api_client/api/users/users_users_change_email_create.py b/funkwhale_api_client/api/users/users_users_change_email_create.py deleted file mode 100644 index 8966e5ae4a6f5d6e1a37fd6b7dd3da96e0a4735e..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_change_email_create.py +++ /dev/null @@ -1,161 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.user_write import UserWrite -from ...models.user_write_request import UserWriteRequest -from ...types import Response - - -def _get_kwargs( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/change-email/".format(client.base_url) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_users_me_retrieve.py b/funkwhale_api_client/api/users/users_users_me_retrieve.py deleted file mode 100644 index 235d91d57dc886f17ea6dd7a73fed3933b6c3b7c..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_me_retrieve.py +++ /dev/null @@ -1,116 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.user_write import UserWrite -from ...types import Response - - -def _get_kwargs( - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/me/".format(client.base_url) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, -) -> Response[UserWrite]: - """Return information about the current user or delete it - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - *, - client: AuthenticatedClient, -) -> Optional[UserWrite]: - """Return information about the current user or delete it - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - client=client, - ).parsed - - -async def asyncio_detailed( - *, - client: AuthenticatedClient, -) -> Response[UserWrite]: - """Return information about the current user or delete it - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, -) -> Optional[UserWrite]: - """Return information about the current user or delete it - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_users_partial_update.py b/funkwhale_api_client/api/users/users_users_partial_update.py deleted file mode 100644 index 0b42a897278ec8c654a1a2cae727a6c5782c4780..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_partial_update.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.patched_user_write_request import PatchedUserWriteRequest -from ...models.user_write import UserWrite -from ...types import Response - - -def _get_kwargs( - username: str, - *, - client: AuthenticatedClient, - form_data: PatchedUserWriteRequest, - multipart_data: PatchedUserWriteRequest, - json_body: PatchedUserWriteRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/{username}/".format(client.base_url, username=username) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "patch", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - username: str, - *, - client: AuthenticatedClient, - form_data: PatchedUserWriteRequest, - multipart_data: PatchedUserWriteRequest, - json_body: PatchedUserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - username (str): - multipart_data (PatchedUserWriteRequest): - json_body (PatchedUserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - username: str, - *, - client: AuthenticatedClient, - form_data: PatchedUserWriteRequest, - multipart_data: PatchedUserWriteRequest, - json_body: PatchedUserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - username (str): - multipart_data (PatchedUserWriteRequest): - json_body (PatchedUserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - username: str, - *, - client: AuthenticatedClient, - form_data: PatchedUserWriteRequest, - multipart_data: PatchedUserWriteRequest, - json_body: PatchedUserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - username (str): - multipart_data (PatchedUserWriteRequest): - json_body (PatchedUserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - username: str, - *, - client: AuthenticatedClient, - form_data: PatchedUserWriteRequest, - multipart_data: PatchedUserWriteRequest, - json_body: PatchedUserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - username (str): - multipart_data (PatchedUserWriteRequest): - json_body (PatchedUserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_users_settings_create.py b/funkwhale_api_client/api/users/users_users_settings_create.py deleted file mode 100644 index e166e7d09dbb9e5b7d28bd8a3bb820a26cc56ab3..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_settings_create.py +++ /dev/null @@ -1,165 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.user_write import UserWrite -from ...models.user_write_request import UserWriteRequest -from ...types import Response - - -def _get_kwargs( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/settings/".format(client.base_url) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """Return information about the current user or delete it - - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """Return information about the current user or delete it - - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """Return information about the current user or delete it - - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """Return information about the current user or delete it - - Args: - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_users_subsonic_token_create.py b/funkwhale_api_client/api/users/users_users_subsonic_token_create.py deleted file mode 100644 index 36e905fdcc3e16520914d0911040c386333fd6cb..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_subsonic_token_create.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.user_write import UserWrite -from ...models.user_write_request import UserWriteRequest -from ...types import Response - - -def _get_kwargs( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/{username}/subsonic-token/".format(client.base_url, username=username) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "post", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_users_subsonic_token_retrieve.py b/funkwhale_api_client/api/users/users_users_subsonic_token_retrieve.py deleted file mode 100644 index ca2358bb96d6996ab1941a50fa5bb35b6ae948d6..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_subsonic_token_retrieve.py +++ /dev/null @@ -1,133 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.user_write import UserWrite -from ...types import Response - - -def _get_kwargs( - username: str, - *, - client: AuthenticatedClient, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/{username}/subsonic-token/".format(client.base_url, username=username) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - return { - "method": "get", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - username: str, - *, - client: AuthenticatedClient, -) -> Response[UserWrite]: - """ - Args: - username (str): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - username: str, - *, - client: AuthenticatedClient, -) -> Optional[UserWrite]: - """ - Args: - username (str): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - username=username, - client=client, - ).parsed - - -async def asyncio_detailed( - username: str, - *, - client: AuthenticatedClient, -) -> Response[UserWrite]: - """ - Args: - username (str): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - username: str, - *, - client: AuthenticatedClient, -) -> Optional[UserWrite]: - """ - Args: - username (str): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - username=username, - client=client, - ) - ).parsed diff --git a/funkwhale_api_client/api/users/users_users_update.py b/funkwhale_api_client/api/users/users_users_update.py deleted file mode 100644 index 79c38510af619ff72845d7355f99b412e1d849f8..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/api/users/users_users_update.py +++ /dev/null @@ -1,174 +0,0 @@ -from typing import Any, Dict, Optional - -import httpx - -from ...client import AuthenticatedClient -from ...models.user_write import UserWrite -from ...models.user_write_request import UserWriteRequest -from ...types import Response - - -def _get_kwargs( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Dict[str, Any]: - url = "{}/api/v1/users/users/{username}/".format(client.base_url, username=username) - - headers: Dict[str, str] = client.get_headers() - cookies: Dict[str, Any] = client.get_cookies() - - json_body.to_dict() - - multipart_data.to_multipart() - - return { - "method": "put", - "url": url, - "headers": headers, - "cookies": cookies, - "timeout": client.get_timeout(), - "data": form_data.to_dict(), - } - - -def _parse_response(*, response: httpx.Response) -> Optional[UserWrite]: - if response.status_code == 200: - response_200 = UserWrite.from_dict(response.json()) - - return response_200 - return None - - -def _build_response(*, response: httpx.Response) -> Response[UserWrite]: - return Response( - status_code=response.status_code, - content=response.content, - headers=response.headers, - parsed=_parse_response(response=response), - ) - - -def sync_detailed( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - response = httpx.request( - verify=client.verify_ssl, - **kwargs, - ) - - return _build_response(response=response) - - -def sync( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return sync_detailed( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ).parsed - - -async def asyncio_detailed( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Response[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - kwargs = _get_kwargs( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - - async with httpx.AsyncClient(verify=client.verify_ssl) as _client: - response = await _client.request(**kwargs) - - return _build_response(response=response) - - -async def asyncio( - username: str, - *, - client: AuthenticatedClient, - form_data: UserWriteRequest, - multipart_data: UserWriteRequest, - json_body: UserWriteRequest, -) -> Optional[UserWrite]: - """ - Args: - username (str): - multipart_data (UserWriteRequest): - json_body (UserWriteRequest): - - Returns: - Response[UserWrite] - """ - - return ( - await asyncio_detailed( - username=username, - client=client, - form_data=form_data, - multipart_data=multipart_data, - json_body=json_body, - ) - ).parsed diff --git a/funkwhale_api_client/models/__init__.py b/funkwhale_api_client/models/__init__.py index 04026440e7b943db6e3f66c8db884ce76426bc3d..c169630313e1cdbf0c3ead009cd76747d92c1bc8 100644 --- a/funkwhale_api_client/models/__init__.py +++ b/funkwhale_api_client/models/__init__.py @@ -7,19 +7,25 @@ from .activity_related_object import ActivityRelatedObject from .activity_request import ActivityRequest from .activity_request_payload import ActivityRequestPayload from .activity_target import ActivityTarget +from .admin_get_accounts_type import AdminGetAccountsType +from .admin_get_artists_content_category import AdminGetArtistsContentCategory +from .admin_get_libraries_ordering_item import AdminGetLibrariesOrderingItem +from .admin_get_libraries_privacy_level import AdminGetLibrariesPrivacyLevel +from .admin_get_uploads_import_status import AdminGetUploadsImportStatus +from .admin_get_uploads_ordering_item import AdminGetUploadsOrderingItem +from .admin_get_users_privacy_level import AdminGetUsersPrivacyLevel from .album import Album from .album_create import AlbumCreate from .album_create_request import AlbumCreateRequest from .album_request import AlbumRequest -from .albums_list_ordering_item import AlbumsListOrderingItem +from .all_favorite import AllFavorite +from .all_subscriptions import AllSubscriptions from .allow_list_stat import AllowListStat from .api_actor import APIActor from .api_actor_request import APIActorRequest from .api_mutation import APIMutation from .api_mutation_payload import APIMutationPayload from .api_mutation_previous_state import APIMutationPreviousState -from .api_mutation_request import APIMutationRequest -from .api_mutation_request_payload import APIMutationRequestPayload from .api_mutation_target import APIMutationTarget from .application import Application from .application_request import ApplicationRequest @@ -29,7 +35,6 @@ from .artist_with_albums import ArtistWithAlbums from .artist_with_albums_inline_channel import ArtistWithAlbumsInlineChannel from .artist_with_albums_inline_channel_request import ArtistWithAlbumsInlineChannelRequest from .artist_with_albums_request import ArtistWithAlbumsRequest -from .artists_list_ordering_item import ArtistsListOrderingItem from .attachment import Attachment from .attachment_request import AttachmentRequest from .attachment_urls import AttachmentUrls @@ -43,7 +48,6 @@ from .channel_update import ChannelUpdate from .channel_update_metadata import ChannelUpdateMetadata from .channel_update_request import ChannelUpdateRequest from .channel_update_request_metadata import ChannelUpdateRequestMetadata -from .channels_list_ordering_item import ChannelsListOrderingItem from .content import Content from .content_category_enum import ContentCategoryEnum from .content_request import ContentRequest @@ -60,16 +64,35 @@ from .fetch import Fetch from .fetch_detail import FetchDetail from .fetch_request import FetchRequest from .fetch_status_enum import FetchStatusEnum +from .filter_ import Filter from .full_actor import FullActor +from .get_album_fetches_ordering_item import GetAlbumFetchesOrderingItem +from .get_album_libraries_ordering_item import GetAlbumLibrariesOrderingItem +from .get_album_mutations_ordering_item import GetAlbumMutationsOrderingItem +from .get_albums_ordering_item import GetAlbumsOrderingItem +from .get_artist_fetches_ordering_item import GetArtistFetchesOrderingItem +from .get_artist_libraries_ordering_item import GetArtistLibrariesOrderingItem +from .get_artist_mutations_ordering_item import GetArtistMutationsOrderingItem +from .get_artists_ordering_item import GetArtistsOrderingItem +from .get_channels_ordering_item import GetChannelsOrderingItem +from .get_libraries_privacy_level import GetLibrariesPrivacyLevel +from .get_library_follows_privacy_level import GetLibraryFollowsPrivacyLevel +from .get_tags_ordering_item import GetTagsOrderingItem +from .get_track_fetches_ordering_item import GetTrackFetchesOrderingItem +from .get_track_libraries_ordering_item import GetTrackLibrariesOrderingItem +from .get_track_mutations_ordering_item import GetTrackMutationsOrderingItem +from .get_tracks_ordering_item import GetTracksOrderingItem +from .get_uploads_import_status_item import GetUploadsImportStatusItem from .global_preference import GlobalPreference from .global_preference_request import GlobalPreferenceRequest from .ident import Ident +from .import_status_enum import ImportStatusEnum from .inbox_item import InboxItem from .inbox_item_request import InboxItemRequest from .inbox_item_type_enum import InboxItemTypeEnum from .inline_actor import InlineActor from .inline_actor_request import InlineActorRequest -from .libraries_list_privacy_level import LibrariesListPrivacyLevel +from .inline_subscription import InlineSubscription from .library import Library from .library_follow import LibraryFollow from .library_follow_request import LibraryFollowRequest @@ -78,11 +101,11 @@ from .library_for_owner_request import LibraryForOwnerRequest from .library_privacy_level_enum import LibraryPrivacyLevelEnum from .library_request import LibraryRequest from .library_scan import LibraryScan +from .library_scan_request import LibraryScanRequest from .license_ import License from .listening import Listening from .listening_write import ListeningWrite from .listening_write_request import ListeningWriteRequest -from .manage_accounts_list_type import ManageAccountsListType from .manage_actor import ManageActor from .manage_actor_request import ManageActorRequest from .manage_album import ManageAlbum @@ -92,6 +115,7 @@ from .manage_artist_request import ManageArtistRequest from .manage_base_actor import ManageBaseActor from .manage_base_actor_request import ManageBaseActorRequest from .manage_base_note import ManageBaseNote +from .manage_base_note_request import ManageBaseNoteRequest from .manage_channel import ManageChannel from .manage_channel_metadata import ManageChannelMetadata from .manage_domain import ManageDomain @@ -105,15 +129,7 @@ from .manage_instance_policy_request import ManageInstancePolicyRequest from .manage_invitation import ManageInvitation from .manage_invitation_request import ManageInvitationRequest from .manage_library import ManageLibrary -from .manage_library_artists_list_content_category import ManageLibraryArtistsListContentCategory -from .manage_library_libraries_list_ordering_item import ManageLibraryLibrariesListOrderingItem -from .manage_library_libraries_list_privacy_level import ManageLibraryLibrariesListPrivacyLevel from .manage_library_request import ManageLibraryRequest -from .manage_library_uploads_list_import_status import ManageLibraryUploadsListImportStatus -from .manage_library_uploads_list_ordering_item import ManageLibraryUploadsListOrderingItem -from .manage_moderation_reports_list_type import ManageModerationReportsListType -from .manage_moderation_requests_list_status import ManageModerationRequestsListStatus -from .manage_moderation_requests_list_type import ManageModerationRequestsListType from .manage_nested_artist import ManageNestedArtist from .manage_nested_artist_request import ManageNestedArtistRequest from .manage_nested_library import ManageNestedLibrary @@ -141,7 +157,6 @@ from .manage_track_request import ManageTrackRequest from .manage_upload import ManageUpload from .manage_upload_import_details import ManageUploadImportDetails from .manage_upload_import_metadata import ManageUploadImportMetadata -from .manage_upload_import_status_enum import ManageUploadImportStatusEnum from .manage_upload_metadata import ManageUploadMetadata from .manage_upload_request import ManageUploadRequest from .manage_upload_request_import_details import ManageUploadRequestImportDetails @@ -155,14 +170,17 @@ from .manage_user_request_status_enum import ManageUserRequestStatusEnum from .manage_user_request_type_enum import ManageUserRequestTypeEnum from .manage_user_simple import ManageUserSimple from .manage_user_simple_request import ManageUserSimpleRequest -from .manage_users_users_list_privacy_level import ManageUsersUsersListPrivacyLevel from .metadata import Metadata from .metadata_usage import MetadataUsage from .metadata_usage_favorite import MetadataUsageFavorite +from .moderation_get_reports_type import ModerationGetReportsType +from .moderation_get_requests_status import ModerationGetRequestsStatus +from .moderation_get_requests_type import ModerationGetRequestsType from .moderation_target import ModerationTarget from .moderation_target_request import ModerationTargetRequest from .moderation_target_type_enum import ModerationTargetTypeEnum from .nested_library_follow import NestedLibraryFollow +from .nested_library_follow_request import NestedLibraryFollowRequest from .node_info_20 import NodeInfo20 from .paginated_album_list import PaginatedAlbumList from .paginated_api_mutation_list import PaginatedAPIMutationList @@ -170,9 +188,11 @@ from .paginated_application_list import PaginatedApplicationList from .paginated_artist_with_albums_list import PaginatedArtistWithAlbumsList from .paginated_channel_list import PaginatedChannelList from .paginated_domain_list import PaginatedDomainList +from .paginated_fetch_list import PaginatedFetchList from .paginated_inbox_item_list import PaginatedInboxItemList from .paginated_library_follow_list import PaginatedLibraryFollowList from .paginated_library_for_owner_list import PaginatedLibraryForOwnerList +from .paginated_library_list import PaginatedLibraryList from .paginated_license_list import PaginatedLicenseList from .paginated_listening_list import PaginatedListeningList from .paginated_manage_actor_list import PaginatedManageActorList @@ -191,6 +211,7 @@ from .paginated_manage_upload_list import PaginatedManageUploadList from .paginated_manage_user_list import PaginatedManageUserList from .paginated_manage_user_request_list import PaginatedManageUserRequestList from .paginated_playlist_list import PaginatedPlaylistList +from .paginated_playlist_track_list import PaginatedPlaylistTrackList from .paginated_radio_list import PaginatedRadioList from .paginated_subscription_list import PaginatedSubscriptionList from .paginated_tag_list import PaginatedTagList @@ -226,7 +247,9 @@ from .patched_upload_for_owner_request_import_metadata import PatchedUploadForOw from .patched_user_details_request import PatchedUserDetailsRequest from .patched_user_write_request import PatchedUserWriteRequest from .playlist import Playlist +from .playlist_add_many_request import PlaylistAddManyRequest from .playlist_request import PlaylistRequest +from .playlist_track import PlaylistTrack from .privacy_level_enum import PrivacyLevelEnum from .radio import Radio from .radio_config import RadioConfig @@ -251,25 +274,23 @@ from .scopes import Scopes from .services import Services from .simple_artist import SimpleArtist from .simple_artist_request import SimpleArtistRequest +from .simple_favorite import SimpleFavorite from .software import Software from .subscription import Subscription from .tag import Tag -from .tags_list_ordering_item import TagsListOrderingItem from .total_count import TotalCount from .track import Track from .track_album import TrackAlbum from .track_album_request import TrackAlbumRequest +from .track_metadata import TrackMetadata from .track_request import TrackRequest from .track_uploads_item import TrackUploadsItem -from .tracks_list_ordering_item import TracksListOrderingItem from .upload_for_owner import UploadForOwner from .upload_for_owner_import_details import UploadForOwnerImportDetails from .upload_for_owner_import_metadata import UploadForOwnerImportMetadata -from .upload_for_owner_import_status_enum import UploadForOwnerImportStatusEnum from .upload_for_owner_metadata import UploadForOwnerMetadata from .upload_for_owner_request import UploadForOwnerRequest from .upload_for_owner_request_import_metadata import UploadForOwnerRequestImportMetadata -from .uploads_list_import_status_item import UploadsListImportStatusItem from .usage import Usage from .user_basic import UserBasic from .user_basic_request import UserBasicRequest diff --git a/funkwhale_api_client/models/activity.py b/funkwhale_api_client/models/activity.py index c00fed8206dffe8303f9c98f17cc47759d14e017..d1b20c5ed89fa94c8f3e272a1b4b2a7c93ac8836 100644 --- a/funkwhale_api_client/models/activity.py +++ b/funkwhale_api_client/models/activity.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Dict, List, Type, TypeVar, Union +from typing import Any, Dict, List, Optional, Type, TypeVar, Union import attr from dateutil.parser import isoparse @@ -19,20 +19,20 @@ class Activity: """ Attributes: actor (APIActor): - object_ (ActivityObject): - target (ActivityTarget): related_object (ActivityRelatedObject): uuid (Union[Unset, str]): fid (Union[Unset, None, str]): payload (Union[Unset, ActivityPayload]): + object_ (Optional[ActivityObject]): + target (Optional[ActivityTarget]): creation_date (Union[Unset, datetime.datetime]): type (Union[Unset, None, str]): """ actor: APIActor - object_: ActivityObject - target: ActivityTarget related_object: ActivityRelatedObject + object_: Optional[ActivityObject] + target: Optional[ActivityTarget] uuid: Union[Unset, str] = UNSET fid: Union[Unset, None, str] = UNSET payload: Union[Unset, ActivityPayload] = UNSET @@ -43,10 +43,6 @@ class Activity: def to_dict(self) -> Dict[str, Any]: actor = self.actor.to_dict() - object_ = self.object_.to_dict() - - target = self.target.to_dict() - related_object = self.related_object.to_dict() uuid = self.uuid @@ -55,6 +51,10 @@ class Activity: if not isinstance(self.payload, Unset): payload = self.payload.to_dict() + object_ = self.object_.to_dict() if self.object_ else None + + target = self.target.to_dict() if self.target else None + creation_date: Union[Unset, str] = UNSET if not isinstance(self.creation_date, Unset): creation_date = self.creation_date.isoformat() @@ -66,9 +66,9 @@ class Activity: field_dict.update( { "actor": actor, + "related_object": related_object, "object": object_, "target": target, - "related_object": related_object, } ) if uuid is not UNSET: @@ -89,10 +89,6 @@ class Activity: d = src_dict.copy() actor = APIActor.from_dict(d.pop("actor")) - object_ = ActivityObject.from_dict(d.pop("object")) - - target = ActivityTarget.from_dict(d.pop("target")) - related_object = ActivityRelatedObject.from_dict(d.pop("related_object")) uuid = d.pop("uuid", UNSET) @@ -106,6 +102,20 @@ class Activity: else: payload = ActivityPayload.from_dict(_payload) + _object_ = d.pop("object") + object_: Optional[ActivityObject] + if _object_ is None: + object_ = None + else: + object_ = ActivityObject.from_dict(_object_) + + _target = d.pop("target") + target: Optional[ActivityTarget] + if _target is None: + target = None + else: + target = ActivityTarget.from_dict(_target) + _creation_date = d.pop("creation_date", UNSET) creation_date: Union[Unset, datetime.datetime] if isinstance(_creation_date, Unset): @@ -117,12 +127,12 @@ class Activity: activity = cls( actor=actor, - object_=object_, - target=target, related_object=related_object, uuid=uuid, fid=fid, payload=payload, + object_=object_, + target=target, creation_date=creation_date, type=type, ) diff --git a/funkwhale_api_client/models/manage_accounts_list_type.py b/funkwhale_api_client/models/admin_get_accounts_type.py similarity index 85% rename from funkwhale_api_client/models/manage_accounts_list_type.py rename to funkwhale_api_client/models/admin_get_accounts_type.py index 90ae24871e9c95e21c46d9cc626f576512af527e..52821edff999c060d11b13d9a13ec003c2ffb141 100644 --- a/funkwhale_api_client/models/manage_accounts_list_type.py +++ b/funkwhale_api_client/models/admin_get_accounts_type.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageAccountsListType(str, Enum): +class AdminGetAccountsType(str, Enum): APPLICATION = "Application" GROUP = "Group" ORGANIZATION = "Organization" diff --git a/funkwhale_api_client/models/manage_library_artists_list_content_category.py b/funkwhale_api_client/models/admin_get_artists_content_category.py similarity index 72% rename from funkwhale_api_client/models/manage_library_artists_list_content_category.py rename to funkwhale_api_client/models/admin_get_artists_content_category.py index bb664e8ffdcedca74e39b93a0738e0f92eb44b56..2a8e22bc6a51e73a72cc01264842ccbe50e4b48b 100644 --- a/funkwhale_api_client/models/manage_library_artists_list_content_category.py +++ b/funkwhale_api_client/models/admin_get_artists_content_category.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageLibraryArtistsListContentCategory(str, Enum): +class AdminGetArtistsContentCategory(str, Enum): MUSIC = "music" OTHER = "other" PODCAST = "podcast" diff --git a/funkwhale_api_client/models/manage_library_libraries_list_ordering_item.py b/funkwhale_api_client/models/admin_get_libraries_ordering_item.py similarity index 83% rename from funkwhale_api_client/models/manage_library_libraries_list_ordering_item.py rename to funkwhale_api_client/models/admin_get_libraries_ordering_item.py index c9c78d43547dd44253a8ec596d022e86a04e4943..fa2f1cbf7b4ab21ec18882bd2e1b2194f303c0d2 100644 --- a/funkwhale_api_client/models/manage_library_libraries_list_ordering_item.py +++ b/funkwhale_api_client/models/admin_get_libraries_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageLibraryLibrariesListOrderingItem(str, Enum): +class AdminGetLibrariesOrderingItem(str, Enum): VALUE_0 = "-creation_date" VALUE_1 = "-followers_count" VALUE_2 = "-uploads_count" diff --git a/funkwhale_api_client/models/manage_library_libraries_list_privacy_level.py b/funkwhale_api_client/models/admin_get_libraries_privacy_level.py similarity index 72% rename from funkwhale_api_client/models/manage_library_libraries_list_privacy_level.py rename to funkwhale_api_client/models/admin_get_libraries_privacy_level.py index 5dca27fad219c50796a0aed7fc6f67d57dc39574..3667db4bf4d78a2e8796516230dedde0a37403b6 100644 --- a/funkwhale_api_client/models/manage_library_libraries_list_privacy_level.py +++ b/funkwhale_api_client/models/admin_get_libraries_privacy_level.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageLibraryLibrariesListPrivacyLevel(str, Enum): +class AdminGetLibrariesPrivacyLevel(str, Enum): EVERYONE = "everyone" INSTANCE = "instance" ME = "me" diff --git a/funkwhale_api_client/models/uploads_list_import_status_item.py b/funkwhale_api_client/models/admin_get_uploads_import_status.py similarity index 81% rename from funkwhale_api_client/models/uploads_list_import_status_item.py rename to funkwhale_api_client/models/admin_get_uploads_import_status.py index 3612a0306e0484364b1a87e941dae8e47b76e489..3564fcf4b4e0b9b2601494c03f2055c526d38dac 100644 --- a/funkwhale_api_client/models/uploads_list_import_status_item.py +++ b/funkwhale_api_client/models/admin_get_uploads_import_status.py @@ -1,7 +1,7 @@ from enum import Enum -class UploadsListImportStatusItem(str, Enum): +class AdminGetUploadsImportStatus(str, Enum): DRAFT = "draft" ERRORED = "errored" FINISHED = "finished" diff --git a/funkwhale_api_client/models/manage_library_uploads_list_ordering_item.py b/funkwhale_api_client/models/admin_get_uploads_ordering_item.py similarity index 88% rename from funkwhale_api_client/models/manage_library_uploads_list_ordering_item.py rename to funkwhale_api_client/models/admin_get_uploads_ordering_item.py index 0777adc352f9578a83d89843fd5ccc83e8c1a10c..13a2b21f4b69903d7f09bb1922d455aa89abf28c 100644 --- a/funkwhale_api_client/models/manage_library_uploads_list_ordering_item.py +++ b/funkwhale_api_client/models/admin_get_uploads_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageLibraryUploadsListOrderingItem(str, Enum): +class AdminGetUploadsOrderingItem(str, Enum): VALUE_0 = "-accessed_date" VALUE_1 = "-bitrate" VALUE_2 = "-creation_date" diff --git a/funkwhale_api_client/models/manage_users_users_list_privacy_level.py b/funkwhale_api_client/models/admin_get_users_privacy_level.py similarity index 77% rename from funkwhale_api_client/models/manage_users_users_list_privacy_level.py rename to funkwhale_api_client/models/admin_get_users_privacy_level.py index 7ba90a440d01a7e3b914f20c48a50b58afdba0b9..bd438f0881a7dd4f8e0067ae8e1fbf1aa151e55e 100644 --- a/funkwhale_api_client/models/manage_users_users_list_privacy_level.py +++ b/funkwhale_api_client/models/admin_get_users_privacy_level.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageUsersUsersListPrivacyLevel(str, Enum): +class AdminGetUsersPrivacyLevel(str, Enum): EVERYONE = "everyone" FOLLOWERS = "followers" INSTANCE = "instance" diff --git a/funkwhale_api_client/models/all_favorite.py b/funkwhale_api_client/models/all_favorite.py new file mode 100644 index 0000000000000000000000000000000000000000..f2ada45fcc48d2499c88c6b7d1be129d7a525cdf --- /dev/null +++ b/funkwhale_api_client/models/all_favorite.py @@ -0,0 +1,76 @@ +from typing import Any, Dict, List, Type, TypeVar + +import attr + +from ..models.simple_favorite import SimpleFavorite + +T = TypeVar("T", bound="AllFavorite") + + +@attr.s(auto_attribs=True) +class AllFavorite: + """ + Attributes: + results (List[SimpleFavorite]): + count (int): + """ + + results: List[SimpleFavorite] + count: int + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + results = [] + for results_item_data in self.results: + results_item = results_item_data.to_dict() + + results.append(results_item) + + count = self.count + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "results": results, + "count": count, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + results = [] + _results = d.pop("results") + for results_item_data in _results: + results_item = SimpleFavorite.from_dict(results_item_data) + + results.append(results_item) + + count = d.pop("count") + + all_favorite = cls( + results=results, + count=count, + ) + + all_favorite.additional_properties = d + return all_favorite + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/all_subscriptions.py b/funkwhale_api_client/models/all_subscriptions.py new file mode 100644 index 0000000000000000000000000000000000000000..f47f3fc8301780c23c0caf0f7b7fc6aecb7564ad --- /dev/null +++ b/funkwhale_api_client/models/all_subscriptions.py @@ -0,0 +1,76 @@ +from typing import Any, Dict, List, Type, TypeVar + +import attr + +from ..models.inline_subscription import InlineSubscription + +T = TypeVar("T", bound="AllSubscriptions") + + +@attr.s(auto_attribs=True) +class AllSubscriptions: + """ + Attributes: + results (List[InlineSubscription]): + count (int): + """ + + results: List[InlineSubscription] + count: int + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + results = [] + for results_item_data in self.results: + results_item = results_item_data.to_dict() + + results.append(results_item) + + count = self.count + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "results": results, + "count": count, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + results = [] + _results = d.pop("results") + for results_item_data in _results: + results_item = InlineSubscription.from_dict(results_item_data) + + results.append(results_item) + + count = d.pop("count") + + all_subscriptions = cls( + results=results, + count=count, + ) + + all_subscriptions.additional_properties = d + return all_subscriptions + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/api_mutation_request.py b/funkwhale_api_client/models/api_mutation_request.py deleted file mode 100644 index 6e828474a6135cec12233ad5cf4883623a71886a..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/models/api_mutation_request.py +++ /dev/null @@ -1,139 +0,0 @@ -import datetime -import json -from typing import Any, Dict, List, Type, TypeVar, Union - -import attr -from dateutil.parser import isoparse - -from ..models.api_mutation_request_payload import APIMutationRequestPayload -from ..types import UNSET, Unset - -T = TypeVar("T", bound="APIMutationRequest") - - -@attr.s(auto_attribs=True) -class APIMutationRequest: - """ - Attributes: - type (str): - payload (APIMutationRequestPayload): - applied_date (Union[Unset, None, datetime.datetime]): - is_approved (Union[Unset, None, bool]): - summary (Union[Unset, None, str]): - """ - - type: str - payload: APIMutationRequestPayload - applied_date: Union[Unset, None, datetime.datetime] = UNSET - is_approved: Union[Unset, None, bool] = UNSET - summary: Union[Unset, None, str] = UNSET - additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) - - def to_dict(self) -> Dict[str, Any]: - type = self.type - payload = self.payload.to_dict() - - applied_date: Union[Unset, None, str] = UNSET - if not isinstance(self.applied_date, Unset): - applied_date = self.applied_date.isoformat() if self.applied_date else None - - is_approved = self.is_approved - summary = self.summary - - field_dict: Dict[str, Any] = {} - field_dict.update(self.additional_properties) - field_dict.update( - { - "type": type, - "payload": payload, - } - ) - if applied_date is not UNSET: - field_dict["applied_date"] = applied_date - if is_approved is not UNSET: - field_dict["is_approved"] = is_approved - if summary is not UNSET: - field_dict["summary"] = summary - - return field_dict - - def to_multipart(self) -> Dict[str, Any]: - type = self.type if isinstance(self.type, Unset) else (None, str(self.type).encode(), "text/plain") - payload = (None, json.dumps(self.payload.to_dict()).encode(), "application/json") - - applied_date: Union[Unset, None, bytes] = UNSET - if not isinstance(self.applied_date, Unset): - applied_date = self.applied_date.isoformat().encode() if self.applied_date else None - - is_approved = ( - self.is_approved - if isinstance(self.is_approved, Unset) - else (None, str(self.is_approved).encode(), "text/plain") - ) - summary = self.summary if isinstance(self.summary, Unset) else (None, str(self.summary).encode(), "text/plain") - - field_dict: Dict[str, Any] = {} - field_dict.update( - {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()} - ) - field_dict.update( - { - "type": type, - "payload": payload, - } - ) - if applied_date is not UNSET: - field_dict["applied_date"] = applied_date - if is_approved is not UNSET: - field_dict["is_approved"] = is_approved - if summary is not UNSET: - field_dict["summary"] = summary - - return field_dict - - @classmethod - def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: - d = src_dict.copy() - type = d.pop("type") - - payload = APIMutationRequestPayload.from_dict(d.pop("payload")) - - _applied_date = d.pop("applied_date", UNSET) - applied_date: Union[Unset, None, datetime.datetime] - if _applied_date is None: - applied_date = None - elif isinstance(_applied_date, Unset): - applied_date = UNSET - else: - applied_date = isoparse(_applied_date) - - is_approved = d.pop("is_approved", UNSET) - - summary = d.pop("summary", UNSET) - - api_mutation_request = cls( - type=type, - payload=payload, - applied_date=applied_date, - is_approved=is_approved, - summary=summary, - ) - - api_mutation_request.additional_properties = d - return api_mutation_request - - @property - def additional_keys(self) -> List[str]: - return list(self.additional_properties.keys()) - - def __getitem__(self, key: str) -> Any: - return self.additional_properties[key] - - def __setitem__(self, key: str, value: Any) -> None: - self.additional_properties[key] = value - - def __delitem__(self, key: str) -> None: - del self.additional_properties[key] - - def __contains__(self, key: str) -> bool: - return key in self.additional_properties diff --git a/funkwhale_api_client/models/filter_.py b/funkwhale_api_client/models/filter_.py new file mode 100644 index 0000000000000000000000000000000000000000..5b35cf637ff3cadfa1223b9b8a36a98d09543d23 --- /dev/null +++ b/funkwhale_api_client/models/filter_.py @@ -0,0 +1,78 @@ +from typing import Any, Dict, List, Type, TypeVar + +import attr + +T = TypeVar("T", bound="Filter") + + +@attr.s(auto_attribs=True) +class Filter: + """ + Attributes: + type (str): + label (str): + help_text (str): + fields (str): + """ + + type: str + label: str + help_text: str + fields: str + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + type = self.type + label = self.label + help_text = self.help_text + fields = self.fields + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "type": type, + "label": label, + "help_text": help_text, + "fields": fields, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + type = d.pop("type") + + label = d.pop("label") + + help_text = d.pop("help_text") + + fields = d.pop("fields") + + filter_ = cls( + type=type, + label=label, + help_text=help_text, + fields=fields, + ) + + filter_.additional_properties = d + return filter_ + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/get_album_fetches_ordering_item.py b/funkwhale_api_client/models/get_album_fetches_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..ef0031d796e2dbb1f8500b3c5597aaebceeff771 --- /dev/null +++ b/funkwhale_api_client/models/get_album_fetches_ordering_item.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class GetAlbumFetchesOrderingItem(str, Enum): + VALUE_0 = "-artist__modification_date" + VALUE_1 = "-creation_date" + VALUE_2 = "-random" + VALUE_3 = "-related" + VALUE_4 = "-release_date" + VALUE_5 = "-title" + ARTIST_MODIFICATION_DATE = "artist__modification_date" + CREATION_DATE = "creation_date" + RANDOM = "random" + RELATED = "related" + RELEASE_DATE = "release_date" + TITLE = "title" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/get_album_libraries_ordering_item.py b/funkwhale_api_client/models/get_album_libraries_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..a5e65de5dd9c8d42b9ce328fd54a2a89a716275a --- /dev/null +++ b/funkwhale_api_client/models/get_album_libraries_ordering_item.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class GetAlbumLibrariesOrderingItem(str, Enum): + VALUE_0 = "-artist__modification_date" + VALUE_1 = "-creation_date" + VALUE_2 = "-random" + VALUE_3 = "-related" + VALUE_4 = "-release_date" + VALUE_5 = "-title" + ARTIST_MODIFICATION_DATE = "artist__modification_date" + CREATION_DATE = "creation_date" + RANDOM = "random" + RELATED = "related" + RELEASE_DATE = "release_date" + TITLE = "title" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/get_album_mutations_ordering_item.py b/funkwhale_api_client/models/get_album_mutations_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..acb5ce73bdecac74687fc10527d367089cd00679 --- /dev/null +++ b/funkwhale_api_client/models/get_album_mutations_ordering_item.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class GetAlbumMutationsOrderingItem(str, Enum): + VALUE_0 = "-artist__modification_date" + VALUE_1 = "-creation_date" + VALUE_2 = "-random" + VALUE_3 = "-related" + VALUE_4 = "-release_date" + VALUE_5 = "-title" + ARTIST_MODIFICATION_DATE = "artist__modification_date" + CREATION_DATE = "creation_date" + RANDOM = "random" + RELATED = "related" + RELEASE_DATE = "release_date" + TITLE = "title" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/albums_list_ordering_item.py b/funkwhale_api_client/models/get_albums_ordering_item.py similarity index 91% rename from funkwhale_api_client/models/albums_list_ordering_item.py rename to funkwhale_api_client/models/get_albums_ordering_item.py index 7469d1ddd8f987f0c420efb7f90fa4836681a9f9..9ca14cafb602f3106a294a4ef630892a5a39b86f 100644 --- a/funkwhale_api_client/models/albums_list_ordering_item.py +++ b/funkwhale_api_client/models/get_albums_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class AlbumsListOrderingItem(str, Enum): +class GetAlbumsOrderingItem(str, Enum): VALUE_0 = "-artist__modification_date" VALUE_1 = "-creation_date" VALUE_2 = "-random" diff --git a/funkwhale_api_client/models/get_artist_fetches_ordering_item.py b/funkwhale_api_client/models/get_artist_fetches_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..15c6114c91481774f42f36022dc306109c062eed --- /dev/null +++ b/funkwhale_api_client/models/get_artist_fetches_ordering_item.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class GetArtistFetchesOrderingItem(str, Enum): + VALUE_0 = "-creation_date" + VALUE_1 = "-id" + VALUE_2 = "-modification_date" + VALUE_3 = "-name" + VALUE_4 = "-random" + VALUE_5 = "-related" + CREATION_DATE = "creation_date" + ID = "id" + MODIFICATION_DATE = "modification_date" + NAME = "name" + RANDOM = "random" + RELATED = "related" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/get_artist_libraries_ordering_item.py b/funkwhale_api_client/models/get_artist_libraries_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..887cbe70bcc7c9bb05cace45bff543111186329f --- /dev/null +++ b/funkwhale_api_client/models/get_artist_libraries_ordering_item.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class GetArtistLibrariesOrderingItem(str, Enum): + VALUE_0 = "-creation_date" + VALUE_1 = "-id" + VALUE_2 = "-modification_date" + VALUE_3 = "-name" + VALUE_4 = "-random" + VALUE_5 = "-related" + CREATION_DATE = "creation_date" + ID = "id" + MODIFICATION_DATE = "modification_date" + NAME = "name" + RANDOM = "random" + RELATED = "related" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/get_artist_mutations_ordering_item.py b/funkwhale_api_client/models/get_artist_mutations_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..056040051cc9f0acd4023358fdf0482c167ee370 --- /dev/null +++ b/funkwhale_api_client/models/get_artist_mutations_ordering_item.py @@ -0,0 +1,19 @@ +from enum import Enum + + +class GetArtistMutationsOrderingItem(str, Enum): + VALUE_0 = "-creation_date" + VALUE_1 = "-id" + VALUE_2 = "-modification_date" + VALUE_3 = "-name" + VALUE_4 = "-random" + VALUE_5 = "-related" + CREATION_DATE = "creation_date" + ID = "id" + MODIFICATION_DATE = "modification_date" + NAME = "name" + RANDOM = "random" + RELATED = "related" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/artists_list_ordering_item.py b/funkwhale_api_client/models/get_artists_ordering_item.py similarity index 90% rename from funkwhale_api_client/models/artists_list_ordering_item.py rename to funkwhale_api_client/models/get_artists_ordering_item.py index 3b8580117ec29d41b4318a90d6d24b0388ea87f2..22835957a53032d1d00174120dc701aed622d828 100644 --- a/funkwhale_api_client/models/artists_list_ordering_item.py +++ b/funkwhale_api_client/models/get_artists_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class ArtistsListOrderingItem(str, Enum): +class GetArtistsOrderingItem(str, Enum): VALUE_0 = "-creation_date" VALUE_1 = "-id" VALUE_2 = "-modification_date" diff --git a/funkwhale_api_client/models/channels_list_ordering_item.py b/funkwhale_api_client/models/get_channels_ordering_item.py similarity index 86% rename from funkwhale_api_client/models/channels_list_ordering_item.py rename to funkwhale_api_client/models/get_channels_ordering_item.py index 15a234516eb5ca2028f1a6d4c5cafb3b9f102132..22d5b6b9bd3fc56dcb3145f86b536cf5d392501b 100644 --- a/funkwhale_api_client/models/channels_list_ordering_item.py +++ b/funkwhale_api_client/models/get_channels_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class ChannelsListOrderingItem(str, Enum): +class GetChannelsOrderingItem(str, Enum): VALUE_0 = "-creation_date" VALUE_1 = "-modification_date" VALUE_2 = "-random" diff --git a/funkwhale_api_client/models/libraries_list_privacy_level.py b/funkwhale_api_client/models/get_libraries_privacy_level.py similarity index 77% rename from funkwhale_api_client/models/libraries_list_privacy_level.py rename to funkwhale_api_client/models/get_libraries_privacy_level.py index 6a80ac3e89fce5c7f6bb739137b2a2edce5df11b..37d94cc36618304d4044bb6fb4439cca2d201568 100644 --- a/funkwhale_api_client/models/libraries_list_privacy_level.py +++ b/funkwhale_api_client/models/get_libraries_privacy_level.py @@ -1,7 +1,7 @@ from enum import Enum -class LibrariesListPrivacyLevel(str, Enum): +class GetLibrariesPrivacyLevel(str, Enum): EVERYONE = "everyone" INSTANCE = "instance" ME = "me" diff --git a/funkwhale_api_client/models/get_library_follows_privacy_level.py b/funkwhale_api_client/models/get_library_follows_privacy_level.py new file mode 100644 index 0000000000000000000000000000000000000000..b9ad936941c246b68ab69eb3916a780e81f12b93 --- /dev/null +++ b/funkwhale_api_client/models/get_library_follows_privacy_level.py @@ -0,0 +1,10 @@ +from enum import Enum + + +class GetLibraryFollowsPrivacyLevel(str, Enum): + EVERYONE = "everyone" + INSTANCE = "instance" + ME = "me" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/tags_list_ordering_item.py b/funkwhale_api_client/models/get_tags_ordering_item.py similarity index 85% rename from funkwhale_api_client/models/tags_list_ordering_item.py rename to funkwhale_api_client/models/get_tags_ordering_item.py index f2bdfdf5e57704afb05c1434220909646bf6cc1c..0d30e093b543b4ac5c18d61d1a001a2c1db30c3b 100644 --- a/funkwhale_api_client/models/tags_list_ordering_item.py +++ b/funkwhale_api_client/models/get_tags_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class TagsListOrderingItem(str, Enum): +class GetTagsOrderingItem(str, Enum): VALUE_0 = "-creation_date" VALUE_1 = "-length" VALUE_2 = "-name" diff --git a/funkwhale_api_client/models/get_track_fetches_ordering_item.py b/funkwhale_api_client/models/get_track_fetches_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..292adf9981cace8352f55d232df80af269760a43 --- /dev/null +++ b/funkwhale_api_client/models/get_track_fetches_ordering_item.py @@ -0,0 +1,29 @@ +from enum import Enum + + +class GetTrackFetchesOrderingItem(str, Enum): + VALUE_0 = "-album__release_date" + VALUE_1 = "-album__title" + VALUE_2 = "-artist__modification_date" + VALUE_3 = "-artist__name" + VALUE_4 = "-creation_date" + VALUE_5 = "-disc_number" + VALUE_6 = "-position" + VALUE_7 = "-random" + VALUE_8 = "-related" + VALUE_9 = "-size" + VALUE_10 = "-title" + ALBUM_RELEASE_DATE = "album__release_date" + ALBUM_TITLE = "album__title" + ARTIST_MODIFICATION_DATE = "artist__modification_date" + ARTIST_NAME = "artist__name" + CREATION_DATE = "creation_date" + DISC_NUMBER = "disc_number" + POSITION = "position" + RANDOM = "random" + RELATED = "related" + SIZE = "size" + TITLE = "title" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/get_track_libraries_ordering_item.py b/funkwhale_api_client/models/get_track_libraries_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..65dd808a00bad585e4d6f7d1e692656ab15294b1 --- /dev/null +++ b/funkwhale_api_client/models/get_track_libraries_ordering_item.py @@ -0,0 +1,29 @@ +from enum import Enum + + +class GetTrackLibrariesOrderingItem(str, Enum): + VALUE_0 = "-album__release_date" + VALUE_1 = "-album__title" + VALUE_2 = "-artist__modification_date" + VALUE_3 = "-artist__name" + VALUE_4 = "-creation_date" + VALUE_5 = "-disc_number" + VALUE_6 = "-position" + VALUE_7 = "-random" + VALUE_8 = "-related" + VALUE_9 = "-size" + VALUE_10 = "-title" + ALBUM_RELEASE_DATE = "album__release_date" + ALBUM_TITLE = "album__title" + ARTIST_MODIFICATION_DATE = "artist__modification_date" + ARTIST_NAME = "artist__name" + CREATION_DATE = "creation_date" + DISC_NUMBER = "disc_number" + POSITION = "position" + RANDOM = "random" + RELATED = "related" + SIZE = "size" + TITLE = "title" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/get_track_mutations_ordering_item.py b/funkwhale_api_client/models/get_track_mutations_ordering_item.py new file mode 100644 index 0000000000000000000000000000000000000000..235e6d0abcf91dc585b34f1e510dc7058f9f0025 --- /dev/null +++ b/funkwhale_api_client/models/get_track_mutations_ordering_item.py @@ -0,0 +1,29 @@ +from enum import Enum + + +class GetTrackMutationsOrderingItem(str, Enum): + VALUE_0 = "-album__release_date" + VALUE_1 = "-album__title" + VALUE_2 = "-artist__modification_date" + VALUE_3 = "-artist__name" + VALUE_4 = "-creation_date" + VALUE_5 = "-disc_number" + VALUE_6 = "-position" + VALUE_7 = "-random" + VALUE_8 = "-related" + VALUE_9 = "-size" + VALUE_10 = "-title" + ALBUM_RELEASE_DATE = "album__release_date" + ALBUM_TITLE = "album__title" + ARTIST_MODIFICATION_DATE = "artist__modification_date" + ARTIST_NAME = "artist__name" + CREATION_DATE = "creation_date" + DISC_NUMBER = "disc_number" + POSITION = "position" + RANDOM = "random" + RELATED = "related" + SIZE = "size" + TITLE = "title" + + def __str__(self) -> str: + return str(self.value) diff --git a/funkwhale_api_client/models/tracks_list_ordering_item.py b/funkwhale_api_client/models/get_tracks_ordering_item.py similarity index 94% rename from funkwhale_api_client/models/tracks_list_ordering_item.py rename to funkwhale_api_client/models/get_tracks_ordering_item.py index 805bfc1cee4be695222171fcd15034e8a26336a0..dec4ec49ff1b3debbecd7b5655fe42a958d6f2b0 100644 --- a/funkwhale_api_client/models/tracks_list_ordering_item.py +++ b/funkwhale_api_client/models/get_tracks_ordering_item.py @@ -1,7 +1,7 @@ from enum import Enum -class TracksListOrderingItem(str, Enum): +class GetTracksOrderingItem(str, Enum): VALUE_0 = "-album__release_date" VALUE_1 = "-album__title" VALUE_2 = "-artist__modification_date" diff --git a/funkwhale_api_client/models/manage_upload_import_status_enum.py b/funkwhale_api_client/models/get_uploads_import_status_item.py similarity index 81% rename from funkwhale_api_client/models/manage_upload_import_status_enum.py rename to funkwhale_api_client/models/get_uploads_import_status_item.py index fbee8a70509e6f18c038144c94251dc4c70e2c47..f6d1b29698abb3752de2a8762d7694a6500e0ca4 100644 --- a/funkwhale_api_client/models/manage_upload_import_status_enum.py +++ b/funkwhale_api_client/models/get_uploads_import_status_item.py @@ -1,11 +1,11 @@ from enum import Enum -class ManageUploadImportStatusEnum(str, Enum): +class GetUploadsImportStatusItem(str, Enum): DRAFT = "draft" - PENDING = "pending" - FINISHED = "finished" ERRORED = "errored" + FINISHED = "finished" + PENDING = "pending" SKIPPED = "skipped" def __str__(self) -> str: diff --git a/funkwhale_api_client/models/manage_library_uploads_list_import_status.py b/funkwhale_api_client/models/import_status_enum.py similarity index 78% rename from funkwhale_api_client/models/manage_library_uploads_list_import_status.py rename to funkwhale_api_client/models/import_status_enum.py index f6063522c6af079798b1974f9652b5fb7bf06841..a017ed4e5616591cda745529252efe0ea159de6b 100644 --- a/funkwhale_api_client/models/manage_library_uploads_list_import_status.py +++ b/funkwhale_api_client/models/import_status_enum.py @@ -1,11 +1,11 @@ from enum import Enum -class ManageLibraryUploadsListImportStatus(str, Enum): +class ImportStatusEnum(str, Enum): DRAFT = "draft" - ERRORED = "errored" - FINISHED = "finished" PENDING = "pending" + FINISHED = "finished" + ERRORED = "errored" SKIPPED = "skipped" def __str__(self) -> str: diff --git a/funkwhale_api_client/models/inline_subscription.py b/funkwhale_api_client/models/inline_subscription.py new file mode 100644 index 0000000000000000000000000000000000000000..61a14c9e12ade9f127e49caa63de481e212d076f --- /dev/null +++ b/funkwhale_api_client/models/inline_subscription.py @@ -0,0 +1,64 @@ +from typing import Any, Dict, List, Type, TypeVar + +import attr + +T = TypeVar("T", bound="InlineSubscription") + + +@attr.s(auto_attribs=True) +class InlineSubscription: + """ + Attributes: + uuid (str): + channel (str): + """ + + uuid: str + channel: str + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + uuid = self.uuid + channel = self.channel + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "uuid": uuid, + "channel": channel, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + uuid = d.pop("uuid") + + channel = d.pop("channel") + + inline_subscription = cls( + uuid=uuid, + channel=channel, + ) + + inline_subscription.additional_properties = d + return inline_subscription + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/library.py b/funkwhale_api_client/models/library.py index ad90fa2b279e5119c6590000cc94e3148795cf81..97cd9a3601b7ca989b653b01c30f05e1bf0859b2 100644 --- a/funkwhale_api_client/models/library.py +++ b/funkwhale_api_client/models/library.py @@ -21,24 +21,24 @@ class Library: actor (APIActor): name (str): uploads_count (int): - follow (NestedLibraryFollow): - latest_scan (LibraryScan): uuid (Union[Unset, str]): description (Union[Unset, None, str]): creation_date (Union[Unset, datetime.datetime]): privacy_level (Union[Unset, LibraryPrivacyLevelEnum]): + follow (Union[Unset, None, NestedLibraryFollow]): + latest_scan (Union[Unset, None, LibraryScan]): """ fid: str actor: APIActor name: str uploads_count: int - follow: NestedLibraryFollow - latest_scan: LibraryScan uuid: Union[Unset, str] = UNSET description: Union[Unset, None, str] = UNSET creation_date: Union[Unset, datetime.datetime] = UNSET privacy_level: Union[Unset, LibraryPrivacyLevelEnum] = UNSET + follow: Union[Unset, None, NestedLibraryFollow] = UNSET + latest_scan: Union[Unset, None, LibraryScan] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -47,10 +47,6 @@ class Library: name = self.name uploads_count = self.uploads_count - follow = self.follow.to_dict() - - latest_scan = self.latest_scan.to_dict() - uuid = self.uuid description = self.description creation_date: Union[Unset, str] = UNSET @@ -61,6 +57,14 @@ class Library: if not isinstance(self.privacy_level, Unset): privacy_level = self.privacy_level.value + follow: Union[Unset, None, Dict[str, Any]] = UNSET + if not isinstance(self.follow, Unset): + follow = self.follow.to_dict() if self.follow else None + + latest_scan: Union[Unset, None, Dict[str, Any]] = UNSET + if not isinstance(self.latest_scan, Unset): + latest_scan = self.latest_scan.to_dict() if self.latest_scan else None + field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -69,8 +73,6 @@ class Library: "actor": actor, "name": name, "uploads_count": uploads_count, - "follow": follow, - "latest_scan": latest_scan, } ) if uuid is not UNSET: @@ -81,6 +83,10 @@ class Library: field_dict["creation_date"] = creation_date if privacy_level is not UNSET: field_dict["privacy_level"] = privacy_level + if follow is not UNSET: + field_dict["follow"] = follow + if latest_scan is not UNSET: + field_dict["latest_scan"] = latest_scan return field_dict @@ -95,10 +101,6 @@ class Library: uploads_count = d.pop("uploads_count") - follow = NestedLibraryFollow.from_dict(d.pop("follow")) - - latest_scan = LibraryScan.from_dict(d.pop("latest_scan")) - uuid = d.pop("uuid", UNSET) description = d.pop("description", UNSET) @@ -117,17 +119,35 @@ class Library: else: privacy_level = LibraryPrivacyLevelEnum(_privacy_level) + _follow = d.pop("follow", UNSET) + follow: Union[Unset, None, NestedLibraryFollow] + if _follow is None: + follow = None + elif isinstance(_follow, Unset): + follow = UNSET + else: + follow = NestedLibraryFollow.from_dict(_follow) + + _latest_scan = d.pop("latest_scan", UNSET) + latest_scan: Union[Unset, None, LibraryScan] + if _latest_scan is None: + latest_scan = None + elif isinstance(_latest_scan, Unset): + latest_scan = UNSET + else: + latest_scan = LibraryScan.from_dict(_latest_scan) + library = cls( fid=fid, actor=actor, name=name, uploads_count=uploads_count, - follow=follow, - latest_scan=latest_scan, uuid=uuid, description=description, creation_date=creation_date, privacy_level=privacy_level, + follow=follow, + latest_scan=latest_scan, ) library.additional_properties = d diff --git a/funkwhale_api_client/models/library_request.py b/funkwhale_api_client/models/library_request.py index 305ff6239eec02607205b928d82cf4ae2e8f04f1..f5d53c835ca9205bc89a8cbb408a4b7becf356aa 100644 --- a/funkwhale_api_client/models/library_request.py +++ b/funkwhale_api_client/models/library_request.py @@ -7,6 +7,8 @@ from dateutil.parser import isoparse from ..models.api_actor_request import APIActorRequest from ..models.library_privacy_level_enum import LibraryPrivacyLevelEnum +from ..models.library_scan_request import LibraryScanRequest +from ..models.nested_library_follow_request import NestedLibraryFollowRequest from ..types import UNSET, Unset T = TypeVar("T", bound="LibraryRequest") @@ -23,6 +25,8 @@ class LibraryRequest: description (Union[Unset, None, str]): creation_date (Union[Unset, datetime.datetime]): privacy_level (Union[Unset, LibraryPrivacyLevelEnum]): + follow (Union[Unset, None, NestedLibraryFollowRequest]): + latest_scan (Union[Unset, None, LibraryScanRequest]): """ fid: str @@ -32,6 +36,8 @@ class LibraryRequest: description: Union[Unset, None, str] = UNSET creation_date: Union[Unset, datetime.datetime] = UNSET privacy_level: Union[Unset, LibraryPrivacyLevelEnum] = UNSET + follow: Union[Unset, None, NestedLibraryFollowRequest] = UNSET + latest_scan: Union[Unset, None, LibraryScanRequest] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -49,6 +55,14 @@ class LibraryRequest: if not isinstance(self.privacy_level, Unset): privacy_level = self.privacy_level.value + follow: Union[Unset, None, Dict[str, Any]] = UNSET + if not isinstance(self.follow, Unset): + follow = self.follow.to_dict() if self.follow else None + + latest_scan: Union[Unset, None, Dict[str, Any]] = UNSET + if not isinstance(self.latest_scan, Unset): + latest_scan = self.latest_scan.to_dict() if self.latest_scan else None + field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -66,6 +80,10 @@ class LibraryRequest: field_dict["creation_date"] = creation_date if privacy_level is not UNSET: field_dict["privacy_level"] = privacy_level + if follow is not UNSET: + field_dict["follow"] = follow + if latest_scan is not UNSET: + field_dict["latest_scan"] = latest_scan return field_dict @@ -88,6 +106,18 @@ class LibraryRequest: if not isinstance(self.privacy_level, Unset): privacy_level = (None, str(self.privacy_level.value).encode(), "text/plain") + follow: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.follow, Unset): + follow = (None, json.dumps(self.follow.to_dict()).encode(), "application/json") if self.follow else None + + latest_scan: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.latest_scan, Unset): + latest_scan = ( + (None, json.dumps(self.latest_scan.to_dict()).encode(), "application/json") + if self.latest_scan + else None + ) + field_dict: Dict[str, Any] = {} field_dict.update( {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()} @@ -107,6 +137,10 @@ class LibraryRequest: field_dict["creation_date"] = creation_date if privacy_level is not UNSET: field_dict["privacy_level"] = privacy_level + if follow is not UNSET: + field_dict["follow"] = follow + if latest_scan is not UNSET: + field_dict["latest_scan"] = latest_scan return field_dict @@ -137,6 +171,24 @@ class LibraryRequest: else: privacy_level = LibraryPrivacyLevelEnum(_privacy_level) + _follow = d.pop("follow", UNSET) + follow: Union[Unset, None, NestedLibraryFollowRequest] + if _follow is None: + follow = None + elif isinstance(_follow, Unset): + follow = UNSET + else: + follow = NestedLibraryFollowRequest.from_dict(_follow) + + _latest_scan = d.pop("latest_scan", UNSET) + latest_scan: Union[Unset, None, LibraryScanRequest] + if _latest_scan is None: + latest_scan = None + elif isinstance(_latest_scan, Unset): + latest_scan = UNSET + else: + latest_scan = LibraryScanRequest.from_dict(_latest_scan) + library_request = cls( fid=fid, actor=actor, @@ -145,6 +197,8 @@ class LibraryRequest: description=description, creation_date=creation_date, privacy_level=privacy_level, + follow=follow, + latest_scan=latest_scan, ) library_request.additional_properties = d diff --git a/funkwhale_api_client/models/library_scan_request.py b/funkwhale_api_client/models/library_scan_request.py new file mode 100644 index 0000000000000000000000000000000000000000..f4973a1ac574eae4d5090b6725d6baf8b6c9dc41 --- /dev/null +++ b/funkwhale_api_client/models/library_scan_request.py @@ -0,0 +1,116 @@ +import datetime +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr +from dateutil.parser import isoparse + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="LibraryScanRequest") + + +@attr.s(auto_attribs=True) +class LibraryScanRequest: + """ + Attributes: + total_files (Union[Unset, int]): + processed_files (Union[Unset, int]): + errored_files (Union[Unset, int]): + status (Union[Unset, str]): + creation_date (Union[Unset, datetime.datetime]): + modification_date (Union[Unset, None, datetime.datetime]): + """ + + total_files: Union[Unset, int] = UNSET + processed_files: Union[Unset, int] = UNSET + errored_files: Union[Unset, int] = UNSET + status: Union[Unset, str] = UNSET + creation_date: Union[Unset, datetime.datetime] = UNSET + modification_date: Union[Unset, None, datetime.datetime] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + total_files = self.total_files + processed_files = self.processed_files + errored_files = self.errored_files + status = self.status + creation_date: Union[Unset, str] = UNSET + if not isinstance(self.creation_date, Unset): + creation_date = self.creation_date.isoformat() + + modification_date: Union[Unset, None, str] = UNSET + if not isinstance(self.modification_date, Unset): + modification_date = self.modification_date.isoformat() if self.modification_date else None + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if total_files is not UNSET: + field_dict["total_files"] = total_files + if processed_files is not UNSET: + field_dict["processed_files"] = processed_files + if errored_files is not UNSET: + field_dict["errored_files"] = errored_files + if status is not UNSET: + field_dict["status"] = status + if creation_date is not UNSET: + field_dict["creation_date"] = creation_date + if modification_date is not UNSET: + field_dict["modification_date"] = modification_date + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + total_files = d.pop("total_files", UNSET) + + processed_files = d.pop("processed_files", UNSET) + + errored_files = d.pop("errored_files", UNSET) + + status = d.pop("status", UNSET) + + _creation_date = d.pop("creation_date", UNSET) + creation_date: Union[Unset, datetime.datetime] + if isinstance(_creation_date, Unset): + creation_date = UNSET + else: + creation_date = isoparse(_creation_date) + + _modification_date = d.pop("modification_date", UNSET) + modification_date: Union[Unset, None, datetime.datetime] + if _modification_date is None: + modification_date = None + elif isinstance(_modification_date, Unset): + modification_date = UNSET + else: + modification_date = isoparse(_modification_date) + + library_scan_request = cls( + total_files=total_files, + processed_files=processed_files, + errored_files=errored_files, + status=status, + creation_date=creation_date, + modification_date=modification_date, + ) + + library_scan_request.additional_properties = d + return library_scan_request + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/manage_actor.py b/funkwhale_api_client/models/manage_actor.py index 81e655436fe08fb24e56c822c7ab78f07cd86d15..a08f8aaaf0164942905fe878771601d85458c88b 100644 --- a/funkwhale_api_client/models/manage_actor.py +++ b/funkwhale_api_client/models/manage_actor.py @@ -22,7 +22,6 @@ class ManageActor: creation_date (datetime.datetime): is_local (bool): uploads_count (int): - user (ManageUser): instance_policy (int): url (Union[Unset, None, str]): preferred_username (Optional[str]): @@ -34,6 +33,7 @@ class ManageActor: outbox_url (Union[Unset, None, str]): shared_inbox_url (Union[Unset, None, str]): manually_approves_followers (Union[Unset, None, bool]): + user (Optional[ManageUser]): """ id: int @@ -43,9 +43,9 @@ class ManageActor: creation_date: datetime.datetime is_local: bool uploads_count: int - user: ManageUser instance_policy: int preferred_username: Optional[str] + user: Optional[ManageUser] url: Union[Unset, None, str] = UNSET name: Union[Unset, None, str] = UNSET summary: Union[Unset, None, str] = UNSET @@ -66,8 +66,6 @@ class ManageActor: is_local = self.is_local uploads_count = self.uploads_count - user = self.user.to_dict() - instance_policy = self.instance_policy url = self.url preferred_username = self.preferred_username @@ -85,6 +83,7 @@ class ManageActor: outbox_url = self.outbox_url shared_inbox_url = self.shared_inbox_url manually_approves_followers = self.manually_approves_followers + user = self.user.to_dict() if self.user else None field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -97,9 +96,9 @@ class ManageActor: "creation_date": creation_date, "is_local": is_local, "uploads_count": uploads_count, - "user": user, "instance_policy": instance_policy, "preferred_username": preferred_username, + "user": user, } ) if url is not UNSET: @@ -140,8 +139,6 @@ class ManageActor: uploads_count = d.pop("uploads_count") - user = ManageUser.from_dict(d.pop("user")) - instance_policy = d.pop("instance_policy") url = d.pop("url", UNSET) @@ -174,6 +171,13 @@ class ManageActor: manually_approves_followers = d.pop("manually_approves_followers", UNSET) + _user = d.pop("user") + user: Optional[ManageUser] + if _user is None: + user = None + else: + user = ManageUser.from_dict(_user) + manage_actor = cls( id=id, fid=fid, @@ -182,7 +186,6 @@ class ManageActor: creation_date=creation_date, is_local=is_local, uploads_count=uploads_count, - user=user, instance_policy=instance_policy, url=url, preferred_username=preferred_username, @@ -194,6 +197,7 @@ class ManageActor: outbox_url=outbox_url, shared_inbox_url=shared_inbox_url, manually_approves_followers=manually_approves_followers, + user=user, ) manage_actor.additional_properties = d diff --git a/funkwhale_api_client/models/manage_actor_request.py b/funkwhale_api_client/models/manage_actor_request.py index 5118b567f7dc45bc11c3fca15878b759b9cc73cf..20a27bd617e0c970719a5e8af68c048c35b28870 100644 --- a/funkwhale_api_client/models/manage_actor_request.py +++ b/funkwhale_api_client/models/manage_actor_request.py @@ -18,7 +18,6 @@ class ManageActorRequest: Attributes: fid (str): domain (str): - user (ManageUserRequest): url (Union[Unset, None, str]): preferred_username (Optional[str]): name (Union[Unset, None, str]): @@ -29,12 +28,13 @@ class ManageActorRequest: outbox_url (Union[Unset, None, str]): shared_inbox_url (Union[Unset, None, str]): manually_approves_followers (Union[Unset, None, bool]): + user (Optional[ManageUserRequest]): """ fid: str domain: str - user: ManageUserRequest preferred_username: Optional[str] + user: Optional[ManageUserRequest] url: Union[Unset, None, str] = UNSET name: Union[Unset, None, str] = UNSET summary: Union[Unset, None, str] = UNSET @@ -49,8 +49,6 @@ class ManageActorRequest: def to_dict(self) -> Dict[str, Any]: fid = self.fid domain = self.domain - user = self.user.to_dict() - url = self.url preferred_username = self.preferred_username name = self.name @@ -67,6 +65,7 @@ class ManageActorRequest: outbox_url = self.outbox_url shared_inbox_url = self.shared_inbox_url manually_approves_followers = self.manually_approves_followers + user = self.user.to_dict() if self.user else None field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -74,8 +73,8 @@ class ManageActorRequest: { "fid": fid, "domain": domain, - "user": user, "preferred_username": preferred_username, + "user": user, } ) if url is not UNSET: @@ -102,8 +101,6 @@ class ManageActorRequest: def to_multipart(self) -> Dict[str, Any]: fid = self.fid if isinstance(self.fid, Unset) else (None, str(self.fid).encode(), "text/plain") domain = self.domain if isinstance(self.domain, Unset) else (None, str(self.domain).encode(), "text/plain") - user = (None, json.dumps(self.user.to_dict()).encode(), "application/json") - url = self.url if isinstance(self.url, Unset) else (None, str(self.url).encode(), "text/plain") preferred_username = ( self.preferred_username @@ -138,6 +135,7 @@ class ManageActorRequest: if isinstance(self.manually_approves_followers, Unset) else (None, str(self.manually_approves_followers).encode(), "text/plain") ) + user = (None, json.dumps(self.user.to_dict()).encode(), "application/json") if self.user else None field_dict: Dict[str, Any] = {} field_dict.update( @@ -147,8 +145,8 @@ class ManageActorRequest: { "fid": fid, "domain": domain, - "user": user, "preferred_username": preferred_username, + "user": user, } ) if url is not UNSET: @@ -179,8 +177,6 @@ class ManageActorRequest: domain = d.pop("domain") - user = ManageUserRequest.from_dict(d.pop("user")) - url = d.pop("url", UNSET) preferred_username = d.pop("preferred_username") @@ -211,10 +207,16 @@ class ManageActorRequest: manually_approves_followers = d.pop("manually_approves_followers", UNSET) + _user = d.pop("user") + user: Optional[ManageUserRequest] + if _user is None: + user = None + else: + user = ManageUserRequest.from_dict(_user) + manage_actor_request = cls( fid=fid, domain=domain, - user=user, url=url, preferred_username=preferred_username, name=name, @@ -225,6 +227,7 @@ class ManageActorRequest: outbox_url=outbox_url, shared_inbox_url=shared_inbox_url, manually_approves_followers=manually_approves_followers, + user=user, ) manage_actor_request.additional_properties = d diff --git a/funkwhale_api_client/models/manage_artist.py b/funkwhale_api_client/models/manage_artist.py index 784075cd516cd688ac34732e3a92347c65a39757..e3de5a576bfa767eec09914ff407ebff4f70652b 100644 --- a/funkwhale_api_client/models/manage_artist.py +++ b/funkwhale_api_client/models/manage_artist.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Dict, List, Type, TypeVar, Union, cast +from typing import Any, Dict, List, Optional, Type, TypeVar, Union, cast import attr from dateutil.parser import isoparse @@ -24,11 +24,11 @@ class ManageArtist: albums_count (int): attributed_to (ManageBaseActor): tags (List[str]): - cover (CoverField): channel (str): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): creation_date (Union[Unset, datetime.datetime]): + cover (Optional[CoverField]): content_category (Union[Unset, ContentCategoryEnum]): """ @@ -40,8 +40,8 @@ class ManageArtist: albums_count: int attributed_to: ManageBaseActor tags: List[str] - cover: CoverField channel: str + cover: Optional[CoverField] fid: Union[Unset, None, str] = UNSET mbid: Union[Unset, None, str] = UNSET creation_date: Union[Unset, datetime.datetime] = UNSET @@ -59,8 +59,6 @@ class ManageArtist: tags = self.tags - cover = self.cover.to_dict() - channel = self.channel fid = self.fid mbid = self.mbid @@ -68,6 +66,8 @@ class ManageArtist: if not isinstance(self.creation_date, Unset): creation_date = self.creation_date.isoformat() + cover = self.cover.to_dict() if self.cover else None + content_category: Union[Unset, str] = UNSET if not isinstance(self.content_category, Unset): content_category = self.content_category.value @@ -84,8 +84,8 @@ class ManageArtist: "albums_count": albums_count, "attributed_to": attributed_to, "tags": tags, - "cover": cover, "channel": channel, + "cover": cover, } ) if fid is not UNSET: @@ -118,8 +118,6 @@ class ManageArtist: tags = cast(List[str], d.pop("tags")) - cover = CoverField.from_dict(d.pop("cover")) - channel = d.pop("channel") fid = d.pop("fid", UNSET) @@ -133,6 +131,13 @@ class ManageArtist: else: creation_date = isoparse(_creation_date) + _cover = d.pop("cover") + cover: Optional[CoverField] + if _cover is None: + cover = None + else: + cover = CoverField.from_dict(_cover) + _content_category = d.pop("content_category", UNSET) content_category: Union[Unset, ContentCategoryEnum] if isinstance(_content_category, Unset): @@ -149,11 +154,11 @@ class ManageArtist: albums_count=albums_count, attributed_to=attributed_to, tags=tags, - cover=cover, channel=channel, fid=fid, mbid=mbid, creation_date=creation_date, + cover=cover, content_category=content_category, ) diff --git a/funkwhale_api_client/models/manage_artist_request.py b/funkwhale_api_client/models/manage_artist_request.py index 82c4bbf8c4cb856af9a4ab5da27ffaa6edd6ab22..a620a5b4587f98a6776ddd98c188b3f4b24726b5 100644 --- a/funkwhale_api_client/models/manage_artist_request.py +++ b/funkwhale_api_client/models/manage_artist_request.py @@ -1,6 +1,6 @@ import datetime import json -from typing import Any, Dict, List, Tuple, Type, TypeVar, Union +from typing import Any, Dict, List, Optional, Tuple, Type, TypeVar, Union import attr from dateutil.parser import isoparse @@ -20,17 +20,17 @@ class ManageArtistRequest: name (str): domain (str): attributed_to (ManageBaseActorRequest): - cover (CoverFieldRequest): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): creation_date (Union[Unset, datetime.datetime]): + cover (Optional[CoverFieldRequest]): content_category (Union[Unset, ContentCategoryEnum]): """ name: str domain: str attributed_to: ManageBaseActorRequest - cover: CoverFieldRequest + cover: Optional[CoverFieldRequest] fid: Union[Unset, None, str] = UNSET mbid: Union[Unset, None, str] = UNSET creation_date: Union[Unset, datetime.datetime] = UNSET @@ -42,14 +42,14 @@ class ManageArtistRequest: domain = self.domain attributed_to = self.attributed_to.to_dict() - cover = self.cover.to_dict() - fid = self.fid mbid = self.mbid creation_date: Union[Unset, str] = UNSET if not isinstance(self.creation_date, Unset): creation_date = self.creation_date.isoformat() + cover = self.cover.to_dict() if self.cover else None + content_category: Union[Unset, str] = UNSET if not isinstance(self.content_category, Unset): content_category = self.content_category.value @@ -80,14 +80,14 @@ class ManageArtistRequest: domain = self.domain if isinstance(self.domain, Unset) else (None, str(self.domain).encode(), "text/plain") attributed_to = (None, json.dumps(self.attributed_to.to_dict()).encode(), "application/json") - cover = (None, json.dumps(self.cover.to_dict()).encode(), "application/json") - fid = self.fid if isinstance(self.fid, Unset) else (None, str(self.fid).encode(), "text/plain") mbid = self.mbid if isinstance(self.mbid, Unset) else (None, str(self.mbid).encode(), "text/plain") creation_date: Union[Unset, bytes] = UNSET if not isinstance(self.creation_date, Unset): creation_date = self.creation_date.isoformat().encode() + cover = (None, json.dumps(self.cover.to_dict()).encode(), "application/json") if self.cover else None + content_category: Union[Unset, Tuple[None, bytes, str]] = UNSET if not isinstance(self.content_category, Unset): content_category = (None, str(self.content_category.value).encode(), "text/plain") @@ -124,8 +124,6 @@ class ManageArtistRequest: attributed_to = ManageBaseActorRequest.from_dict(d.pop("attributed_to")) - cover = CoverFieldRequest.from_dict(d.pop("cover")) - fid = d.pop("fid", UNSET) mbid = d.pop("mbid", UNSET) @@ -137,6 +135,13 @@ class ManageArtistRequest: else: creation_date = isoparse(_creation_date) + _cover = d.pop("cover") + cover: Optional[CoverFieldRequest] + if _cover is None: + cover = None + else: + cover = CoverFieldRequest.from_dict(_cover) + _content_category = d.pop("content_category", UNSET) content_category: Union[Unset, ContentCategoryEnum] if isinstance(_content_category, Unset): @@ -148,10 +153,10 @@ class ManageArtistRequest: name=name, domain=domain, attributed_to=attributed_to, - cover=cover, fid=fid, mbid=mbid, creation_date=creation_date, + cover=cover, content_category=content_category, ) diff --git a/funkwhale_api_client/models/api_mutation_request_payload.py b/funkwhale_api_client/models/manage_base_note_request.py similarity index 65% rename from funkwhale_api_client/models/api_mutation_request_payload.py rename to funkwhale_api_client/models/manage_base_note_request.py index 27dd2eb57deb7b4be482ec741e3be08a18d5dfce..c362dc2c6c757ebb4b1aea6d1e4e1345df10727b 100644 --- a/funkwhale_api_client/models/api_mutation_request_payload.py +++ b/funkwhale_api_client/models/manage_base_note_request.py @@ -2,30 +2,43 @@ from typing import Any, Dict, List, Type, TypeVar import attr -T = TypeVar("T", bound="APIMutationRequestPayload") +T = TypeVar("T", bound="ManageBaseNoteRequest") @attr.s(auto_attribs=True) -class APIMutationRequestPayload: - """ """ +class ManageBaseNoteRequest: + """ + Attributes: + summary (str): + """ + summary: str additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: + summary = self.summary field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) - field_dict.update({}) + field_dict.update( + { + "summary": summary, + } + ) return field_dict @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: d = src_dict.copy() - api_mutation_request_payload = cls() + summary = d.pop("summary") - api_mutation_request_payload.additional_properties = d - return api_mutation_request_payload + manage_base_note_request = cls( + summary=summary, + ) + + manage_base_note_request.additional_properties = d + return manage_base_note_request @property def additional_keys(self) -> List[str]: diff --git a/funkwhale_api_client/models/manage_report.py b/funkwhale_api_client/models/manage_report.py index 495b0bebb804f0dbe62a77ad7bc9a8e8de617ab9..c220480aebd924cb3f7325ab4b2f19852f72276c 100644 --- a/funkwhale_api_client/models/manage_report.py +++ b/funkwhale_api_client/models/manage_report.py @@ -24,15 +24,15 @@ class ManageReport: creation_date (datetime.datetime): type (ReportTypeEnum): target (ManageReportTarget): - assigned_to (ManageBaseActor): - target_owner (ManageBaseActor): - submitter (ManageBaseActor): - notes (ManageBaseNote): handled_date (Optional[datetime.datetime]): summary (Optional[str]): target_state (Optional[ManageReportTargetState]): is_handled (Union[Unset, bool]): + assigned_to (Union[Unset, None, ManageBaseActor]): + target_owner (Union[Unset, ManageBaseActor]): + submitter (Union[Unset, ManageBaseActor]): submitter_email (Optional[str]): + notes (Union[Unset, None, List[ManageBaseNote]]): """ id: int @@ -41,15 +41,15 @@ class ManageReport: creation_date: datetime.datetime type: ReportTypeEnum target: ManageReportTarget - assigned_to: ManageBaseActor - target_owner: ManageBaseActor - submitter: ManageBaseActor - notes: ManageBaseNote handled_date: Optional[datetime.datetime] summary: Optional[str] target_state: Optional[ManageReportTargetState] submitter_email: Optional[str] is_handled: Union[Unset, bool] = UNSET + assigned_to: Union[Unset, None, ManageBaseActor] = UNSET + target_owner: Union[Unset, ManageBaseActor] = UNSET + submitter: Union[Unset, ManageBaseActor] = UNSET + notes: Union[Unset, None, List[ManageBaseNote]] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -62,21 +62,35 @@ class ManageReport: target = self.target.to_dict() - assigned_to = self.assigned_to.to_dict() - - target_owner = self.target_owner.to_dict() - - submitter = self.submitter.to_dict() - - notes = self.notes.to_dict() - handled_date = self.handled_date.isoformat() if self.handled_date else None summary = self.summary target_state = self.target_state.to_dict() if self.target_state else None is_handled = self.is_handled + assigned_to: Union[Unset, None, Dict[str, Any]] = UNSET + if not isinstance(self.assigned_to, Unset): + assigned_to = self.assigned_to.to_dict() if self.assigned_to else None + + target_owner: Union[Unset, Dict[str, Any]] = UNSET + if not isinstance(self.target_owner, Unset): + target_owner = self.target_owner.to_dict() + + submitter: Union[Unset, Dict[str, Any]] = UNSET + if not isinstance(self.submitter, Unset): + submitter = self.submitter.to_dict() + submitter_email = self.submitter_email + notes: Union[Unset, None, List[Dict[str, Any]]] = UNSET + if not isinstance(self.notes, Unset): + if self.notes is None: + notes = None + else: + notes = [] + for notes_item_data in self.notes: + notes_item = notes_item_data.to_dict() + + notes.append(notes_item) field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -88,10 +102,6 @@ class ManageReport: "creation_date": creation_date, "type": type, "target": target, - "assigned_to": assigned_to, - "target_owner": target_owner, - "submitter": submitter, - "notes": notes, "handled_date": handled_date, "summary": summary, "target_state": target_state, @@ -100,6 +110,14 @@ class ManageReport: ) if is_handled is not UNSET: field_dict["is_handled"] = is_handled + if assigned_to is not UNSET: + field_dict["assigned_to"] = assigned_to + if target_owner is not UNSET: + field_dict["target_owner"] = target_owner + if submitter is not UNSET: + field_dict["submitter"] = submitter + if notes is not UNSET: + field_dict["notes"] = notes return field_dict @@ -118,14 +136,6 @@ class ManageReport: target = ManageReportTarget.from_dict(d.pop("target")) - assigned_to = ManageBaseActor.from_dict(d.pop("assigned_to")) - - target_owner = ManageBaseActor.from_dict(d.pop("target_owner")) - - submitter = ManageBaseActor.from_dict(d.pop("submitter")) - - notes = ManageBaseNote.from_dict(d.pop("notes")) - _handled_date = d.pop("handled_date") handled_date: Optional[datetime.datetime] if _handled_date is None: @@ -144,8 +154,38 @@ class ManageReport: is_handled = d.pop("is_handled", UNSET) + _assigned_to = d.pop("assigned_to", UNSET) + assigned_to: Union[Unset, None, ManageBaseActor] + if _assigned_to is None: + assigned_to = None + elif isinstance(_assigned_to, Unset): + assigned_to = UNSET + else: + assigned_to = ManageBaseActor.from_dict(_assigned_to) + + _target_owner = d.pop("target_owner", UNSET) + target_owner: Union[Unset, ManageBaseActor] + if isinstance(_target_owner, Unset): + target_owner = UNSET + else: + target_owner = ManageBaseActor.from_dict(_target_owner) + + _submitter = d.pop("submitter", UNSET) + submitter: Union[Unset, ManageBaseActor] + if isinstance(_submitter, Unset): + submitter = UNSET + else: + submitter = ManageBaseActor.from_dict(_submitter) + submitter_email = d.pop("submitter_email") + notes = [] + _notes = d.pop("notes", UNSET) + for notes_item_data in _notes or []: + notes_item = ManageBaseNote.from_dict(notes_item_data) + + notes.append(notes_item) + manage_report = cls( id=id, uuid=uuid, @@ -153,15 +193,15 @@ class ManageReport: creation_date=creation_date, type=type, target=target, - assigned_to=assigned_to, - target_owner=target_owner, - submitter=submitter, - notes=notes, handled_date=handled_date, summary=summary, target_state=target_state, is_handled=is_handled, + assigned_to=assigned_to, + target_owner=target_owner, + submitter=submitter, submitter_email=submitter_email, + notes=notes, ) manage_report.additional_properties = d diff --git a/funkwhale_api_client/models/manage_report_request.py b/funkwhale_api_client/models/manage_report_request.py index 90b54ea1a30c0da5f645f6a9f7a0c8ce587e5395..ae0870d0f91455c1e553b638fd715e88de5ebcea 100644 --- a/funkwhale_api_client/models/manage_report_request.py +++ b/funkwhale_api_client/models/manage_report_request.py @@ -1,9 +1,10 @@ import json -from typing import Any, Dict, List, Type, TypeVar, Union +from typing import Any, Dict, List, Tuple, Type, TypeVar, Union import attr from ..models.manage_base_actor_request import ManageBaseActorRequest +from ..models.manage_base_note_request import ManageBaseNoteRequest from ..models.manage_report_request_target import ManageReportRequestTarget from ..models.report_type_enum import ReportTypeEnum from ..types import UNSET, Unset @@ -17,18 +18,20 @@ class ManageReportRequest: Attributes: type (ReportTypeEnum): target (ManageReportRequestTarget): - assigned_to (ManageBaseActorRequest): - target_owner (ManageBaseActorRequest): - submitter (ManageBaseActorRequest): is_handled (Union[Unset, bool]): + assigned_to (Union[Unset, None, ManageBaseActorRequest]): + target_owner (Union[Unset, ManageBaseActorRequest]): + submitter (Union[Unset, ManageBaseActorRequest]): + notes (Union[Unset, None, List[ManageBaseNoteRequest]]): """ type: ReportTypeEnum target: ManageReportRequestTarget - assigned_to: ManageBaseActorRequest - target_owner: ManageBaseActorRequest - submitter: ManageBaseActorRequest is_handled: Union[Unset, bool] = UNSET + assigned_to: Union[Unset, None, ManageBaseActorRequest] = UNSET + target_owner: Union[Unset, ManageBaseActorRequest] = UNSET + submitter: Union[Unset, ManageBaseActorRequest] = UNSET + notes: Union[Unset, None, List[ManageBaseNoteRequest]] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -36,13 +39,29 @@ class ManageReportRequest: target = self.target.to_dict() - assigned_to = self.assigned_to.to_dict() + is_handled = self.is_handled + assigned_to: Union[Unset, None, Dict[str, Any]] = UNSET + if not isinstance(self.assigned_to, Unset): + assigned_to = self.assigned_to.to_dict() if self.assigned_to else None - target_owner = self.target_owner.to_dict() + target_owner: Union[Unset, Dict[str, Any]] = UNSET + if not isinstance(self.target_owner, Unset): + target_owner = self.target_owner.to_dict() - submitter = self.submitter.to_dict() + submitter: Union[Unset, Dict[str, Any]] = UNSET + if not isinstance(self.submitter, Unset): + submitter = self.submitter.to_dict() - is_handled = self.is_handled + notes: Union[Unset, None, List[Dict[str, Any]]] = UNSET + if not isinstance(self.notes, Unset): + if self.notes is None: + notes = None + else: + notes = [] + for notes_item_data in self.notes: + notes_item = notes_item_data.to_dict() + + notes.append(notes_item) field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -50,13 +69,18 @@ class ManageReportRequest: { "type": type, "target": target, - "assigned_to": assigned_to, - "target_owner": target_owner, - "submitter": submitter, } ) if is_handled is not UNSET: field_dict["is_handled"] = is_handled + if assigned_to is not UNSET: + field_dict["assigned_to"] = assigned_to + if target_owner is not UNSET: + field_dict["target_owner"] = target_owner + if submitter is not UNSET: + field_dict["submitter"] = submitter + if notes is not UNSET: + field_dict["notes"] = notes return field_dict @@ -65,17 +89,38 @@ class ManageReportRequest: target = (None, json.dumps(self.target.to_dict()).encode(), "application/json") - assigned_to = (None, json.dumps(self.assigned_to.to_dict()).encode(), "application/json") - - target_owner = (None, json.dumps(self.target_owner.to_dict()).encode(), "application/json") - - submitter = (None, json.dumps(self.submitter.to_dict()).encode(), "application/json") - is_handled = ( self.is_handled if isinstance(self.is_handled, Unset) else (None, str(self.is_handled).encode(), "text/plain") ) + assigned_to: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.assigned_to, Unset): + assigned_to = ( + (None, json.dumps(self.assigned_to.to_dict()).encode(), "application/json") + if self.assigned_to + else None + ) + + target_owner: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.target_owner, Unset): + target_owner = (None, json.dumps(self.target_owner.to_dict()).encode(), "application/json") + + submitter: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.submitter, Unset): + submitter = (None, json.dumps(self.submitter.to_dict()).encode(), "application/json") + + notes: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.notes, Unset): + if self.notes is None: + notes = None + else: + _temp_notes = [] + for notes_item_data in self.notes: + notes_item = notes_item_data.to_dict() + + _temp_notes.append(notes_item) + notes = (None, json.dumps(_temp_notes).encode(), "application/json") field_dict: Dict[str, Any] = {} field_dict.update( @@ -85,13 +130,18 @@ class ManageReportRequest: { "type": type, "target": target, - "assigned_to": assigned_to, - "target_owner": target_owner, - "submitter": submitter, } ) if is_handled is not UNSET: field_dict["is_handled"] = is_handled + if assigned_to is not UNSET: + field_dict["assigned_to"] = assigned_to + if target_owner is not UNSET: + field_dict["target_owner"] = target_owner + if submitter is not UNSET: + field_dict["submitter"] = submitter + if notes is not UNSET: + field_dict["notes"] = notes return field_dict @@ -102,21 +152,46 @@ class ManageReportRequest: target = ManageReportRequestTarget.from_dict(d.pop("target")) - assigned_to = ManageBaseActorRequest.from_dict(d.pop("assigned_to")) - - target_owner = ManageBaseActorRequest.from_dict(d.pop("target_owner")) - - submitter = ManageBaseActorRequest.from_dict(d.pop("submitter")) - is_handled = d.pop("is_handled", UNSET) + _assigned_to = d.pop("assigned_to", UNSET) + assigned_to: Union[Unset, None, ManageBaseActorRequest] + if _assigned_to is None: + assigned_to = None + elif isinstance(_assigned_to, Unset): + assigned_to = UNSET + else: + assigned_to = ManageBaseActorRequest.from_dict(_assigned_to) + + _target_owner = d.pop("target_owner", UNSET) + target_owner: Union[Unset, ManageBaseActorRequest] + if isinstance(_target_owner, Unset): + target_owner = UNSET + else: + target_owner = ManageBaseActorRequest.from_dict(_target_owner) + + _submitter = d.pop("submitter", UNSET) + submitter: Union[Unset, ManageBaseActorRequest] + if isinstance(_submitter, Unset): + submitter = UNSET + else: + submitter = ManageBaseActorRequest.from_dict(_submitter) + + notes = [] + _notes = d.pop("notes", UNSET) + for notes_item_data in _notes or []: + notes_item = ManageBaseNoteRequest.from_dict(notes_item_data) + + notes.append(notes_item) + manage_report_request = cls( type=type, target=target, + is_handled=is_handled, assigned_to=assigned_to, target_owner=target_owner, submitter=submitter, - is_handled=is_handled, + notes=notes, ) manage_report_request.additional_properties = d diff --git a/funkwhale_api_client/models/manage_track.py b/funkwhale_api_client/models/manage_track.py index 069baeced9952d8e40001f83b26b4e1bdee888dd..08d94c374e71e7a234176dc9a686eee2036e6751 100644 --- a/funkwhale_api_client/models/manage_track.py +++ b/funkwhale_api_client/models/manage_track.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Dict, List, Type, TypeVar, Union, cast +from typing import Any, Dict, List, Optional, Type, TypeVar, Union, cast import attr from dateutil.parser import isoparse @@ -22,8 +22,6 @@ class ManageTrack: domain (str): is_local (bool): artist (ManageNestedArtist): - album (ManageTrackAlbum): - attributed_to (ManageBaseActor): uploads_count (int): tags (List[str]): cover (CoverField): @@ -34,6 +32,8 @@ class ManageTrack: disc_number (Union[Unset, None, int]): copyright_ (Union[Unset, None, str]): license_ (Union[Unset, None, str]): + album (Optional[ManageTrackAlbum]): + attributed_to (Optional[ManageBaseActor]): """ id: int @@ -41,11 +41,11 @@ class ManageTrack: domain: str is_local: bool artist: ManageNestedArtist - album: ManageTrackAlbum - attributed_to: ManageBaseActor uploads_count: int tags: List[str] cover: CoverField + album: Optional[ManageTrackAlbum] + attributed_to: Optional[ManageBaseActor] fid: Union[Unset, None, str] = UNSET mbid: Union[Unset, None, str] = UNSET creation_date: Union[Unset, datetime.datetime] = UNSET @@ -62,10 +62,6 @@ class ManageTrack: is_local = self.is_local artist = self.artist.to_dict() - album = self.album.to_dict() - - attributed_to = self.attributed_to.to_dict() - uploads_count = self.uploads_count tags = self.tags @@ -81,6 +77,9 @@ class ManageTrack: disc_number = self.disc_number copyright_ = self.copyright_ license_ = self.license_ + album = self.album.to_dict() if self.album else None + + attributed_to = self.attributed_to.to_dict() if self.attributed_to else None field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -91,11 +90,11 @@ class ManageTrack: "domain": domain, "is_local": is_local, "artist": artist, - "album": album, - "attributed_to": attributed_to, "uploads_count": uploads_count, "tags": tags, "cover": cover, + "album": album, + "attributed_to": attributed_to, } ) if fid is not UNSET: @@ -128,10 +127,6 @@ class ManageTrack: artist = ManageNestedArtist.from_dict(d.pop("artist")) - album = ManageTrackAlbum.from_dict(d.pop("album")) - - attributed_to = ManageBaseActor.from_dict(d.pop("attributed_to")) - uploads_count = d.pop("uploads_count") tags = cast(List[str], d.pop("tags")) @@ -157,14 +152,26 @@ class ManageTrack: license_ = d.pop("license", UNSET) + _album = d.pop("album") + album: Optional[ManageTrackAlbum] + if _album is None: + album = None + else: + album = ManageTrackAlbum.from_dict(_album) + + _attributed_to = d.pop("attributed_to") + attributed_to: Optional[ManageBaseActor] + if _attributed_to is None: + attributed_to = None + else: + attributed_to = ManageBaseActor.from_dict(_attributed_to) + manage_track = cls( id=id, title=title, domain=domain, is_local=is_local, artist=artist, - album=album, - attributed_to=attributed_to, uploads_count=uploads_count, tags=tags, cover=cover, @@ -175,6 +182,8 @@ class ManageTrack: disc_number=disc_number, copyright_=copyright_, license_=license_, + album=album, + attributed_to=attributed_to, ) manage_track.additional_properties = d diff --git a/funkwhale_api_client/models/manage_track_request.py b/funkwhale_api_client/models/manage_track_request.py index b884b8e62faf94d185e4cbbd3c123f51cfdd3d1b..75442dc94836d6cf1433b82acac33ef937bc02ba 100644 --- a/funkwhale_api_client/models/manage_track_request.py +++ b/funkwhale_api_client/models/manage_track_request.py @@ -1,6 +1,6 @@ import datetime import json -from typing import Any, Dict, List, Type, TypeVar, Union +from typing import Any, Dict, List, Optional, Type, TypeVar, Union import attr from dateutil.parser import isoparse @@ -21,8 +21,6 @@ class ManageTrackRequest: title (str): domain (str): artist (ManageNestedArtistRequest): - album (ManageTrackAlbumRequest): - attributed_to (ManageBaseActorRequest): cover (CoverFieldRequest): fid (Union[Unset, None, str]): mbid (Union[Unset, None, str]): @@ -31,14 +29,16 @@ class ManageTrackRequest: disc_number (Union[Unset, None, int]): copyright_ (Union[Unset, None, str]): license_ (Union[Unset, None, str]): + album (Optional[ManageTrackAlbumRequest]): + attributed_to (Optional[ManageBaseActorRequest]): """ title: str domain: str artist: ManageNestedArtistRequest - album: ManageTrackAlbumRequest - attributed_to: ManageBaseActorRequest cover: CoverFieldRequest + album: Optional[ManageTrackAlbumRequest] + attributed_to: Optional[ManageBaseActorRequest] fid: Union[Unset, None, str] = UNSET mbid: Union[Unset, None, str] = UNSET creation_date: Union[Unset, datetime.datetime] = UNSET @@ -53,10 +53,6 @@ class ManageTrackRequest: domain = self.domain artist = self.artist.to_dict() - album = self.album.to_dict() - - attributed_to = self.attributed_to.to_dict() - cover = self.cover.to_dict() fid = self.fid @@ -69,6 +65,9 @@ class ManageTrackRequest: disc_number = self.disc_number copyright_ = self.copyright_ license_ = self.license_ + album = self.album.to_dict() if self.album else None + + attributed_to = self.attributed_to.to_dict() if self.attributed_to else None field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -77,9 +76,9 @@ class ManageTrackRequest: "title": title, "domain": domain, "artist": artist, + "cover": cover, "album": album, "attributed_to": attributed_to, - "cover": cover, } ) if fid is not UNSET: @@ -104,10 +103,6 @@ class ManageTrackRequest: domain = self.domain if isinstance(self.domain, Unset) else (None, str(self.domain).encode(), "text/plain") artist = (None, json.dumps(self.artist.to_dict()).encode(), "application/json") - album = (None, json.dumps(self.album.to_dict()).encode(), "application/json") - - attributed_to = (None, json.dumps(self.attributed_to.to_dict()).encode(), "application/json") - cover = (None, json.dumps(self.cover.to_dict()).encode(), "application/json") fid = self.fid if isinstance(self.fid, Unset) else (None, str(self.fid).encode(), "text/plain") @@ -132,6 +127,13 @@ class ManageTrackRequest: license_ = ( self.license_ if isinstance(self.license_, Unset) else (None, str(self.license_).encode(), "text/plain") ) + album = (None, json.dumps(self.album.to_dict()).encode(), "application/json") if self.album else None + + attributed_to = ( + (None, json.dumps(self.attributed_to.to_dict()).encode(), "application/json") + if self.attributed_to + else None + ) field_dict: Dict[str, Any] = {} field_dict.update( @@ -142,9 +144,9 @@ class ManageTrackRequest: "title": title, "domain": domain, "artist": artist, + "cover": cover, "album": album, "attributed_to": attributed_to, - "cover": cover, } ) if fid is not UNSET: @@ -173,10 +175,6 @@ class ManageTrackRequest: artist = ManageNestedArtistRequest.from_dict(d.pop("artist")) - album = ManageTrackAlbumRequest.from_dict(d.pop("album")) - - attributed_to = ManageBaseActorRequest.from_dict(d.pop("attributed_to")) - cover = CoverFieldRequest.from_dict(d.pop("cover")) fid = d.pop("fid", UNSET) @@ -198,12 +196,24 @@ class ManageTrackRequest: license_ = d.pop("license", UNSET) + _album = d.pop("album") + album: Optional[ManageTrackAlbumRequest] + if _album is None: + album = None + else: + album = ManageTrackAlbumRequest.from_dict(_album) + + _attributed_to = d.pop("attributed_to") + attributed_to: Optional[ManageBaseActorRequest] + if _attributed_to is None: + attributed_to = None + else: + attributed_to = ManageBaseActorRequest.from_dict(_attributed_to) + manage_track_request = cls( title=title, domain=domain, artist=artist, - album=album, - attributed_to=attributed_to, cover=cover, fid=fid, mbid=mbid, @@ -212,6 +222,8 @@ class ManageTrackRequest: disc_number=disc_number, copyright_=copyright_, license_=license_, + album=album, + attributed_to=attributed_to, ) manage_track_request.additional_properties = d diff --git a/funkwhale_api_client/models/manage_upload.py b/funkwhale_api_client/models/manage_upload.py index 6d3ebe8d02c418e250d39e1ffa18f080ee509760..ffb859b5459e0af7428ab1706a82748413911a3b 100644 --- a/funkwhale_api_client/models/manage_upload.py +++ b/funkwhale_api_client/models/manage_upload.py @@ -4,11 +4,11 @@ from typing import Any, Dict, List, Type, TypeVar, Union import attr from dateutil.parser import isoparse +from ..models.import_status_enum import ImportStatusEnum from ..models.manage_nested_library import ManageNestedLibrary from ..models.manage_nested_track import ManageNestedTrack from ..models.manage_upload_import_details import ManageUploadImportDetails from ..models.manage_upload_import_metadata import ManageUploadImportMetadata -from ..models.manage_upload_import_status_enum import ManageUploadImportStatusEnum from ..models.manage_upload_metadata import ManageUploadMetadata from ..types import UNSET, Unset @@ -40,7 +40,7 @@ class ManageUpload: metadata (Union[Unset, ManageUploadMetadata]): import_date (Union[Unset, None, datetime.datetime]): import_details (Union[Unset, ManageUploadImportDetails]): - import_status (Union[Unset, ManageUploadImportStatusEnum]): + import_status (Union[Unset, ImportStatusEnum]): import_metadata (Union[Unset, ManageUploadImportMetadata]): import_reference (Union[Unset, str]): """ @@ -66,7 +66,7 @@ class ManageUpload: metadata: Union[Unset, ManageUploadMetadata] = UNSET import_date: Union[Unset, None, datetime.datetime] = UNSET import_details: Union[Unset, ManageUploadImportDetails] = UNSET - import_status: Union[Unset, ManageUploadImportStatusEnum] = UNSET + import_status: Union[Unset, ImportStatusEnum] = UNSET import_metadata: Union[Unset, ManageUploadImportMetadata] = UNSET import_reference: Union[Unset, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) @@ -254,11 +254,11 @@ class ManageUpload: import_details = ManageUploadImportDetails.from_dict(_import_details) _import_status = d.pop("import_status", UNSET) - import_status: Union[Unset, ManageUploadImportStatusEnum] + import_status: Union[Unset, ImportStatusEnum] if isinstance(_import_status, Unset): import_status = UNSET else: - import_status = ManageUploadImportStatusEnum(_import_status) + import_status = ImportStatusEnum(_import_status) _import_metadata = d.pop("import_metadata", UNSET) import_metadata: Union[Unset, ManageUploadImportMetadata] diff --git a/funkwhale_api_client/models/manage_upload_request.py b/funkwhale_api_client/models/manage_upload_request.py index 58c3f2ad4e3d0b53f1ea7b58a16238656aa8d0f5..b80a5d7bab0d90732715aba8e1475bb3e74878da 100644 --- a/funkwhale_api_client/models/manage_upload_request.py +++ b/funkwhale_api_client/models/manage_upload_request.py @@ -6,9 +6,9 @@ from typing import Any, Dict, List, Tuple, Type, TypeVar, Union import attr from dateutil.parser import isoparse +from ..models.import_status_enum import ImportStatusEnum from ..models.manage_nested_library_request import ManageNestedLibraryRequest from ..models.manage_nested_track_request import ManageNestedTrackRequest -from ..models.manage_upload_import_status_enum import ManageUploadImportStatusEnum from ..models.manage_upload_request_import_details import ManageUploadRequestImportDetails from ..models.manage_upload_request_import_metadata import ManageUploadRequestImportMetadata from ..models.manage_upload_request_metadata import ManageUploadRequestMetadata @@ -38,7 +38,7 @@ class ManageUploadRequest: metadata (Union[Unset, ManageUploadRequestMetadata]): import_date (Union[Unset, None, datetime.datetime]): import_details (Union[Unset, ManageUploadRequestImportDetails]): - import_status (Union[Unset, ManageUploadImportStatusEnum]): + import_status (Union[Unset, ImportStatusEnum]): import_metadata (Union[Unset, ManageUploadRequestImportMetadata]): import_reference (Union[Unset, str]): """ @@ -60,7 +60,7 @@ class ManageUploadRequest: metadata: Union[Unset, ManageUploadRequestMetadata] = UNSET import_date: Union[Unset, None, datetime.datetime] = UNSET import_details: Union[Unset, ManageUploadRequestImportDetails] = UNSET - import_status: Union[Unset, ManageUploadImportStatusEnum] = UNSET + import_status: Union[Unset, ImportStatusEnum] = UNSET import_metadata: Union[Unset, ManageUploadRequestImportMetadata] = UNSET import_reference: Union[Unset, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) @@ -337,11 +337,11 @@ class ManageUploadRequest: import_details = ManageUploadRequestImportDetails.from_dict(_import_details) _import_status = d.pop("import_status", UNSET) - import_status: Union[Unset, ManageUploadImportStatusEnum] + import_status: Union[Unset, ImportStatusEnum] if isinstance(_import_status, Unset): import_status = UNSET else: - import_status = ManageUploadImportStatusEnum(_import_status) + import_status = ImportStatusEnum(_import_status) _import_metadata = d.pop("import_metadata", UNSET) import_metadata: Union[Unset, ManageUploadRequestImportMetadata] diff --git a/funkwhale_api_client/models/manage_user.py b/funkwhale_api_client/models/manage_user.py index 4a99e5b63fc396f175fdf067d1a1eb98686138d0..9a37dcb5d75d37ec457a3e276d400f1ba13264f5 100644 --- a/funkwhale_api_client/models/manage_user.py +++ b/funkwhale_api_client/models/manage_user.py @@ -29,7 +29,7 @@ class ManageUser: is_superuser (Union[Unset, bool]): Designates that this user has all permissions without explicitly assigning them. last_activity (Optional[datetime.datetime]): - upload_quota (Optional[int]): + upload_quota (Union[Unset, None, int]): """ id: int @@ -40,11 +40,11 @@ class ManageUser: privacy_level: PrivacyLevelEnum full_username: str last_activity: Optional[datetime.datetime] - upload_quota: Optional[int] name: Union[Unset, str] = UNSET is_active: Union[Unset, bool] = UNSET is_staff: Union[Unset, bool] = UNSET is_superuser: Union[Unset, bool] = UNSET + upload_quota: Union[Unset, None, int] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -78,7 +78,6 @@ class ManageUser: "privacy_level": privacy_level, "full_username": full_username, "last_activity": last_activity, - "upload_quota": upload_quota, } ) if name is not UNSET: @@ -89,6 +88,8 @@ class ManageUser: field_dict["is_staff"] = is_staff if is_superuser is not UNSET: field_dict["is_superuser"] = is_superuser + if upload_quota is not UNSET: + field_dict["upload_quota"] = upload_quota return field_dict @@ -124,7 +125,7 @@ class ManageUser: else: last_activity = isoparse(_last_activity) - upload_quota = d.pop("upload_quota") + upload_quota = d.pop("upload_quota", UNSET) manage_user = cls( id=id, diff --git a/funkwhale_api_client/models/manage_user_request.py b/funkwhale_api_client/models/manage_user_request.py index 0c35ddcd820b626663a8878b53aeebafd86e8492..cb674be448a638cd35f71b1d1821c5a2968da2c6 100644 --- a/funkwhale_api_client/models/manage_user_request.py +++ b/funkwhale_api_client/models/manage_user_request.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List, Optional, Type, TypeVar, Union +from typing import Any, Dict, List, Type, TypeVar, Union import attr @@ -17,14 +17,14 @@ class ManageUserRequest: is_staff (Union[Unset, bool]): Designates whether the user can log into this admin site. is_superuser (Union[Unset, bool]): Designates that this user has all permissions without explicitly assigning them. - upload_quota (Optional[int]): + upload_quota (Union[Unset, None, int]): """ - upload_quota: Optional[int] name: Union[Unset, str] = UNSET is_active: Union[Unset, bool] = UNSET is_staff: Union[Unset, bool] = UNSET is_superuser: Union[Unset, bool] = UNSET + upload_quota: Union[Unset, None, int] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -36,11 +36,7 @@ class ManageUserRequest: field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) - field_dict.update( - { - "upload_quota": upload_quota, - } - ) + field_dict.update({}) if name is not UNSET: field_dict["name"] = name if is_active is not UNSET: @@ -49,6 +45,8 @@ class ManageUserRequest: field_dict["is_staff"] = is_staff if is_superuser is not UNSET: field_dict["is_superuser"] = is_superuser + if upload_quota is not UNSET: + field_dict["upload_quota"] = upload_quota return field_dict @@ -75,11 +73,7 @@ class ManageUserRequest: field_dict.update( {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()} ) - field_dict.update( - { - "upload_quota": upload_quota, - } - ) + field_dict.update({}) if name is not UNSET: field_dict["name"] = name if is_active is not UNSET: @@ -88,6 +82,8 @@ class ManageUserRequest: field_dict["is_staff"] = is_staff if is_superuser is not UNSET: field_dict["is_superuser"] = is_superuser + if upload_quota is not UNSET: + field_dict["upload_quota"] = upload_quota return field_dict @@ -102,7 +98,7 @@ class ManageUserRequest: is_superuser = d.pop("is_superuser", UNSET) - upload_quota = d.pop("upload_quota") + upload_quota = d.pop("upload_quota", UNSET) manage_user_request = cls( name=name, diff --git a/funkwhale_api_client/models/metadata.py b/funkwhale_api_client/models/metadata.py index eb2154280157c3af41488e55e20d1c96f2646cf1..c9c03119bcfd0ee6e97aae38157890adaf46f346 100644 --- a/funkwhale_api_client/models/metadata.py +++ b/funkwhale_api_client/models/metadata.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List, Type, TypeVar, cast +from typing import Any, Dict, List, Type, TypeVar, Union, cast import attr @@ -6,6 +6,7 @@ from ..models.allow_list_stat import AllowListStat from ..models.endpoints import Endpoints from ..models.metadata_usage import MetadataUsage from ..models.report_type import ReportType +from ..types import UNSET, Unset T = TypeVar("T", bound="Metadata") @@ -31,7 +32,7 @@ class Metadata: funkwhale_support_message_enabled (bool): instance_support_message (str): endpoints (Endpoints): - usage (MetadataUsage): + usage (Union[Unset, MetadataUsage]): """ actor_id: str @@ -51,7 +52,7 @@ class Metadata: funkwhale_support_message_enabled: bool instance_support_message: str endpoints: Endpoints - usage: MetadataUsage + usage: Union[Unset, MetadataUsage] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -80,7 +81,9 @@ class Metadata: instance_support_message = self.instance_support_message endpoints = self.endpoints.to_dict() - usage = self.usage.to_dict() + usage: Union[Unset, Dict[str, Any]] = UNSET + if not isinstance(self.usage, Unset): + usage = self.usage.to_dict() field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -103,9 +106,10 @@ class Metadata: "funkwhaleSupportMessageEnabled": funkwhale_support_message_enabled, "instanceSupportMessage": instance_support_message, "endpoints": endpoints, - "usage": usage, } ) + if usage is not UNSET: + field_dict["usage"] = usage return field_dict @@ -151,7 +155,12 @@ class Metadata: endpoints = Endpoints.from_dict(d.pop("endpoints")) - usage = MetadataUsage.from_dict(d.pop("usage")) + _usage = d.pop("usage", UNSET) + usage: Union[Unset, MetadataUsage] + if isinstance(_usage, Unset): + usage = UNSET + else: + usage = MetadataUsage.from_dict(_usage) metadata = cls( actor_id=actor_id, diff --git a/funkwhale_api_client/models/manage_moderation_reports_list_type.py b/funkwhale_api_client/models/moderation_get_reports_type.py similarity index 84% rename from funkwhale_api_client/models/manage_moderation_reports_list_type.py rename to funkwhale_api_client/models/moderation_get_reports_type.py index 5cd4174328c0e5e87ba280e26b8a883decadd27f..3cf40f157e3662e130b7a3957608dbab4e66469b 100644 --- a/funkwhale_api_client/models/manage_moderation_reports_list_type.py +++ b/funkwhale_api_client/models/moderation_get_reports_type.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageModerationReportsListType(str, Enum): +class ModerationGetReportsType(str, Enum): ILLEGAL_CONTENT = "illegal_content" INVALID_METADATA = "invalid_metadata" OFFENSIVE_CONTENT = "offensive_content" diff --git a/funkwhale_api_client/models/manage_moderation_requests_list_status.py b/funkwhale_api_client/models/moderation_get_requests_status.py similarity index 75% rename from funkwhale_api_client/models/manage_moderation_requests_list_status.py rename to funkwhale_api_client/models/moderation_get_requests_status.py index f99d18fb6f368737000453367f52e6686494fd68..c550efb27fde8160b5efe4edfcc71dda11e27842 100644 --- a/funkwhale_api_client/models/manage_moderation_requests_list_status.py +++ b/funkwhale_api_client/models/moderation_get_requests_status.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageModerationRequestsListStatus(str, Enum): +class ModerationGetRequestsStatus(str, Enum): APPROVED = "approved" PENDING = "pending" REFUSED = "refused" diff --git a/funkwhale_api_client/models/manage_moderation_requests_list_type.py b/funkwhale_api_client/models/moderation_get_requests_type.py similarity index 67% rename from funkwhale_api_client/models/manage_moderation_requests_list_type.py rename to funkwhale_api_client/models/moderation_get_requests_type.py index be3caef97be6c7cd1a059c613537438909b06c94..95396e259c1aee65bd48a7d89ac7dcc260940178 100644 --- a/funkwhale_api_client/models/manage_moderation_requests_list_type.py +++ b/funkwhale_api_client/models/moderation_get_requests_type.py @@ -1,7 +1,7 @@ from enum import Enum -class ManageModerationRequestsListType(str, Enum): +class ModerationGetRequestsType(str, Enum): SIGNUP = "signup" def __str__(self) -> str: diff --git a/funkwhale_api_client/models/nested_library_follow_request.py b/funkwhale_api_client/models/nested_library_follow_request.py new file mode 100644 index 0000000000000000000000000000000000000000..7387e4c9eef6a84026c06ac8252cea495f69d206 --- /dev/null +++ b/funkwhale_api_client/models/nested_library_follow_request.py @@ -0,0 +1,91 @@ +import datetime +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr +from dateutil.parser import isoparse + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="NestedLibraryFollowRequest") + + +@attr.s(auto_attribs=True) +class NestedLibraryFollowRequest: + """ + Attributes: + creation_date (Union[Unset, datetime.datetime]): + uuid (Union[Unset, str]): + fid (Union[Unset, None, str]): + approved (Union[Unset, None, bool]): + """ + + creation_date: Union[Unset, datetime.datetime] = UNSET + uuid: Union[Unset, str] = UNSET + fid: Union[Unset, None, str] = UNSET + approved: Union[Unset, None, bool] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + creation_date: Union[Unset, str] = UNSET + if not isinstance(self.creation_date, Unset): + creation_date = self.creation_date.isoformat() + + uuid = self.uuid + fid = self.fid + approved = self.approved + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if creation_date is not UNSET: + field_dict["creation_date"] = creation_date + if uuid is not UNSET: + field_dict["uuid"] = uuid + if fid is not UNSET: + field_dict["fid"] = fid + if approved is not UNSET: + field_dict["approved"] = approved + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + _creation_date = d.pop("creation_date", UNSET) + creation_date: Union[Unset, datetime.datetime] + if isinstance(_creation_date, Unset): + creation_date = UNSET + else: + creation_date = isoparse(_creation_date) + + uuid = d.pop("uuid", UNSET) + + fid = d.pop("fid", UNSET) + + approved = d.pop("approved", UNSET) + + nested_library_follow_request = cls( + creation_date=creation_date, + uuid=uuid, + fid=fid, + approved=approved, + ) + + nested_library_follow_request.additional_properties = d + return nested_library_follow_request + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/paginated_fetch_list.py b/funkwhale_api_client/models/paginated_fetch_list.py new file mode 100644 index 0000000000000000000000000000000000000000..baa118df331666143ed5f4033bd10fabb1140320 --- /dev/null +++ b/funkwhale_api_client/models/paginated_fetch_list.py @@ -0,0 +1,93 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..models.fetch import Fetch +from ..types import UNSET, Unset + +T = TypeVar("T", bound="PaginatedFetchList") + + +@attr.s(auto_attribs=True) +class PaginatedFetchList: + """ + Attributes: + count (Union[Unset, int]): Example: 123. + next_ (Union[Unset, None, str]): Example: http://api.example.org/accounts/?page=4. + previous (Union[Unset, None, str]): Example: http://api.example.org/accounts/?page=2. + results (Union[Unset, List[Fetch]]): + """ + + count: Union[Unset, int] = UNSET + next_: Union[Unset, None, str] = UNSET + previous: Union[Unset, None, str] = UNSET + results: Union[Unset, List[Fetch]] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + count = self.count + next_ = self.next_ + previous = self.previous + results: Union[Unset, List[Dict[str, Any]]] = UNSET + if not isinstance(self.results, Unset): + results = [] + for results_item_data in self.results: + results_item = results_item_data.to_dict() + + results.append(results_item) + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if count is not UNSET: + field_dict["count"] = count + if next_ is not UNSET: + field_dict["next"] = next_ + if previous is not UNSET: + field_dict["previous"] = previous + if results is not UNSET: + field_dict["results"] = results + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + count = d.pop("count", UNSET) + + next_ = d.pop("next", UNSET) + + previous = d.pop("previous", UNSET) + + results = [] + _results = d.pop("results", UNSET) + for results_item_data in _results or []: + results_item = Fetch.from_dict(results_item_data) + + results.append(results_item) + + paginated_fetch_list = cls( + count=count, + next_=next_, + previous=previous, + results=results, + ) + + paginated_fetch_list.additional_properties = d + return paginated_fetch_list + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/paginated_library_list.py b/funkwhale_api_client/models/paginated_library_list.py new file mode 100644 index 0000000000000000000000000000000000000000..9ad8957e16f1df98bffb0cfd49d94da62f7a6c27 --- /dev/null +++ b/funkwhale_api_client/models/paginated_library_list.py @@ -0,0 +1,93 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..models.library import Library +from ..types import UNSET, Unset + +T = TypeVar("T", bound="PaginatedLibraryList") + + +@attr.s(auto_attribs=True) +class PaginatedLibraryList: + """ + Attributes: + count (Union[Unset, int]): Example: 123. + next_ (Union[Unset, None, str]): Example: http://api.example.org/accounts/?page=4. + previous (Union[Unset, None, str]): Example: http://api.example.org/accounts/?page=2. + results (Union[Unset, List[Library]]): + """ + + count: Union[Unset, int] = UNSET + next_: Union[Unset, None, str] = UNSET + previous: Union[Unset, None, str] = UNSET + results: Union[Unset, List[Library]] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + count = self.count + next_ = self.next_ + previous = self.previous + results: Union[Unset, List[Dict[str, Any]]] = UNSET + if not isinstance(self.results, Unset): + results = [] + for results_item_data in self.results: + results_item = results_item_data.to_dict() + + results.append(results_item) + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if count is not UNSET: + field_dict["count"] = count + if next_ is not UNSET: + field_dict["next"] = next_ + if previous is not UNSET: + field_dict["previous"] = previous + if results is not UNSET: + field_dict["results"] = results + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + count = d.pop("count", UNSET) + + next_ = d.pop("next", UNSET) + + previous = d.pop("previous", UNSET) + + results = [] + _results = d.pop("results", UNSET) + for results_item_data in _results or []: + results_item = Library.from_dict(results_item_data) + + results.append(results_item) + + paginated_library_list = cls( + count=count, + next_=next_, + previous=previous, + results=results, + ) + + paginated_library_list.additional_properties = d + return paginated_library_list + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/paginated_playlist_track_list.py b/funkwhale_api_client/models/paginated_playlist_track_list.py new file mode 100644 index 0000000000000000000000000000000000000000..3a276d677d93ac26f5fc765a4366f2b6a0edf3e2 --- /dev/null +++ b/funkwhale_api_client/models/paginated_playlist_track_list.py @@ -0,0 +1,93 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..models.playlist_track import PlaylistTrack +from ..types import UNSET, Unset + +T = TypeVar("T", bound="PaginatedPlaylistTrackList") + + +@attr.s(auto_attribs=True) +class PaginatedPlaylistTrackList: + """ + Attributes: + count (Union[Unset, int]): Example: 123. + next_ (Union[Unset, None, str]): Example: http://api.example.org/accounts/?page=4. + previous (Union[Unset, None, str]): Example: http://api.example.org/accounts/?page=2. + results (Union[Unset, List[PlaylistTrack]]): + """ + + count: Union[Unset, int] = UNSET + next_: Union[Unset, None, str] = UNSET + previous: Union[Unset, None, str] = UNSET + results: Union[Unset, List[PlaylistTrack]] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + count = self.count + next_ = self.next_ + previous = self.previous + results: Union[Unset, List[Dict[str, Any]]] = UNSET + if not isinstance(self.results, Unset): + results = [] + for results_item_data in self.results: + results_item = results_item_data.to_dict() + + results.append(results_item) + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if count is not UNSET: + field_dict["count"] = count + if next_ is not UNSET: + field_dict["next"] = next_ + if previous is not UNSET: + field_dict["previous"] = previous + if results is not UNSET: + field_dict["results"] = results + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + count = d.pop("count", UNSET) + + next_ = d.pop("next", UNSET) + + previous = d.pop("previous", UNSET) + + results = [] + _results = d.pop("results", UNSET) + for results_item_data in _results or []: + results_item = PlaylistTrack.from_dict(results_item_data) + + results.append(results_item) + + paginated_playlist_track_list = cls( + count=count, + next_=next_, + previous=previous, + results=results, + ) + + paginated_playlist_track_list.additional_properties = d + return paginated_playlist_track_list + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/patched_manage_report_request.py b/funkwhale_api_client/models/patched_manage_report_request.py index 8667b3fb3060d98a6efbfccec6500f9f22c20d0f..7944c4e7c8486a2c3c85ac390c4b75d8f29d6308 100644 --- a/funkwhale_api_client/models/patched_manage_report_request.py +++ b/funkwhale_api_client/models/patched_manage_report_request.py @@ -4,6 +4,7 @@ from typing import Any, Dict, List, Tuple, Type, TypeVar, Union import attr from ..models.manage_base_actor_request import ManageBaseActorRequest +from ..models.manage_base_note_request import ManageBaseNoteRequest from ..models.patched_manage_report_request_target import PatchedManageReportRequestTarget from ..models.report_type_enum import ReportTypeEnum from ..types import UNSET, Unset @@ -18,17 +19,19 @@ class PatchedManageReportRequest: type (Union[Unset, ReportTypeEnum]): target (Union[Unset, PatchedManageReportRequestTarget]): is_handled (Union[Unset, bool]): - assigned_to (Union[Unset, ManageBaseActorRequest]): + assigned_to (Union[Unset, None, ManageBaseActorRequest]): target_owner (Union[Unset, ManageBaseActorRequest]): submitter (Union[Unset, ManageBaseActorRequest]): + notes (Union[Unset, None, List[ManageBaseNoteRequest]]): """ type: Union[Unset, ReportTypeEnum] = UNSET target: Union[Unset, PatchedManageReportRequestTarget] = UNSET is_handled: Union[Unset, bool] = UNSET - assigned_to: Union[Unset, ManageBaseActorRequest] = UNSET + assigned_to: Union[Unset, None, ManageBaseActorRequest] = UNSET target_owner: Union[Unset, ManageBaseActorRequest] = UNSET submitter: Union[Unset, ManageBaseActorRequest] = UNSET + notes: Union[Unset, None, List[ManageBaseNoteRequest]] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -41,9 +44,9 @@ class PatchedManageReportRequest: target = self.target.to_dict() is_handled = self.is_handled - assigned_to: Union[Unset, Dict[str, Any]] = UNSET + assigned_to: Union[Unset, None, Dict[str, Any]] = UNSET if not isinstance(self.assigned_to, Unset): - assigned_to = self.assigned_to.to_dict() + assigned_to = self.assigned_to.to_dict() if self.assigned_to else None target_owner: Union[Unset, Dict[str, Any]] = UNSET if not isinstance(self.target_owner, Unset): @@ -53,6 +56,17 @@ class PatchedManageReportRequest: if not isinstance(self.submitter, Unset): submitter = self.submitter.to_dict() + notes: Union[Unset, None, List[Dict[str, Any]]] = UNSET + if not isinstance(self.notes, Unset): + if self.notes is None: + notes = None + else: + notes = [] + for notes_item_data in self.notes: + notes_item = notes_item_data.to_dict() + + notes.append(notes_item) + field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) @@ -68,6 +82,8 @@ class PatchedManageReportRequest: field_dict["target_owner"] = target_owner if submitter is not UNSET: field_dict["submitter"] = submitter + if notes is not UNSET: + field_dict["notes"] = notes return field_dict @@ -87,7 +103,11 @@ class PatchedManageReportRequest: ) assigned_to: Union[Unset, Tuple[None, bytes, str]] = UNSET if not isinstance(self.assigned_to, Unset): - assigned_to = (None, json.dumps(self.assigned_to.to_dict()).encode(), "application/json") + assigned_to = ( + (None, json.dumps(self.assigned_to.to_dict()).encode(), "application/json") + if self.assigned_to + else None + ) target_owner: Union[Unset, Tuple[None, bytes, str]] = UNSET if not isinstance(self.target_owner, Unset): @@ -97,6 +117,18 @@ class PatchedManageReportRequest: if not isinstance(self.submitter, Unset): submitter = (None, json.dumps(self.submitter.to_dict()).encode(), "application/json") + notes: Union[Unset, Tuple[None, bytes, str]] = UNSET + if not isinstance(self.notes, Unset): + if self.notes is None: + notes = None + else: + _temp_notes = [] + for notes_item_data in self.notes: + notes_item = notes_item_data.to_dict() + + _temp_notes.append(notes_item) + notes = (None, json.dumps(_temp_notes).encode(), "application/json") + field_dict: Dict[str, Any] = {} field_dict.update( {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()} @@ -114,6 +146,8 @@ class PatchedManageReportRequest: field_dict["target_owner"] = target_owner if submitter is not UNSET: field_dict["submitter"] = submitter + if notes is not UNSET: + field_dict["notes"] = notes return field_dict @@ -137,8 +171,10 @@ class PatchedManageReportRequest: is_handled = d.pop("is_handled", UNSET) _assigned_to = d.pop("assigned_to", UNSET) - assigned_to: Union[Unset, ManageBaseActorRequest] - if isinstance(_assigned_to, Unset): + assigned_to: Union[Unset, None, ManageBaseActorRequest] + if _assigned_to is None: + assigned_to = None + elif isinstance(_assigned_to, Unset): assigned_to = UNSET else: assigned_to = ManageBaseActorRequest.from_dict(_assigned_to) @@ -157,6 +193,13 @@ class PatchedManageReportRequest: else: submitter = ManageBaseActorRequest.from_dict(_submitter) + notes = [] + _notes = d.pop("notes", UNSET) + for notes_item_data in _notes or []: + notes_item = ManageBaseNoteRequest.from_dict(notes_item_data) + + notes.append(notes_item) + patched_manage_report_request = cls( type=type, target=target, @@ -164,6 +207,7 @@ class PatchedManageReportRequest: assigned_to=assigned_to, target_owner=target_owner, submitter=submitter, + notes=notes, ) patched_manage_report_request.additional_properties = d diff --git a/funkwhale_api_client/models/patched_upload_for_owner_request.py b/funkwhale_api_client/models/patched_upload_for_owner_request.py index 59f9796e467b1c1536a7b57296055c6afdb7f374..f6bbda2e46729ec451446474fc7e99cf43414d78 100644 --- a/funkwhale_api_client/models/patched_upload_for_owner_request.py +++ b/funkwhale_api_client/models/patched_upload_for_owner_request.py @@ -4,9 +4,9 @@ from typing import Any, Dict, List, Tuple, Type, TypeVar, Union import attr +from ..models.import_status_enum import ImportStatusEnum from ..models.patched_upload_for_owner_request_import_metadata import PatchedUploadForOwnerRequestImportMetadata from ..models.track_request import TrackRequest -from ..models.upload_for_owner_import_status_enum import UploadForOwnerImportStatusEnum from ..types import UNSET, File, FileJsonType, Unset T = TypeVar("T", bound="PatchedUploadForOwnerRequest") @@ -16,20 +16,22 @@ T = TypeVar("T", bound="PatchedUploadForOwnerRequest") class PatchedUploadForOwnerRequest: """ Attributes: + filename (Union[Unset, str]): track (Union[Unset, None, TrackRequest]): library (Union[Unset, str]): channel (Union[Unset, str]): - import_status (Union[Unset, UploadForOwnerImportStatusEnum]): Default: UploadForOwnerImportStatusEnum.PENDING. + import_status (Union[Unset, ImportStatusEnum]): Default: ImportStatusEnum.PENDING. import_metadata (Union[Unset, PatchedUploadForOwnerRequestImportMetadata]): import_reference (Union[Unset, str]): source (Union[Unset, None, str]): audio_file (Union[Unset, File]): """ + filename: Union[Unset, str] = UNSET track: Union[Unset, None, TrackRequest] = UNSET library: Union[Unset, str] = UNSET channel: Union[Unset, str] = UNSET - import_status: Union[Unset, UploadForOwnerImportStatusEnum] = UploadForOwnerImportStatusEnum.PENDING + import_status: Union[Unset, ImportStatusEnum] = ImportStatusEnum.PENDING import_metadata: Union[Unset, PatchedUploadForOwnerRequestImportMetadata] = UNSET import_reference: Union[Unset, str] = UNSET source: Union[Unset, None, str] = UNSET @@ -37,6 +39,7 @@ class PatchedUploadForOwnerRequest: additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: + filename = self.filename track: Union[Unset, None, Dict[str, Any]] = UNSET if not isinstance(self.track, Unset): track = self.track.to_dict() if self.track else None @@ -60,6 +63,8 @@ class PatchedUploadForOwnerRequest: field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) + if filename is not UNSET: + field_dict["filename"] = filename if track is not UNSET: field_dict["track"] = track if library is not UNSET: @@ -80,6 +85,9 @@ class PatchedUploadForOwnerRequest: return field_dict def to_multipart(self) -> Dict[str, Any]: + filename = ( + self.filename if isinstance(self.filename, Unset) else (None, str(self.filename).encode(), "text/plain") + ) track: Union[Unset, Tuple[None, bytes, str]] = UNSET if not isinstance(self.track, Unset): track = (None, json.dumps(self.track.to_dict()).encode(), "application/json") if self.track else None @@ -109,6 +117,8 @@ class PatchedUploadForOwnerRequest: {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()} ) field_dict.update({}) + if filename is not UNSET: + field_dict["filename"] = filename if track is not UNSET: field_dict["track"] = track if library is not UNSET: @@ -131,6 +141,8 @@ class PatchedUploadForOwnerRequest: @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: d = src_dict.copy() + filename = d.pop("filename", UNSET) + _track = d.pop("track", UNSET) track: Union[Unset, None, TrackRequest] if _track is None: @@ -145,11 +157,11 @@ class PatchedUploadForOwnerRequest: channel = d.pop("channel", UNSET) _import_status = d.pop("import_status", UNSET) - import_status: Union[Unset, UploadForOwnerImportStatusEnum] + import_status: Union[Unset, ImportStatusEnum] if isinstance(_import_status, Unset): import_status = UNSET else: - import_status = UploadForOwnerImportStatusEnum(_import_status) + import_status = ImportStatusEnum(_import_status) _import_metadata = d.pop("import_metadata", UNSET) import_metadata: Union[Unset, PatchedUploadForOwnerRequestImportMetadata] @@ -170,6 +182,7 @@ class PatchedUploadForOwnerRequest: audio_file = File(payload=BytesIO(_audio_file)) patched_upload_for_owner_request = cls( + filename=filename, track=track, library=library, channel=channel, diff --git a/funkwhale_api_client/models/playlist_add_many_request.py b/funkwhale_api_client/models/playlist_add_many_request.py new file mode 100644 index 0000000000000000000000000000000000000000..cbd28b320b670f16c19c94557c1909ed524611b4 --- /dev/null +++ b/funkwhale_api_client/models/playlist_add_many_request.py @@ -0,0 +1,93 @@ +import json +from typing import Any, Dict, List, Type, TypeVar, Union, cast + +import attr + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="PlaylistAddManyRequest") + + +@attr.s(auto_attribs=True) +class PlaylistAddManyRequest: + """ + Attributes: + tracks (List[int]): + allow_duplicates (Union[Unset, bool]): + """ + + tracks: List[int] + allow_duplicates: Union[Unset, bool] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + tracks = self.tracks + + allow_duplicates = self.allow_duplicates + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "tracks": tracks, + } + ) + if allow_duplicates is not UNSET: + field_dict["allow_duplicates"] = allow_duplicates + + return field_dict + + def to_multipart(self) -> Dict[str, Any]: + _temp_tracks = self.tracks + tracks = (None, json.dumps(_temp_tracks).encode(), "application/json") + + allow_duplicates = ( + self.allow_duplicates + if isinstance(self.allow_duplicates, Unset) + else (None, str(self.allow_duplicates).encode(), "text/plain") + ) + + field_dict: Dict[str, Any] = {} + field_dict.update( + {key: (None, str(value).encode(), "text/plain") for key, value in self.additional_properties.items()} + ) + field_dict.update( + { + "tracks": tracks, + } + ) + if allow_duplicates is not UNSET: + field_dict["allow_duplicates"] = allow_duplicates + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + tracks = cast(List[int], d.pop("tracks")) + + allow_duplicates = d.pop("allow_duplicates", UNSET) + + playlist_add_many_request = cls( + tracks=tracks, + allow_duplicates=allow_duplicates, + ) + + playlist_add_many_request.additional_properties = d + return playlist_add_many_request + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/playlist_track.py b/funkwhale_api_client/models/playlist_track.py new file mode 100644 index 0000000000000000000000000000000000000000..e733cb2dfe4d797bd75f886dbbb211fc4fd26d36 --- /dev/null +++ b/funkwhale_api_client/models/playlist_track.py @@ -0,0 +1,84 @@ +import datetime +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr +from dateutil.parser import isoparse + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="PlaylistTrack") + + +@attr.s(auto_attribs=True) +class PlaylistTrack: + """ + Attributes: + track (str): + index (Union[Unset, None, int]): + creation_date (Union[Unset, datetime.datetime]): + """ + + track: str + index: Union[Unset, None, int] = UNSET + creation_date: Union[Unset, datetime.datetime] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + track = self.track + index = self.index + creation_date: Union[Unset, str] = UNSET + if not isinstance(self.creation_date, Unset): + creation_date = self.creation_date.isoformat() + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "track": track, + } + ) + if index is not UNSET: + field_dict["index"] = index + if creation_date is not UNSET: + field_dict["creation_date"] = creation_date + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + track = d.pop("track") + + index = d.pop("index", UNSET) + + _creation_date = d.pop("creation_date", UNSET) + creation_date: Union[Unset, datetime.datetime] + if isinstance(_creation_date, Unset): + creation_date = UNSET + else: + creation_date = isoparse(_creation_date) + + playlist_track = cls( + track=track, + index=index, + creation_date=creation_date, + ) + + playlist_track.additional_properties = d + return playlist_track + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/simple_artist.py b/funkwhale_api_client/models/simple_artist.py index 266b32bfb19179c6314df8a8c683930040fdeaa9..2363f590e3ff45f196c94dbe28a4ae7f16160009 100644 --- a/funkwhale_api_client/models/simple_artist.py +++ b/funkwhale_api_client/models/simple_artist.py @@ -4,7 +4,6 @@ from typing import Any, Dict, List, Type, TypeVar, Union import attr from dateutil.parser import isoparse -from ..models.artist_with_albums_inline_channel import ArtistWithAlbumsInlineChannel from ..models.content import Content from ..models.content_category_enum import ContentCategoryEnum from ..models.cover_field import CoverField @@ -27,7 +26,7 @@ class SimpleArtist: content_category (Union[Unset, ContentCategoryEnum]): description (Union[Unset, None, Content]): attachment_cover (Union[Unset, None, CoverField]): - channel (Union[Unset, None, ArtistWithAlbumsInlineChannel]): + channel (Union[Unset, None, str]): """ id: int @@ -40,7 +39,7 @@ class SimpleArtist: content_category: Union[Unset, ContentCategoryEnum] = UNSET description: Union[Unset, None, Content] = UNSET attachment_cover: Union[Unset, None, CoverField] = UNSET - channel: Union[Unset, None, ArtistWithAlbumsInlineChannel] = UNSET + channel: Union[Unset, None, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -69,9 +68,7 @@ class SimpleArtist: if not isinstance(self.attachment_cover, Unset): attachment_cover = self.attachment_cover.to_dict() if self.attachment_cover else None - channel: Union[Unset, None, Dict[str, Any]] = UNSET - if not isinstance(self.channel, Unset): - channel = self.channel.to_dict() if self.channel else None + channel = self.channel field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -153,14 +150,7 @@ class SimpleArtist: else: attachment_cover = CoverField.from_dict(_attachment_cover) - _channel = d.pop("channel", UNSET) - channel: Union[Unset, None, ArtistWithAlbumsInlineChannel] - if _channel is None: - channel = None - elif isinstance(_channel, Unset): - channel = UNSET - else: - channel = ArtistWithAlbumsInlineChannel.from_dict(_channel) + channel = d.pop("channel", UNSET) simple_artist = cls( id=id, diff --git a/funkwhale_api_client/models/simple_artist_request.py b/funkwhale_api_client/models/simple_artist_request.py index ba74b4dba58c3384ceae30325aabbce5d99ad2dc..ee64076bca0060e063fc66e1690b63e89deedf01 100644 --- a/funkwhale_api_client/models/simple_artist_request.py +++ b/funkwhale_api_client/models/simple_artist_request.py @@ -4,7 +4,6 @@ from typing import Any, Dict, List, Type, TypeVar, Union import attr from dateutil.parser import isoparse -from ..models.artist_with_albums_inline_channel_request import ArtistWithAlbumsInlineChannelRequest from ..models.content_category_enum import ContentCategoryEnum from ..models.content_request import ContentRequest from ..models.cover_field_request import CoverFieldRequest @@ -25,7 +24,7 @@ class SimpleArtistRequest: content_category (Union[Unset, ContentCategoryEnum]): description (Union[Unset, None, ContentRequest]): attachment_cover (Union[Unset, None, CoverFieldRequest]): - channel (Union[Unset, None, ArtistWithAlbumsInlineChannelRequest]): + channel (Union[Unset, None, str]): """ name: str @@ -36,7 +35,7 @@ class SimpleArtistRequest: content_category: Union[Unset, ContentCategoryEnum] = UNSET description: Union[Unset, None, ContentRequest] = UNSET attachment_cover: Union[Unset, None, CoverFieldRequest] = UNSET - channel: Union[Unset, None, ArtistWithAlbumsInlineChannelRequest] = UNSET + channel: Union[Unset, None, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -63,9 +62,7 @@ class SimpleArtistRequest: if not isinstance(self.attachment_cover, Unset): attachment_cover = self.attachment_cover.to_dict() if self.attachment_cover else None - channel: Union[Unset, None, Dict[str, Any]] = UNSET - if not isinstance(self.channel, Unset): - channel = self.channel.to_dict() if self.channel else None + channel = self.channel field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -141,14 +138,7 @@ class SimpleArtistRequest: else: attachment_cover = CoverFieldRequest.from_dict(_attachment_cover) - _channel = d.pop("channel", UNSET) - channel: Union[Unset, None, ArtistWithAlbumsInlineChannelRequest] - if _channel is None: - channel = None - elif isinstance(_channel, Unset): - channel = UNSET - else: - channel = ArtistWithAlbumsInlineChannelRequest.from_dict(_channel) + channel = d.pop("channel", UNSET) simple_artist_request = cls( name=name, diff --git a/funkwhale_api_client/models/simple_favorite.py b/funkwhale_api_client/models/simple_favorite.py new file mode 100644 index 0000000000000000000000000000000000000000..c93f5415e3c8f8dc8a4b67a7005cf412a9531aa4 --- /dev/null +++ b/funkwhale_api_client/models/simple_favorite.py @@ -0,0 +1,64 @@ +from typing import Any, Dict, List, Type, TypeVar + +import attr + +T = TypeVar("T", bound="SimpleFavorite") + + +@attr.s(auto_attribs=True) +class SimpleFavorite: + """ + Attributes: + id (int): + track (int): + """ + + id: int + track: int + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + id = self.id + track = self.track + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "id": id, + "track": track, + } + ) + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + id = d.pop("id") + + track = d.pop("track") + + simple_favorite = cls( + id=id, + track=track, + ) + + simple_favorite.additional_properties = d + return simple_favorite + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/track.py b/funkwhale_api_client/models/track.py index 4db46fb9f1efa567a9765f1c1ab25b91b9365db0..523c8708285991eb4c668c0d53cbe3c73c490612 100644 --- a/funkwhale_api_client/models/track.py +++ b/funkwhale_api_client/models/track.py @@ -22,7 +22,6 @@ class Track: uploads (List[TrackUploadsItem]): listen_url (str): tags (List[str]): - attributed_to (APIActor): id (int): fid (str): mbid (str): @@ -35,6 +34,7 @@ class Track: copyright_ (str): license_ (str): is_playable (bool): + attributed_to (Optional[APIActor]): cover (Optional[CoverField]): """ @@ -43,7 +43,6 @@ class Track: uploads: List[TrackUploadsItem] listen_url: str tags: List[str] - attributed_to: APIActor id: int fid: str mbid: str @@ -56,6 +55,7 @@ class Track: copyright_: str license_: str is_playable: bool + attributed_to: Optional[APIActor] cover: Optional[CoverField] additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) @@ -73,8 +73,6 @@ class Track: listen_url = self.listen_url tags = self.tags - attributed_to = self.attributed_to.to_dict() - id = self.id fid = self.fid mbid = self.mbid @@ -88,6 +86,8 @@ class Track: copyright_ = self.copyright_ license_ = self.license_ is_playable = self.is_playable + attributed_to = self.attributed_to.to_dict() if self.attributed_to else None + cover = self.cover.to_dict() if self.cover else None field_dict: Dict[str, Any] = {} @@ -99,7 +99,6 @@ class Track: "uploads": uploads, "listen_url": listen_url, "tags": tags, - "attributed_to": attributed_to, "id": id, "fid": fid, "mbid": mbid, @@ -112,6 +111,7 @@ class Track: "copyright": copyright_, "license": license_, "is_playable": is_playable, + "attributed_to": attributed_to, "cover": cover, } ) @@ -136,8 +136,6 @@ class Track: tags = cast(List[str], d.pop("tags")) - attributed_to = APIActor.from_dict(d.pop("attributed_to")) - id = d.pop("id") fid = d.pop("fid") @@ -162,6 +160,13 @@ class Track: is_playable = d.pop("is_playable") + _attributed_to = d.pop("attributed_to") + attributed_to: Optional[APIActor] + if _attributed_to is None: + attributed_to = None + else: + attributed_to = APIActor.from_dict(_attributed_to) + _cover = d.pop("cover") cover: Optional[CoverField] if _cover is None: @@ -175,7 +180,6 @@ class Track: uploads=uploads, listen_url=listen_url, tags=tags, - attributed_to=attributed_to, id=id, fid=fid, mbid=mbid, @@ -188,6 +192,7 @@ class Track: copyright_=copyright_, license_=license_, is_playable=is_playable, + attributed_to=attributed_to, cover=cover, ) diff --git a/funkwhale_api_client/models/track_metadata.py b/funkwhale_api_client/models/track_metadata.py new file mode 100644 index 0000000000000000000000000000000000000000..8af570f05a93271df0e27529c5e0f8ef51985f48 --- /dev/null +++ b/funkwhale_api_client/models/track_metadata.py @@ -0,0 +1,138 @@ +from typing import Any, Dict, List, Type, TypeVar, Union + +import attr + +from ..types import UNSET, Unset + +T = TypeVar("T", bound="TrackMetadata") + + +@attr.s(auto_attribs=True) +class TrackMetadata: + """ + Attributes: + album (str): + artists (str): + title (Union[Unset, None, str]): + position (Union[Unset, None, str]): + disc_number (Union[Unset, None, str]): + copyright_ (Union[Unset, None, str]): + license_ (Union[Unset, None, str]): + mbid (Union[Unset, None, str]): + tags (Union[Unset, None, str]): + description (Union[Unset, None, str]): + cover_data (Union[Unset, str]): + """ + + album: str + artists: str + title: Union[Unset, None, str] = UNSET + position: Union[Unset, None, str] = UNSET + disc_number: Union[Unset, None, str] = UNSET + copyright_: Union[Unset, None, str] = UNSET + license_: Union[Unset, None, str] = UNSET + mbid: Union[Unset, None, str] = UNSET + tags: Union[Unset, None, str] = UNSET + description: Union[Unset, None, str] = UNSET + cover_data: Union[Unset, str] = UNSET + additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) + + def to_dict(self) -> Dict[str, Any]: + album = self.album + artists = self.artists + title = self.title + position = self.position + disc_number = self.disc_number + copyright_ = self.copyright_ + license_ = self.license_ + mbid = self.mbid + tags = self.tags + description = self.description + cover_data = self.cover_data + + field_dict: Dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update( + { + "album": album, + "artists": artists, + } + ) + if title is not UNSET: + field_dict["title"] = title + if position is not UNSET: + field_dict["position"] = position + if disc_number is not UNSET: + field_dict["disc_number"] = disc_number + if copyright_ is not UNSET: + field_dict["copyright"] = copyright_ + if license_ is not UNSET: + field_dict["license"] = license_ + if mbid is not UNSET: + field_dict["mbid"] = mbid + if tags is not UNSET: + field_dict["tags"] = tags + if description is not UNSET: + field_dict["description"] = description + if cover_data is not UNSET: + field_dict["cover_data"] = cover_data + + return field_dict + + @classmethod + def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: + d = src_dict.copy() + album = d.pop("album") + + artists = d.pop("artists") + + title = d.pop("title", UNSET) + + position = d.pop("position", UNSET) + + disc_number = d.pop("disc_number", UNSET) + + copyright_ = d.pop("copyright", UNSET) + + license_ = d.pop("license", UNSET) + + mbid = d.pop("mbid", UNSET) + + tags = d.pop("tags", UNSET) + + description = d.pop("description", UNSET) + + cover_data = d.pop("cover_data", UNSET) + + track_metadata = cls( + album=album, + artists=artists, + title=title, + position=position, + disc_number=disc_number, + copyright_=copyright_, + license_=license_, + mbid=mbid, + tags=tags, + description=description, + cover_data=cover_data, + ) + + track_metadata.additional_properties = d + return track_metadata + + @property + def additional_keys(self) -> List[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/funkwhale_api_client/models/track_request.py b/funkwhale_api_client/models/track_request.py index 670136db4d1c9331b83d0020e8c8721a1e8fbc6a..d6029302e9a8b344752eac5de91cf54afae11a3c 100644 --- a/funkwhale_api_client/models/track_request.py +++ b/funkwhale_api_client/models/track_request.py @@ -18,7 +18,6 @@ class TrackRequest: """ Attributes: artist (SimpleArtistRequest): - attributed_to (APIActorRequest): id (int): fid (str): mbid (str): @@ -29,11 +28,11 @@ class TrackRequest: disc_number (int): downloads_count (int): copyright_ (str): + attributed_to (Optional[APIActorRequest]): cover (Optional[CoverFieldRequest]): """ artist: SimpleArtistRequest - attributed_to: APIActorRequest id: int fid: str mbid: str @@ -44,14 +43,13 @@ class TrackRequest: disc_number: int downloads_count: int copyright_: str + attributed_to: Optional[APIActorRequest] cover: Optional[CoverFieldRequest] additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: artist = self.artist.to_dict() - attributed_to = self.attributed_to.to_dict() - id = self.id fid = self.fid mbid = self.mbid @@ -63,6 +61,8 @@ class TrackRequest: disc_number = self.disc_number downloads_count = self.downloads_count copyright_ = self.copyright_ + attributed_to = self.attributed_to.to_dict() if self.attributed_to else None + cover = self.cover.to_dict() if self.cover else None field_dict: Dict[str, Any] = {} @@ -70,7 +70,6 @@ class TrackRequest: field_dict.update( { "artist": artist, - "attributed_to": attributed_to, "id": id, "fid": fid, "mbid": mbid, @@ -81,6 +80,7 @@ class TrackRequest: "disc_number": disc_number, "downloads_count": downloads_count, "copyright": copyright_, + "attributed_to": attributed_to, "cover": cover, } ) @@ -90,8 +90,6 @@ class TrackRequest: def to_multipart(self) -> Dict[str, Any]: artist = (None, json.dumps(self.artist.to_dict()).encode(), "application/json") - attributed_to = (None, json.dumps(self.attributed_to.to_dict()).encode(), "application/json") - id = self.id if isinstance(self.id, Unset) else (None, str(self.id).encode(), "text/plain") fid = self.fid if isinstance(self.fid, Unset) else (None, str(self.fid).encode(), "text/plain") mbid = self.mbid if isinstance(self.mbid, Unset) else (None, str(self.mbid).encode(), "text/plain") @@ -119,6 +117,12 @@ class TrackRequest: if isinstance(self.copyright_, Unset) else (None, str(self.copyright_).encode(), "text/plain") ) + attributed_to = ( + (None, json.dumps(self.attributed_to.to_dict()).encode(), "application/json") + if self.attributed_to + else None + ) + cover = (None, json.dumps(self.cover.to_dict()).encode(), "application/json") if self.cover else None field_dict: Dict[str, Any] = {} @@ -128,7 +132,6 @@ class TrackRequest: field_dict.update( { "artist": artist, - "attributed_to": attributed_to, "id": id, "fid": fid, "mbid": mbid, @@ -139,6 +142,7 @@ class TrackRequest: "disc_number": disc_number, "downloads_count": downloads_count, "copyright": copyright_, + "attributed_to": attributed_to, "cover": cover, } ) @@ -150,8 +154,6 @@ class TrackRequest: d = src_dict.copy() artist = SimpleArtistRequest.from_dict(d.pop("artist")) - attributed_to = APIActorRequest.from_dict(d.pop("attributed_to")) - id = d.pop("id") fid = d.pop("fid") @@ -172,6 +174,13 @@ class TrackRequest: copyright_ = d.pop("copyright") + _attributed_to = d.pop("attributed_to") + attributed_to: Optional[APIActorRequest] + if _attributed_to is None: + attributed_to = None + else: + attributed_to = APIActorRequest.from_dict(_attributed_to) + _cover = d.pop("cover") cover: Optional[CoverFieldRequest] if _cover is None: @@ -181,7 +190,6 @@ class TrackRequest: track_request = cls( artist=artist, - attributed_to=attributed_to, id=id, fid=fid, mbid=mbid, @@ -192,6 +200,7 @@ class TrackRequest: disc_number=disc_number, downloads_count=downloads_count, copyright_=copyright_, + attributed_to=attributed_to, cover=cover, ) diff --git a/funkwhale_api_client/models/upload_for_owner.py b/funkwhale_api_client/models/upload_for_owner.py index 3758fd37659892f52fbf806609233aade2f01913..92cd2588c752ba17166fec018507f2edb92e8950 100644 --- a/funkwhale_api_client/models/upload_for_owner.py +++ b/funkwhale_api_client/models/upload_for_owner.py @@ -4,10 +4,10 @@ from typing import Any, Dict, List, Optional, Type, TypeVar, Union import attr from dateutil.parser import isoparse +from ..models.import_status_enum import ImportStatusEnum from ..models.track import Track from ..models.upload_for_owner_import_details import UploadForOwnerImportDetails from ..models.upload_for_owner_import_metadata import UploadForOwnerImportMetadata -from ..models.upload_for_owner_import_status_enum import UploadForOwnerImportStatusEnum from ..models.upload_for_owner_metadata import UploadForOwnerMetadata from ..types import UNSET, Unset @@ -19,11 +19,10 @@ class UploadForOwner: """ Attributes: uuid (str): - filename (str): creation_date (datetime.datetime): import_details (UploadForOwnerImportDetails): metadata (UploadForOwnerMetadata): - audio_file (str): + filename (Union[Unset, str]): mimetype (Optional[str]): track (Union[Unset, None, Track]): library (Union[Unset, str]): @@ -32,27 +31,26 @@ class UploadForOwner: bitrate (Optional[int]): size (Optional[int]): import_date (Optional[datetime.datetime]): - import_status (Union[Unset, UploadForOwnerImportStatusEnum]): Default: UploadForOwnerImportStatusEnum.PENDING. + import_status (Union[Unset, ImportStatusEnum]): Default: ImportStatusEnum.PENDING. import_metadata (Union[Unset, UploadForOwnerImportMetadata]): import_reference (Union[Unset, str]): source (Union[Unset, None, str]): """ uuid: str - filename: str creation_date: datetime.datetime import_details: UploadForOwnerImportDetails metadata: UploadForOwnerMetadata - audio_file: str mimetype: Optional[str] duration: Optional[int] bitrate: Optional[int] size: Optional[int] import_date: Optional[datetime.datetime] + filename: Union[Unset, str] = UNSET track: Union[Unset, None, Track] = UNSET library: Union[Unset, str] = UNSET channel: Union[Unset, str] = UNSET - import_status: Union[Unset, UploadForOwnerImportStatusEnum] = UploadForOwnerImportStatusEnum.PENDING + import_status: Union[Unset, ImportStatusEnum] = ImportStatusEnum.PENDING import_metadata: Union[Unset, UploadForOwnerImportMetadata] = UNSET import_reference: Union[Unset, str] = UNSET source: Union[Unset, None, str] = UNSET @@ -60,14 +58,13 @@ class UploadForOwner: def to_dict(self) -> Dict[str, Any]: uuid = self.uuid - filename = self.filename creation_date = self.creation_date.isoformat() import_details = self.import_details.to_dict() metadata = self.metadata.to_dict() - audio_file = self.audio_file + filename = self.filename mimetype = self.mimetype track: Union[Unset, None, Dict[str, Any]] = UNSET if not isinstance(self.track, Unset): @@ -96,11 +93,9 @@ class UploadForOwner: field_dict.update( { "uuid": uuid, - "filename": filename, "creation_date": creation_date, "import_details": import_details, "metadata": metadata, - "audio_file": audio_file, "mimetype": mimetype, "duration": duration, "bitrate": bitrate, @@ -108,6 +103,8 @@ class UploadForOwner: "import_date": import_date, } ) + if filename is not UNSET: + field_dict["filename"] = filename if track is not UNSET: field_dict["track"] = track if library is not UNSET: @@ -130,15 +127,13 @@ class UploadForOwner: d = src_dict.copy() uuid = d.pop("uuid") - filename = d.pop("filename") - creation_date = isoparse(d.pop("creation_date")) import_details = UploadForOwnerImportDetails.from_dict(d.pop("import_details")) metadata = UploadForOwnerMetadata.from_dict(d.pop("metadata")) - audio_file = d.pop("audio_file") + filename = d.pop("filename", UNSET) mimetype = d.pop("mimetype") @@ -169,11 +164,11 @@ class UploadForOwner: import_date = isoparse(_import_date) _import_status = d.pop("import_status", UNSET) - import_status: Union[Unset, UploadForOwnerImportStatusEnum] + import_status: Union[Unset, ImportStatusEnum] if isinstance(_import_status, Unset): import_status = UNSET else: - import_status = UploadForOwnerImportStatusEnum(_import_status) + import_status = ImportStatusEnum(_import_status) _import_metadata = d.pop("import_metadata", UNSET) import_metadata: Union[Unset, UploadForOwnerImportMetadata] @@ -188,11 +183,10 @@ class UploadForOwner: upload_for_owner = cls( uuid=uuid, - filename=filename, creation_date=creation_date, import_details=import_details, metadata=metadata, - audio_file=audio_file, + filename=filename, mimetype=mimetype, track=track, library=library, diff --git a/funkwhale_api_client/models/upload_for_owner_import_status_enum.py b/funkwhale_api_client/models/upload_for_owner_import_status_enum.py deleted file mode 100644 index 573fb7762fdde4b4736c4645720c48a367d066fb..0000000000000000000000000000000000000000 --- a/funkwhale_api_client/models/upload_for_owner_import_status_enum.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - - -class UploadForOwnerImportStatusEnum(str, Enum): - DRAFT = "draft" - PENDING = "pending" - - def __str__(self) -> str: - return str(self.value) diff --git a/funkwhale_api_client/models/upload_for_owner_request.py b/funkwhale_api_client/models/upload_for_owner_request.py index b3e7a53f27e2f21e27710b4b2f83f48d9be15544..9db162ad60ad31d698e58c445c7f083ca96329ec 100644 --- a/funkwhale_api_client/models/upload_for_owner_request.py +++ b/funkwhale_api_client/models/upload_for_owner_request.py @@ -4,8 +4,8 @@ from typing import Any, Dict, List, Tuple, Type, TypeVar, Union import attr +from ..models.import_status_enum import ImportStatusEnum from ..models.track_request import TrackRequest -from ..models.upload_for_owner_import_status_enum import UploadForOwnerImportStatusEnum from ..models.upload_for_owner_request_import_metadata import UploadForOwnerRequestImportMetadata from ..types import UNSET, File, Unset @@ -17,20 +17,22 @@ class UploadForOwnerRequest: """ Attributes: audio_file (File): + filename (Union[Unset, str]): track (Union[Unset, None, TrackRequest]): library (Union[Unset, str]): channel (Union[Unset, str]): - import_status (Union[Unset, UploadForOwnerImportStatusEnum]): Default: UploadForOwnerImportStatusEnum.PENDING. + import_status (Union[Unset, ImportStatusEnum]): Default: ImportStatusEnum.PENDING. import_metadata (Union[Unset, UploadForOwnerRequestImportMetadata]): import_reference (Union[Unset, str]): source (Union[Unset, None, str]): """ audio_file: File + filename: Union[Unset, str] = UNSET track: Union[Unset, None, TrackRequest] = UNSET library: Union[Unset, str] = UNSET channel: Union[Unset, str] = UNSET - import_status: Union[Unset, UploadForOwnerImportStatusEnum] = UploadForOwnerImportStatusEnum.PENDING + import_status: Union[Unset, ImportStatusEnum] = ImportStatusEnum.PENDING import_metadata: Union[Unset, UploadForOwnerRequestImportMetadata] = UNSET import_reference: Union[Unset, str] = UNSET source: Union[Unset, None, str] = UNSET @@ -39,6 +41,7 @@ class UploadForOwnerRequest: def to_dict(self) -> Dict[str, Any]: audio_file = self.audio_file.to_tuple() + filename = self.filename track: Union[Unset, None, Dict[str, Any]] = UNSET if not isinstance(self.track, Unset): track = self.track.to_dict() if self.track else None @@ -63,6 +66,8 @@ class UploadForOwnerRequest: "audio_file": audio_file, } ) + if filename is not UNSET: + field_dict["filename"] = filename if track is not UNSET: field_dict["track"] = track if library is not UNSET: @@ -83,6 +88,9 @@ class UploadForOwnerRequest: def to_multipart(self) -> Dict[str, Any]: audio_file = self.audio_file.to_tuple() + filename = ( + self.filename if isinstance(self.filename, Unset) else (None, str(self.filename).encode(), "text/plain") + ) track: Union[Unset, Tuple[None, bytes, str]] = UNSET if not isinstance(self.track, Unset): track = (None, json.dumps(self.track.to_dict()).encode(), "application/json") if self.track else None @@ -113,6 +121,8 @@ class UploadForOwnerRequest: "audio_file": audio_file, } ) + if filename is not UNSET: + field_dict["filename"] = filename if track is not UNSET: field_dict["track"] = track if library is not UNSET: @@ -135,6 +145,8 @@ class UploadForOwnerRequest: d = src_dict.copy() audio_file = File(payload=BytesIO(d.pop("audio_file"))) + filename = d.pop("filename", UNSET) + _track = d.pop("track", UNSET) track: Union[Unset, None, TrackRequest] if _track is None: @@ -149,11 +161,11 @@ class UploadForOwnerRequest: channel = d.pop("channel", UNSET) _import_status = d.pop("import_status", UNSET) - import_status: Union[Unset, UploadForOwnerImportStatusEnum] + import_status: Union[Unset, ImportStatusEnum] if isinstance(_import_status, Unset): import_status = UNSET else: - import_status = UploadForOwnerImportStatusEnum(_import_status) + import_status = ImportStatusEnum(_import_status) _import_metadata = d.pop("import_metadata", UNSET) import_metadata: Union[Unset, UploadForOwnerRequestImportMetadata] @@ -168,6 +180,7 @@ class UploadForOwnerRequest: upload_for_owner_request = cls( audio_file=audio_file, + filename=filename, track=track, library=library, channel=channel, diff --git a/funkwhale_api_client/models/user_basic.py b/funkwhale_api_client/models/user_basic.py index 9a81e1df989ed7bdc09a9fc75595d6e14ca305ed..334352a3e837bd31b2eaa95b05ff32d15aeaafb4 100644 --- a/funkwhale_api_client/models/user_basic.py +++ b/funkwhale_api_client/models/user_basic.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Dict, List, Type, TypeVar, Union +from typing import Any, Dict, List, Optional, Type, TypeVar, Union import attr from dateutil.parser import isoparse @@ -16,14 +16,14 @@ class UserBasic: Attributes: id (int): username (str): Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. - avatar (Attachment): name (Union[Unset, str]): date_joined (Union[Unset, datetime.datetime]): + avatar (Optional[Attachment]): """ id: int username: str - avatar: Attachment + avatar: Optional[Attachment] name: Union[Unset, str] = UNSET date_joined: Union[Unset, datetime.datetime] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) @@ -31,13 +31,13 @@ class UserBasic: def to_dict(self) -> Dict[str, Any]: id = self.id username = self.username - avatar = self.avatar.to_dict() - name = self.name date_joined: Union[Unset, str] = UNSET if not isinstance(self.date_joined, Unset): date_joined = self.date_joined.isoformat() + avatar = self.avatar.to_dict() if self.avatar else None + field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -61,8 +61,6 @@ class UserBasic: username = d.pop("username") - avatar = Attachment.from_dict(d.pop("avatar")) - name = d.pop("name", UNSET) _date_joined = d.pop("date_joined", UNSET) @@ -72,12 +70,19 @@ class UserBasic: else: date_joined = isoparse(_date_joined) + _avatar = d.pop("avatar") + avatar: Optional[Attachment] + if _avatar is None: + avatar = None + else: + avatar = Attachment.from_dict(_avatar) + user_basic = cls( id=id, username=username, - avatar=avatar, name=name, date_joined=date_joined, + avatar=avatar, ) user_basic.additional_properties = d diff --git a/funkwhale_api_client/models/user_basic_request.py b/funkwhale_api_client/models/user_basic_request.py index 4af845900bbe47311b192eece945b49be33033fc..353ce7bbb978a99bb0a3d1ed7254ec95a0474fff 100644 --- a/funkwhale_api_client/models/user_basic_request.py +++ b/funkwhale_api_client/models/user_basic_request.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Dict, List, Type, TypeVar, Union +from typing import Any, Dict, List, Optional, Type, TypeVar, Union import attr from dateutil.parser import isoparse @@ -15,26 +15,26 @@ class UserBasicRequest: """ Attributes: username (str): Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. - avatar (AttachmentRequest): name (Union[Unset, str]): date_joined (Union[Unset, datetime.datetime]): + avatar (Optional[AttachmentRequest]): """ username: str - avatar: AttachmentRequest + avatar: Optional[AttachmentRequest] name: Union[Unset, str] = UNSET date_joined: Union[Unset, datetime.datetime] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: username = self.username - avatar = self.avatar.to_dict() - name = self.name date_joined: Union[Unset, str] = UNSET if not isinstance(self.date_joined, Unset): date_joined = self.date_joined.isoformat() + avatar = self.avatar.to_dict() if self.avatar else None + field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -55,8 +55,6 @@ class UserBasicRequest: d = src_dict.copy() username = d.pop("username") - avatar = AttachmentRequest.from_dict(d.pop("avatar")) - name = d.pop("name", UNSET) _date_joined = d.pop("date_joined", UNSET) @@ -66,11 +64,18 @@ class UserBasicRequest: else: date_joined = isoparse(_date_joined) + _avatar = d.pop("avatar") + avatar: Optional[AttachmentRequest] + if _avatar is None: + avatar = None + else: + avatar = AttachmentRequest.from_dict(_avatar) + user_basic_request = cls( username=username, - avatar=avatar, name=name, date_joined=date_joined, + avatar=avatar, ) user_basic_request.additional_properties = d diff --git a/report.xml b/report.xml new file mode 100644 index 0000000000000000000000000000000000000000..71561af50eb7e03ab324586966df2ad7f190be42 --- /dev/null +++ b/report.xml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="1" time="1.103" timestamp="2022-09-23T13:41:08.402445" hostname="georg-blueshoe"><testcase classname="tests.unit.test_model_paginated_album_list" name="test_PaginatedAlbumList" time="0.008" /></testsuite></testsuites> \ No newline at end of file diff --git a/report.yml b/report.yml new file mode 100644 index 0000000000000000000000000000000000000000..c604f4987ce14314e0f2cef35d443632f7efaeb9 --- /dev/null +++ b/report.yml @@ -0,0 +1 @@ +<?xml version="1.0" encoding="utf-8"?><testsuites><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="5" time="4.288" timestamp="2022-09-23T13:20:44.947937" hostname="georg-blueshoe"><testcase classname="tests.integration.test_activity" name="test_activity_list" time="0.274" /><testcase classname="tests.integration.test_albums" name="test_album_list" time="1.134" /><testcase classname="tests.integration.test_albums" name="test_album_retrieve" time="0.254" /><testcase classname="tests.integration.test_artists" name="test_artist_list" time="0.732" /><testcase classname="tests.unit.test_model_paginated_album_list" name="test_PaginatedAlbumList" time="0.008" /></testsuite></testsuites> \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index 1210010fd1235248e54391d5050111f14b54aea8..139597f9cb07c5d48bed18984ec4747f4b4f3438 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,2 @@ -import pytest diff --git a/tests/data/activity/activity.json b/tests/data/activity/activity.json new file mode 100644 index 0000000000000000000000000000000000000000..a76e56ad426dacb14cbf0d7aff5b48d49db90cdf --- /dev/null +++ b/tests/data/activity/activity.json @@ -0,0 +1,404 @@ +{ + "results": [ + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16823", + "local_id": 16823, + "object": { + "id": "https://musicbrainz.org/recording/214ce946-d76b-4377-b8a1-60b891abf0dd", + "local_id": 902, + "name": "Glitzer im Gesicht", + "type": "Audio", + "artist": "Feine Sahne Fischfilet", + "album": "Bleiben oder Gehen" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T12:25:59.907552Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16822", + "local_id": 16822, + "object": { + "id": "https://musicbrainz.org/recording/e7ea9322-fd6a-4ac2-b95f-090cffbf996b", + "local_id": 47914, + "name": "7th Sevens", + "type": "Audio", + "artist": "Bonobo", + "album": "Migration" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T12:05:31.840892Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16821", + "local_id": 16821, + "object": { + "id": "https://musicbrainz.org/recording/caec11c5-4ed2-4a8e-8d9b-779336221814", + "local_id": 160859, + "name": "The Secret of Monkey Island Bonus", + "type": "Audio", + "artist": "Klezwerk", + "album": "klezWerk n°1" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T12:00:06.277383Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16820", + "local_id": 16820, + "object": { + "id": "https://musicbrainz.org/recording/1d1f5b79-84d9-40b6-b7f9-f1d93bc8a0a8", + "local_id": 47679, + "name": "In Dunkelhaft", + "type": "Audio", + "artist": "Turbostaat", + "album": "Stadt der Angst" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:55:32.724733Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16819", + "local_id": 16819, + "object": { + "id": "https://musicbrainz.org/recording/c9f61414-8ee6-47aa-ab33-4b28f3382092", + "local_id": 48691, + "name": "God Wanna", + "type": "Audio", + "artist": "Everlast", + "album": "White Trash Beautiful" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:51:37.340745Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16818", + "local_id": 16818, + "object": { + "id": "https://soundship.de/tracks/78829", + "local_id": 78829, + "name": "Tennen", + "type": "Audio", + "artist": "Hania Rani", + "album": "Home" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:46:20.051432Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16817", + "local_id": 16817, + "object": { + "id": "https://musicbrainz.org/recording/c2f19c14-44b1-4f07-9518-726d85f2045e", + "local_id": 48469, + "name": "Fönky II", + "type": "Audio", + "artist": "Äl Jawala", + "album": "Lost in Manele" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:40:06.736634Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16816", + "local_id": 16816, + "object": { + "id": "https://musicbrainz.org/recording/59b89503-9f4e-4c6b-810b-850fb660cf69", + "local_id": 537, + "name": "Hurra", + "type": "Audio", + "artist": "Die Ärzte", + "album": "Planet Punk" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:35:14.190489Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16815", + "local_id": 16815, + "object": { + "id": "https://musicbrainz.org/recording/a1a71d5b-b260-4f16-987b-062b4a3b1f59", + "local_id": 974, + "name": "Halo", + "type": "Audio", + "artist": "Foo Fighters", + "album": "One by One" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:30:57.260308Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16814", + "local_id": 16814, + "object": { + "id": "https://soundship.de/tracks/39344", + "local_id": 39344, + "name": ")", + "type": "Audio", + "artist": "Welten", + "album": "Akureyri" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:25:08.581751Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16813", + "local_id": 16813, + "object": { + "id": "https://musicbrainz.org/recording/6d2318f0-48d0-476a-8a8a-37fa35eb1540", + "local_id": 48321, + "name": "Mann oder Maus", + "type": "Audio", + "artist": "Blumentopf", + "album": "Großes Kino" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:19:56.185411Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16812", + "local_id": 16812, + "object": { + "id": "https://musicbrainz.org/recording/8907940a-9e26-4100-9521-1395c1296eea", + "local_id": 379, + "name": "Und ich weine", + "type": "Audio", + "artist": "Die Ärzte", + "album": "Das Beste von kurz nach früher bis jetze" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:16:24.683272Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16811", + "local_id": 16811, + "object": { + "id": "https://musicbrainz.org/recording/23b68698-b08d-49fb-af11-0bf16cc4e86c", + "local_id": 838, + "name": "Dusche", + "type": "Audio", + "artist": "Farin Urlaub Racing Team", + "album": "Livealbum of Death" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:12:49.005169Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16810", + "local_id": 16810, + "object": { + "id": "https://musicbrainz.org/recording/dbad82dc-471e-42d3-99c8-a35867ca9d69", + "local_id": 46615, + "name": "Little Lies", + "type": "Audio", + "artist": "Tarja", + "album": "What Lies Beneath" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:08:25.296903Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16809", + "local_id": 16809, + "object": { + "id": "https://musicbrainz.org/recording/25e4dddd-e5b1-412c-8b27-41a1b0b4aebf", + "local_id": 1009, + "name": "Walk", + "type": "Audio", + "artist": "Foo Fighters", + "album": "Wasting Light" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:03:56.717934Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16808", + "local_id": 16808, + "object": { + "id": "https://musicbrainz.org/recording/4f82ee38-59a6-42ac-b440-665f56c9c66e", + "local_id": 353, + "name": "Hörtnichauf", + "type": "Audio", + "artist": "Dendemann", + "album": "Die Pfütze des Eisbergs" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T11:00:07.403741Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16807", + "local_id": 16807, + "object": { + "id": "https://soundship.de/tracks/49106", + "local_id": 49106, + "name": "Beneath The Waves", + "type": "Audio", + "artist": "MABUTA", + "album": "Welcome To This World" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T10:55:53.526562Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16806", + "local_id": 16806, + "object": { + "id": "https://musicbrainz.org/recording/78e3e166-aa2b-47ba-899e-86e757851ad2", + "local_id": 47726, + "name": "Pennen bei Glufke", + "type": "Audio", + "artist": "Turbostaat", + "album": "Das Island Manöver" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T10:50:56.842954Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16805", + "local_id": 16805, + "object": { + "id": "https://musicbrainz.org/recording/f14d3444-2d90-47df-97f0-41c08bdee28d", + "local_id": 651, + "name": "Stepdad (intro)", + "type": "Audio", + "artist": "Eminem", + "album": "Music to Be Murdered By" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T10:45:11.732226Z" + }, + { + "id": "https://soundship.de/@gcrkrause/listenings/tracks/16804", + "local_id": 16804, + "object": { + "id": "https://musicbrainz.org/recording/f16c3222-5510-4c3d-b0f1-a479e8fdae2f", + "local_id": 78855, + "name": "Aprilfeesten", + "type": "Audio", + "artist": "Amsterdam Klezmer Band", + "album": "Son" + }, + "type": "Listen", + "actor": { + "id": "https://soundship.de/@gcrkrause", + "local_id": "gcrkrause", + "name": "gcrkrause", + "type": "Person" + }, + "published": "2022-09-23T10:43:19.292620Z" + } + ] +} \ No newline at end of file diff --git a/tests/data/albums/album.json b/tests/data/albums/album.json new file mode 100644 index 0000000000000000000000000000000000000000..9c311d27693d86df5d20b7bc4f90e74207343438 --- /dev/null +++ b/tests/data/albums/album.json @@ -0,0 +1,50 @@ +{ + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133344Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e739177685f2713a62adece4fc40b4e1b14fea5b581aa28fcc4d67b15cef547b", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133344Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7b04ee5301fbf0f5307148041af5e600559b21f613288048acaad485d801d39a", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133344Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c034a29e2159c126900e0314838c2ffb0523c709b4f3a18f84a118fbba631368" + } + }, + "is_playable": false, + "tags": [], + "tracks_count": 15, + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "duration": 0, + "description": null +} \ No newline at end of file diff --git a/tests/data/albums.json b/tests/data/albums/paginated_album_list.json similarity index 100% rename from tests/data/albums.json rename to tests/data/albums/paginated_album_list.json diff --git a/tests/data/artists/artist_with_albums.json b/tests/data/artists/artist_with_albums.json new file mode 100644 index 0000000000000000000000000000000000000000..037d09e2fe15eaf2093ba8a886aaea7fa9af73f9 --- /dev/null +++ b/tests/data/artists/artist_with_albums.json @@ -0,0 +1,54 @@ +{ + "cover": null, + "albums": [ + { + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133737Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=df7445bbe5e75c0095d2d59385e497276e7ad0c182d14801a88bfa80309322e7", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133737Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b6b76cb1d38eb3c0bb2ae586d76a4046de6c61e24a7578dba4eb1a2d2b8ad0ab", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133737Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2607e8ffb71e3f7c8a013761f495ef6ec428e9dc0eada6b70d24fc828bd5c531" + } + }, + "tracks_count": 15, + "is_playable": false, + "is_local": true, + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": 8315, + "release_date": "2022-09-19", + "creation_date": "2022-09-23T11:49:48.540064Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "channel": null, + "tracks_count": 15, + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "content_category": "music", + "creation_date": "2022-09-23T11:49:48.514365Z", + "is_local": true, + "description": null +} \ No newline at end of file diff --git a/tests/data/artists/paginated_artist_with_albums_list.json b/tests/data/artists/paginated_artist_with_albums_list.json new file mode 100644 index 0000000000000000000000000000000000000000..97257716c8b9438a3655a4cea156853bfe55d0d7 --- /dev/null +++ b/tests/data/artists/paginated_artist_with_albums_list.json @@ -0,0 +1,2130 @@ +{ + "count": 8023, + "next": "https://soundship.de/api/v1/artists?page=2", + "previous": null, + "results": [ + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=68b3616f58c4df96b3ea8fa4d14d33404307c20bee58df665f5c196209de869f", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7d79c778d5dcaa8102312086befeaae05510d2a3662e7267243b78770868bafe", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6d54f17ae165c77df96e9c2322f87b019e0f362ad9a4ce20187b01066e0f142b" + } + }, + "tracks_count": 15, + "is_playable": false, + "is_local": true, + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": 8315, + "release_date": "2022-09-19", + "creation_date": "2022-09-23T11:49:48.540064Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "channel": null, + "tracks_count": 15, + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "content_category": "music", + "creation_date": "2022-09-23T11:49:48.514365Z", + "is_local": true + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b1c9e9038cee0e06dbcb52da41485050b1c3088cda70d92be0ab8592c9560e37", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9015a4ada83f72992a74c64f679834d17151858b7c3e87b0e4b1c069aff142f7", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a4f5bad756aaf0b7fed1c57da0c455fe27c076dd7b2ecaf8d36589881571124a" + } + }, + "tracks_count": 15, + "is_playable": false, + "is_local": true, + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": 8314, + "release_date": "2022-01-01", + "creation_date": "2022-09-23T06:09:32.049042Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "channel": null, + "tracks_count": 15, + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": null, + "name": "Klezwerk", + "content_category": "music", + "creation_date": "2022-09-23T06:09:32.021091Z", + "is_local": true + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "46fcee7f-c32f-4917-9217-bac3a49b5e69", + "size": 119566, + "mimetype": "image/jpeg", + "creation_date": "2022-09-13T06:21:37.810750Z", + "urls": { + "source": "https://music.humanoids.be/media/attachments/89/5b/c8/attachment_cover-2707e340-7fb6-4825-83d4-399fdec1582d.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/1c/dd/b0/ent_cover-2707e340-7fb6-4825-83d4-399fdec1582d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4837645238df64d9a78bc3ec766c5291e5c1ad2e7192d3612bca7fd710a213e6", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1c/dd/b0/ent_cover-2707e340-7fb6-4825-83d4-399fdec1582d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8085e88a635018dd300386a0715f2679862f977dfab0e124d250921439fe20fa", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1c/dd/b0/ent_cover-2707e340-7fb6-4825-83d4-399fdec1582d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7b8df840c269015ef0019e4584e08880e8034e3b073e9ca042a16756891711cd" + } + }, + "tracks_count": 1, + "is_playable": true, + "is_local": false, + "id": 8546, + "fid": "https://music.humanoids.be/federation/music/albums/2707e340-7fb6-4825-83d4-399fdec1582d", + "mbid": null, + "title": "January 28, 1986 - Single", + "artist": 8313, + "release_date": "2012-03-14", + "creation_date": "2020-04-24T00:59:27.290735Z" + }, + { + "cover": { + "uuid": "271fcec5-ef18-4d34-9c4b-a1b86cd88b34", + "size": 52016, + "mimetype": "image/jpeg", + "creation_date": "2022-09-13T06:21:36.941011Z", + "urls": { + "source": "https://music.humanoids.be/media/attachments/c7/ce/e8/attachment_cover-cfea17d8-b92b-4ceb-a1a6-941101476d8c.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/9b/d2/6c/ent_cover-cfea17d8-b92b-4ceb-a1a6-941101476d8c.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8153df054aa67b2de34a18bfe3ec810a3530f35b249a025dba06c702d71a2c7d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/9b/d2/6c/ent_cover-cfea17d8-b92b-4ceb-a1a6-941101476d8c-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fee5d3fca1f3b3ed02113ae4bfb84d5008e68b1eb52557d1b26785a86e1c0065", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/9b/d2/6c/ent_cover-cfea17d8-b92b-4ceb-a1a6-941101476d8c-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fcf3bd49119363879eeafc2abe44ef87de7fc207df8a3ea74d0e9ef5185d0259" + } + }, + "tracks_count": 3, + "is_playable": true, + "is_local": false, + "id": 8544, + "fid": "https://music.humanoids.be/federation/music/albums/cfea17d8-b92b-4ceb-a1a6-941101476d8c", + "mbid": null, + "title": "The New Times EP", + "artist": 8313, + "release_date": "2015-08-21", + "creation_date": "2020-04-24T00:59:33.232372Z" + }, + { + "cover": { + "uuid": "cdceb4d1-a1be-4228-8ab4-fca23c2b3e65", + "size": 61071, + "mimetype": "image/jpeg", + "creation_date": "2022-09-13T06:21:37.607772Z", + "urls": { + "source": "https://music.humanoids.be/media/attachments/e5/4d/8e/attachment_cover-9c594d10-4680-483c-aff4-453265a15e49.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/36/59/57/ent_cover-9c594d10-4680-483c-aff4-453265a15e49.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c0b72f6ef3b87ac7bdc2c8b11a074c91c15a3a035fa347352320dae16f8dcf63", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/59/57/ent_cover-9c594d10-4680-483c-aff4-453265a15e49-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4251b19dec795eddab5b13fa312acc25ef2b43a0627800d1e596641c68bf7525", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/59/57/ent_cover-9c594d10-4680-483c-aff4-453265a15e49-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133716Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1ceecdee0dafb773cce1eb95de850cfabe90228cef5182c7011a734b7d5eacc0" + } + }, + "tracks_count": 1, + "is_playable": true, + "is_local": false, + "id": 8545, + "fid": "https://music.humanoids.be/federation/music/albums/9c594d10-4680-483c-aff4-453265a15e49", + "mbid": null, + "title": "Praylor - Single", + "artist": 8313, + "release_date": "2012-03-14", + "creation_date": "2020-04-24T00:59:30.474473Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://music.humanoids.be/federation/actors/martin", + "url": "https://music.humanoids.be/@martin", + "creation_date": "2022-09-13T06:21:01.833041Z", + "summary": null, + "preferred_username": "martin", + "name": "martin", + "last_fetch_date": "2022-09-13T06:21:37.762773Z", + "domain": "music.humanoids.be", + "type": "Person", + "manually_approves_followers": false, + "full_username": "martin@music.humanoids.be", + "is_local": false + }, + "channel": null, + "tracks_count": 5, + "id": 8313, + "fid": "https://music.humanoids.be/federation/music/artists/3aea1f4c-b43b-48e2-b307-280120a8a6d2", + "mbid": null, + "name": "Jason Efstathiou", + "content_category": "music", + "creation_date": "2020-04-13T11:01:53.020791Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "4cd72a97-15ad-4478-9d70-1853047c859d", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-13T06:21:35.343918Z", + "urls": { + "source": "https://music.humanoids.be/media/attachments/6c/e4/6f/attachment_cover-3f5073db-c85e-4395-ad5d-8f7bb0987f2c.jpg", + "original": "https://soundship.de/api/v1/attachments/4cd72a97-15ad-4478-9d70-1853047c859d/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/4cd72a97-15ad-4478-9d70-1853047c859d/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/4cd72a97-15ad-4478-9d70-1853047c859d/proxy?next=large_square_crop" + } + }, + "tracks_count": 6, + "is_playable": true, + "is_local": false, + "id": 8543, + "fid": "https://music.humanoids.be/federation/music/albums/3f5073db-c85e-4395-ad5d-8f7bb0987f2c", + "mbid": null, + "title": "Tributes One", + "artist": 8312, + "release_date": "2014-05-15", + "creation_date": "2020-04-24T00:59:47.160439Z" + }, + { + "cover": { + "uuid": "0d72d3be-024b-49b2-b381-ca6b63df3dfb", + "size": 71646, + "mimetype": "image/jpeg", + "creation_date": "2022-09-13T06:21:34.935211Z", + "urls": { + "source": "https://music.humanoids.be/media/attachments/d0/7c/cd/attachment_cover-af015625-12c9-4fbb-9fa8-e8e2baef320b.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/78/32/31/ent_cover-af015625-12c9-4fbb-9fa8-e8e2baef320b.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=97266a48cee47afb3dca170c58c7ac1e240fedfd141651d636afa675e184d85e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/78/32/31/ent_cover-af015625-12c9-4fbb-9fa8-e8e2baef320b-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=58ee60b3ef56567974d7b8ada91ffd3651ea1e32beceeeca20762beed3acf4fa", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/78/32/31/ent_cover-af015625-12c9-4fbb-9fa8-e8e2baef320b-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a1dafbf8ecc82022c46ce743850110a1c66675c823b8758e0cc63fc045c315f9" + } + }, + "tracks_count": 1, + "is_playable": true, + "is_local": false, + "id": 8542, + "fid": "https://music.humanoids.be/federation/music/albums/af015625-12c9-4fbb-9fa8-e8e2baef320b", + "mbid": null, + "title": "Tributes Two", + "artist": 8312, + "release_date": "2015-09-11", + "creation_date": "2020-04-24T01:00:15.271876Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://music.humanoids.be/federation/actors/martin", + "url": "https://music.humanoids.be/@martin", + "creation_date": "2022-09-13T06:21:01.833041Z", + "summary": null, + "preferred_username": "martin", + "name": "martin", + "last_fetch_date": "2022-09-13T06:21:37.762773Z", + "domain": "music.humanoids.be", + "type": "Person", + "manually_approves_followers": false, + "full_username": "martin@music.humanoids.be", + "is_local": false + }, + "channel": null, + "tracks_count": 7, + "id": 8312, + "fid": "https://music.humanoids.be/federation/music/artists/2710bb80-2024-4e1a-a234-98317874fbf0", + "mbid": null, + "name": "EspantoMusic", + "content_category": "music", + "creation_date": "2020-04-13T11:01:13.636409Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8308, + "fid": "https://zik.canevas.eu/federation/music/artists/f0e6e2e0-5a6d-4176-beac-558f27b325f6", + "mbid": null, + "name": "Jeremy Soule/Mark Lampert", + "content_category": "music", + "creation_date": "2022-09-02T23:56:01.907544Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=de3c4574f02893bdcbb5144b53dc588cecf23fb17cd07ab2b680ce262accda78", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=85aac60f2b853179daede857366905445b945ff169ec67cc3bcbcc926c19dc18", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=832d7087c41235ef2664220b1c15a131b6c9a3d96b6fb6d0d776d086a9e15217" + } + }, + "tracks_count": 53, + "is_playable": true, + "is_local": false, + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": 8307, + "release_date": "2011-11-11", + "creation_date": "2022-09-02T23:45:11.792202Z" + }, + { + "cover": { + "uuid": "33bcd01a-8b34-4375-b595-8792f98c4023", + "size": 38957, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:14:28.208630Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/cb/91/7b/attachment_cover-2582bef0-149d-4168-8458-f087fbbdca2d.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/25/75/c1/ent_cover-2582bef0-149d-4168-8458-f087fbbdca2d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d29bbae9ddf46da0683be5c760a64ec930b11f1c2ff20638541384d6da7389ef", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/25/75/c1/ent_cover-2582bef0-149d-4168-8458-f087fbbdca2d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=52bcb94a3b875bc687a36ab9eefdb614d47116d8604cfe33444e889d323c5978", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/25/75/c1/ent_cover-2582bef0-149d-4168-8458-f087fbbdca2d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fad9dcd9e4f7b194a7f4b54108a8b3768e9fdb5e9b5e0834e333e3a9afe60dbb" + } + }, + "tracks_count": 21, + "is_playable": true, + "is_local": false, + "id": 8538, + "fid": "https://zik.canevas.eu/federation/music/albums/2582bef0-149d-4168-8458-f087fbbdca2d", + "mbid": "af8e2ec4-1d0e-4e19-9cab-97178f500078", + "title": "The Elder Scrolls III: Morrowind", + "artist": 8307, + "release_date": "2006-01-01", + "creation_date": "2022-09-02T23:43:32.862745Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 73, + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "content_category": "music", + "creation_date": "2022-09-02T23:43:32.823692Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "da61a074-53bd-41d4-b133-87b046a15f97", + "size": 771048, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:11:27.336825Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/55/df/65/attachment_cover-204bdcc8-9eb0-439b-94f1-9c776cfd6846.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/44/31/6e/ent_cover-204bdcc8-9eb0-439b-94f1-9c776cfd6846.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e1b64d5abee15e326eab2eecedf769ba856fcbf754cf437839e7f2a3f67f720b", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/44/31/6e/ent_cover-204bdcc8-9eb0-439b-94f1-9c776cfd6846-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c5e7022aa36893b7441e0b9249633a458fd4cb44bfe76872a3fd65c06871934d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/44/31/6e/ent_cover-204bdcc8-9eb0-439b-94f1-9c776cfd6846-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ea8c29fba16b7cf185bb746042d0a526dfee8cd4d0fdacbcb14aaf779d690dcf" + } + }, + "tracks_count": 4, + "is_playable": true, + "is_local": false, + "id": 8537, + "fid": "https://zik.canevas.eu/federation/music/albums/204bdcc8-9eb0-439b-94f1-9c776cfd6846", + "mbid": "771800ae-d717-49f8-afe8-b12975fdf57c", + "title": "Mass Effect 2: Kasumi's Stolen Memory", + "artist": 8306, + "release_date": "2010-11-30", + "creation_date": "2022-09-02T23:43:01.067492Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 4, + "id": 8306, + "fid": "https://zik.canevas.eu/federation/music/artists/98ba0a05-d0b8-474a-9af3-7cf412428934", + "mbid": null, + "name": "Cris Velasco/Sascha Dikiciyan", + "content_category": "music", + "creation_date": "2022-09-02T23:43:01.028104Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 4, + "id": 8305, + "fid": "https://zik.canevas.eu/federation/music/artists/285d1a5c-e05e-45ba-a95f-2efc4ddf100d", + "mbid": null, + "name": "Jack Wall/David Kates", + "content_category": "music", + "creation_date": "2022-09-02T23:41:15.420727Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 5, + "id": 8304, + "fid": "https://zik.canevas.eu/federation/music/artists/119bf8d9-a5d3-4e81-957e-51cce0b5a10d", + "mbid": null, + "name": "Jack Wall/Jimmy Hinson", + "content_category": "music", + "creation_date": "2022-09-02T23:41:11.173467Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8303, + "fid": "https://zik.canevas.eu/federation/music/artists/a1c1c974-8b25-4172-8aa4-5f5ab4f96799", + "mbid": "9aae9381-7d0f-449a-be59-2c004d668052", + "name": "Faunts", + "content_category": "music", + "creation_date": "2022-09-02T23:40:57.057318Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 2, + "id": 8302, + "fid": "https://zik.canevas.eu/federation/music/artists/2a03f468-49f7-43c4-bacb-ebf5567a0e76", + "mbid": null, + "name": "David Kates/Jack Wall/Sam Hulick", + "content_category": "music", + "creation_date": "2022-09-02T23:40:51.660788Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8301, + "fid": "https://zik.canevas.eu/federation/music/artists/3d5f110d-0121-4aaa-8467-3b94862068d6", + "mbid": null, + "name": "Sam Hulick/Jack Wall", + "content_category": "music", + "creation_date": "2022-09-02T23:40:49.739991Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 4, + "id": 8300, + "fid": "https://zik.canevas.eu/federation/music/artists/3a60d546-25bf-462b-a251-e3e02efccc48", + "mbid": null, + "name": "Richard Jacques/Jack Wall/Sam Hulick", + "content_category": "music", + "creation_date": "2022-09-02T23:39:05.006128Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "a0b6b387-a659-44f0-ab8c-69b5826449a9", + "size": 23039, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T01:52:42.174932Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/9a/00/70/attachment_cover-be7c2a63-11b7-4409-8b68-4e6b782fda75.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b8/87/88/ent_cover-be7c2a63-11b7-4409-8b68-4e6b782fda75.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5c00a254d2d2236d24ddd35daef1add606dec953dc6e289c0b53ddfcf898ad8e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b8/87/88/ent_cover-be7c2a63-11b7-4409-8b68-4e6b782fda75-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2f636adeb04461ea1c695b910d0a56675433f4020e3a97a3f7aaee647a18c1aa", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b8/87/88/ent_cover-be7c2a63-11b7-4409-8b68-4e6b782fda75-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cfd0dca3afd7b333f3b02346da8f0fd483ae11df9610854c77005a2dde24ca16" + } + }, + "tracks_count": 27, + "is_playable": true, + "is_local": false, + "id": 8536, + "fid": "https://zik.canevas.eu/federation/music/albums/be7c2a63-11b7-4409-8b68-4e6b782fda75", + "mbid": "b339c189-5a98-4f39-bc29-1d4c12aa5194", + "title": "Mass Effect 2 (Original Soundtrack)", + "artist": 8299, + "release_date": "2020-06-26", + "creation_date": "2022-09-02T23:40:58.499888Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 28, + "id": 8299, + "fid": "https://zik.canevas.eu/federation/music/artists/3d72e0d8-1001-4272-9c12-17772fdd74d8", + "mbid": "a173a2b0-a6c0-403b-911a-1d01c82918a6", + "name": "Jack Wall", + "content_category": "music", + "creation_date": "2022-09-02T23:39:00.936858Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 10, + "id": 8298, + "fid": "https://zik.canevas.eu/federation/music/artists/9ac7362d-9ab9-4f0e-a61a-104f604ffc92", + "mbid": "2b37e5d2-6b66-4c97-b7c4-7f2bbc718b1f", + "name": "Sam Hulick", + "content_category": "music", + "creation_date": "2022-09-02T23:38:57.514340Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "583fba9e-36b1-438c-9411-cdd3951af2fa", + "size": 46374, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T01:27:16.968002Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/0e/3e/c9/attachment_cover-d71abd20-a427-4da8-9457-00f6aaec0652.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/3e/cc/65/ent_cover-d71abd20-a427-4da8-9457-00f6aaec0652.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f182be87246eda9c9537528f5c515638ffb484215a4e1fd75bf0d7be2aae649f", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3e/cc/65/ent_cover-d71abd20-a427-4da8-9457-00f6aaec0652-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cca43112399e889739fd3e6e1e8afeee6edc6b74ad99fbd3077763f100d4c809", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3e/cc/65/ent_cover-d71abd20-a427-4da8-9457-00f6aaec0652-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6737cc3b7ac76439aa750b4427d36355f90cfe4de256a2ce857636f61e6680e0" + } + }, + "tracks_count": 37, + "is_playable": true, + "is_local": false, + "id": 8535, + "fid": "https://zik.canevas.eu/federation/music/albums/d71abd20-a427-4da8-9457-00f6aaec0652", + "mbid": "f158b583-b600-4cc7-8b4a-aa2322d87360", + "title": "Mass Effect", + "artist": 8297, + "release_date": "2007-11-20", + "creation_date": "2022-09-02T23:38:55.872719Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 9, + "id": 8297, + "fid": "https://zik.canevas.eu/federation/music/artists/a6e723fc-705c-4fe8-a39d-96777112a244", + "mbid": null, + "name": "Jack Wall/Sam Hulick", + "content_category": "music", + "creation_date": "2022-09-02T23:38:55.833909Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "3c4812bc-d164-4391-9efe-0bcb3a22a2ac", + "size": 483013, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T01:19:24.812005Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/89/69/65/attachment_cover-5741eb4e-77cb-408a-a7ed-5645e639810e.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/1e/1d/a6/ent_cover-5741eb4e-77cb-408a-a7ed-5645e639810e.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=92c186a7731a9eecdad64c65dd0e06df93b49a4c439f6ffb96933879347d780a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1e/1d/a6/ent_cover-5741eb4e-77cb-408a-a7ed-5645e639810e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=bab9610446444e7f39fe17496a2cf681973a26b337546b116ff99527467ea7de", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1e/1d/a6/ent_cover-5741eb4e-77cb-408a-a7ed-5645e639810e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5a454b55813526063f2dfd3f3fde8037db12f3555b7a86f032312e3397ae5737" + } + }, + "tracks_count": 10, + "is_playable": true, + "is_local": false, + "id": 8534, + "fid": "https://zik.canevas.eu/federation/music/albums/5741eb4e-77cb-408a-a7ed-5645e639810e", + "mbid": "b1000315-c147-47f1-b3f7-969c47ec5057", + "title": "Light Years", + "artist": 8296, + "release_date": "2013-06-22", + "creation_date": "2022-09-02T23:37:25.376978Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 10, + "id": 8296, + "fid": "https://zik.canevas.eu/federation/music/artists/2d91233e-ce3a-4047-97b5-0f3131344a54", + "mbid": "8208d8f9-61b6-47f2-90c0-2680dadd56a8", + "name": "Stellardrone", + "content_category": "music", + "creation_date": "2022-09-02T23:37:25.335141Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "8feee025-b5fb-4bc1-9880-33daaff6a7e1", + "size": 37537, + "mimetype": "image/jpg", + "creation_date": "2022-09-03T01:07:41.721145Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/3f/c7/89/attachment_cover-0c710491-96ce-4ef0-b0c7-7c88f990fb76.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/dc/cf/5f/ent_cover-0c710491-96ce-4ef0-b0c7-7c88f990fb76.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4af2cf8425f542eb47b3c2ed41c1785a8efb71eda0e77c613d06a59cafac5167", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/dc/cf/5f/ent_cover-0c710491-96ce-4ef0-b0c7-7c88f990fb76-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ab2d7bb07ea5f53bb47e5d00d6f9773d1877275a587339b3a276d169a286b78f", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/dc/cf/5f/ent_cover-0c710491-96ce-4ef0-b0c7-7c88f990fb76-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b415efb0f2294b9f2b616b89f2364dce8299566fd5b08092815031fceccaf8bc" + } + }, + "tracks_count": 8, + "is_playable": true, + "is_local": false, + "id": 8532, + "fid": "https://zik.canevas.eu/federation/music/albums/0c710491-96ce-4ef0-b0c7-7c88f990fb76", + "mbid": "27ab7075-3512-4c05-b830-441c279f7c1c", + "title": "Jazz Impressions of Japan", + "artist": 8295, + "release_date": "2001-04-10", + "creation_date": "2022-09-02T23:34:00.195198Z" + }, + { + "cover": { + "uuid": "4f2ee801-a5e8-4ce8-8fea-20bcc25c8688", + "size": 2406974, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T01:13:58.701511Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/41/5b/58/attachment_cover-5c114b1d-f7c6-42c6-92f1-504f57f89c8f.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/97/87/32/ent_cover-5c114b1d-f7c6-42c6-92f1-504f57f89c8f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=824fc021a0920a108907859980d0032162bb321bd79e1545b80698221be77001", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/97/87/32/ent_cover-5c114b1d-f7c6-42c6-92f1-504f57f89c8f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=aba14b9c7027de4d8d5b06bca27d2bd824dd823c23eebeecaddf2edb320355f7", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/97/87/32/ent_cover-5c114b1d-f7c6-42c6-92f1-504f57f89c8f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c460aaee661332070fca7326f9ee0427e5e3fe6de86477dbeaa659f0a88d96fe" + } + }, + "tracks_count": 7, + "is_playable": true, + "is_local": false, + "id": 8533, + "fid": "https://zik.canevas.eu/federation/music/albums/5c114b1d-f7c6-42c6-92f1-504f57f89c8f", + "mbid": "fd628f7b-c61c-42c3-88bd-ab95076d530c", + "title": "Time Out", + "artist": 8295, + "release_date": "2011-08-17", + "creation_date": "2022-01-21T08:38:22.838943Z" + } + ], + "tags": [ + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/arikado", + "url": "https://zik.canevas.eu/@arikado", + "creation_date": "2022-09-03T01:07:41.220776Z", + "summary": null, + "preferred_username": "arikado", + "name": "arikado", + "last_fetch_date": "2022-09-03T01:18:34.629535Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "arikado@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 15, + "id": 8295, + "fid": "https://zik.canevas.eu/federation/music/artists/99c1d161-12f5-4d55-9d17-4490f530fa88", + "mbid": "7bf711e9-4e69-4e08-b6e8-c0cb5805f1e7", + "name": "The Dave Brubeck Quartet", + "content_category": "music", + "creation_date": "2022-01-21T08:38:22.802996Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "863c7f51-665c-46e7-826d-9bab4f8d7ef9", + "size": 128114, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T00:55:38.728588Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/3a/3d/91/attachment_cover-2563f756-4242-4557-a512-73877c4e88fd.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/3d/50/51/ent_cover-2563f756-4242-4557-a512-73877c4e88fd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=26b8f2ca69dabbfd5551486c5626ab19c612bac46bda2f92773f6a1c735f5d67", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3d/50/51/ent_cover-2563f756-4242-4557-a512-73877c4e88fd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7c4602de307d03f13935717db6d822cb04cfc5dc80ce7406f6e9d3927371762e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3d/50/51/ent_cover-2563f756-4242-4557-a512-73877c4e88fd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a1d36a9d04b17ed1de76085e0dc39fb099ff68f2ca37a51097fdaf09c0302153" + } + }, + "tracks_count": 14, + "is_playable": true, + "is_local": false, + "id": 8531, + "fid": "https://zik.canevas.eu/federation/music/albums/2563f756-4242-4557-a512-73877c4e88fd", + "mbid": "1e2ff0a9-9e21-4985-aecb-ba1056b69090", + "title": "Deus Ex: Invisible War", + "artist": 8294, + "release_date": "2004-01-01", + "creation_date": "2022-09-02T23:30:17.149314Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 14, + "id": 8294, + "fid": "https://zik.canevas.eu/federation/music/artists/3d81cd96-24e9-418c-9fee-7cb092b6c7da", + "mbid": null, + "name": "Alexander Brandon/Todd Simmons", + "content_category": "music", + "creation_date": "2022-09-02T23:30:17.091223Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7833325d64cdabc070183f7e4d82f6e80b919612a60f4118403ca410ce82ab15", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4eaa784259da85aac2dba5c85543b31b701358b911f051d159d2dabefd6cfd92", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5cdf120422083f8e07888fe9395a1ac2c80ad90ff6f0561ad6ec3d9e444ad355" + } + }, + "tracks_count": 13, + "is_playable": true, + "is_local": false, + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": 8293, + "release_date": "1990-09-17", + "creation_date": "2022-09-07T18:54:30.287252Z" + }, + { + "cover": { + "uuid": "975cf07e-1d13-4f64-90c5-848266f5f25f", + "size": 129352, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T00:33:48.562975Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/2b/0b/c8/attachment_cover-424f1642-642e-4752-9e84-f817c3f05900.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/44/8d/23/ent_cover-424f1642-642e-4752-9e84-f817c3f05900.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0979d125f6d31d6bcbe70288bf7f63363168e02ccab8e0c3d3c4a310a17a1a7e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/44/8d/23/ent_cover-424f1642-642e-4752-9e84-f817c3f05900-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b63f48a8915eeaf68936fe568c5a5d13c6d22078df0e36b543ace93461eb494b", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/44/8d/23/ent_cover-424f1642-642e-4752-9e84-f817c3f05900-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f876d5b5e41ee18409784e9031c22621d7c5cb54d91f2f5c5a5970664adb7141" + } + }, + "tracks_count": 4, + "is_playable": true, + "is_local": false, + "id": 8530, + "fid": "https://zik.canevas.eu/federation/music/albums/424f1642-642e-4752-9e84-f817c3f05900", + "mbid": "d3348057-a87d-408e-99d2-34d6bf15e7b0", + "title": "The Köln Concert", + "artist": 8293, + "release_date": "2003-04-23", + "creation_date": "2022-09-02T23:03:15.534503Z" + } + ], + "tags": [], + "attributed_to": null, + "channel": null, + "tracks_count": 17, + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "content_category": "music", + "creation_date": "2019-03-04T23:47:50.008392Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "0810d5a0-de08-4b44-b323-239d45a1b881", + "size": 141532, + "mimetype": "image/jpeg", + "creation_date": "2022-09-02T19:48:09.122728Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/7a/b1/f1/attachment_cover-35699169-ef85-48e4-a0f0-5883ab937751.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/ca/9c/f1/ent_cover-35699169-ef85-48e4-a0f0-5883ab937751.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=627f607f63aa5a1fe940a8a13296603f12965159958b02a63954c1895f9c8056", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ca/9c/f1/ent_cover-35699169-ef85-48e4-a0f0-5883ab937751-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c7dffe91e71d0f525e7b677ffdc63618198b2a5d0182558c84b1c688454b3a9f", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ca/9c/f1/ent_cover-35699169-ef85-48e4-a0f0-5883ab937751-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d7eaa35c76938d1925f8c0e30dfc290f1b0cc57eb0afad447b9152fd341d1f8f" + } + }, + "tracks_count": 27, + "is_playable": true, + "is_local": false, + "id": 8529, + "fid": "https://zik.canevas.eu/federation/music/albums/35699169-ef85-48e4-a0f0-5883ab937751", + "mbid": "cd8e5736-ec8c-3c4d-a231-ac097877d87a", + "title": "TRON: Legacy", + "artist": 8292, + "release_date": "2010-12-06", + "creation_date": "2022-09-02T19:39:24.423082Z" + } + ], + "tags": [ + "ElectroHouse", + "Electronic", + "House", + "TechHouse" + ], + "attributed_to": null, + "channel": null, + "tracks_count": 27, + "id": 8292, + "fid": "https://grapin.me/federation/music/artists/49bc6afc-1a13-416a-a1fb-2c47c30bbac3", + "mbid": "056e4f3e-d505-4dad-8ec1-d04f521cbb56", + "name": "Daft Punk", + "content_category": "music", + "creation_date": "2019-10-12T21:21:17.197137Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "738fde47-7b19-40fc-b61d-5f5679a9e13b", + "size": 31405, + "mimetype": "image/jpeg", + "creation_date": "2021-04-06T19:38:25.813297Z", + "urls": { + "source": "https://open.audio/media/albums/covers/2018/07/23/b383d009c-8f84-43dd-9e9a-c0bec85b7373.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4a/74/b0/b383d009c-8f84-43dd-9e9a-c0bec85b7373.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4ed564d177e5351eba0d7b7d1720ad9a1b3489a4696b421c6cf39a8e278bdfce", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4a/74/b0/b383d009c-8f84-43dd-9e9a-c0bec85b7373-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d6e73d91c30d3e8c16fea46b68069d9b5d309ebb6347cb8d6d5d7b757b75a627", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4a/74/b0/b383d009c-8f84-43dd-9e9a-c0bec85b7373-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=61ea2a7510c263c0b71de078171c03574669ccbdb38c17ea5a2e2514faea4714" + } + }, + "tracks_count": 11, + "is_playable": true, + "is_local": false, + "id": 7947, + "fid": "https://open.audio/federation/music/albums/383d009c-8f84-43dd-9e9a-c0bec85b7373", + "mbid": null, + "title": "Punk", + "artist": 8287, + "release_date": "1970-01-01", + "creation_date": "2018-07-23T09:39:16.984647Z" + } + ], + "tags": [], + "attributed_to": null, + "channel": null, + "tracks_count": null, + "id": 8287, + "fid": "https://open.audio/federation/music/artists/5ee01c42-5ea5-437c-a253-cba0fcb1b429", + "mbid": null, + "name": "Patricia Taxxon", + "content_category": "music", + "creation_date": "2022-07-05T17:09:00.374909Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "c683422a-ad4b-45a7-95a5-4595be4c65fc", + "size": 43872, + "mimetype": "image/jpeg", + "creation_date": "2022-06-14T08:15:34.227495Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/90/27/e8/attachment_cover-213c34c3-ff15-4199-a712-77abbbeafefd.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/17/da/4a/ent_cover-213c34c3-ff15-4199-a712-77abbbeafefd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ad27f9410e7de8814505cb101ec85f746582d3c87171fe3ddb21e45b32933f9d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/17/da/4a/ent_cover-213c34c3-ff15-4199-a712-77abbbeafefd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5dbe2c2078c5200bbdc034245a46fc175819257b195e55a8e8a4c69c48a33e76", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/17/da/4a/ent_cover-213c34c3-ff15-4199-a712-77abbbeafefd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1c9f2ac917bc9d53b8fc2cf8c26dac3c482165cee6ba280e92a9d073c6a1f10" + } + }, + "tracks_count": 17, + "is_playable": true, + "is_local": false, + "id": 8524, + "fid": "https://zik.canevas.eu/federation/music/albums/213c34c3-ff15-4199-a712-77abbbeafefd", + "mbid": "fc8b4319-082c-47d9-836c-e6f7c059248d", + "title": "Risk of Rain", + "artist": 8281, + "release_date": "2017-05-26", + "creation_date": "2022-06-14T08:15:00.884160Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 17, + "id": 8281, + "fid": "https://zik.canevas.eu/federation/music/artists/4b4aba01-8765-4f6b-bff4-7b99a3592458", + "mbid": "bec6b28b-68be-443b-a3c3-b370ea9b5ce5", + "name": "Chris Christodoulou", + "content_category": "music", + "creation_date": "2022-06-14T08:15:00.815978Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 2, + "id": 8273, + "fid": "https://zik.canevas.eu/federation/music/artists/27efda9e-47d0-44d6-8a3d-238debbc3e3f", + "mbid": null, + "name": "Daniel Olsén/Linnea Olsson", + "content_category": "music", + "creation_date": "2022-05-08T17:17:43.932944Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 15, + "id": 8272, + "fid": "https://zik.canevas.eu/federation/music/artists/de04c143-50c6-4882-88af-158f60746ceb", + "mbid": "738b640b-647c-44e1-8da3-13109f26335b", + "name": "Daniel Olsén", + "content_category": "music", + "creation_date": "2022-05-08T17:17:27.495714Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "78ae73e7-0752-458c-91d8-afca7037a24c", + "size": 12277, + "mimetype": "image/jpeg", + "creation_date": "2022-05-08T17:16:50.203242Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/b2/07/26/attachment_cover-3023fd09-57aa-422f-bbf9-f13dcc3db567.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4d/1e/41/ent_cover-3023fd09-57aa-422f-bbf9-f13dcc3db567.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1638e4e868d83a0ec4466f8ce7de92152a3d922848e4b7219311d08fd14f186d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4d/1e/41/ent_cover-3023fd09-57aa-422f-bbf9-f13dcc3db567-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fba4973acd1e8c446b072efb5b28ab0190d84154140944e4af522aa660f30808", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4d/1e/41/ent_cover-3023fd09-57aa-422f-bbf9-f13dcc3db567-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=029b60f79c8cf66e483fc9fef5b709fec9659a1abbeb4e2d70c739a119eccd44" + } + }, + "tracks_count": 26, + "is_playable": false, + "is_local": false, + "id": 8516, + "fid": "https://zik.canevas.eu/federation/music/albums/3023fd09-57aa-422f-bbf9-f13dcc3db567", + "mbid": "9d842913-5ea9-4152-93fe-9a9b9a94b67a", + "title": "Sayonara Wild Hearts", + "artist": 8271, + "release_date": "2019-09-19", + "creation_date": "2022-05-08T17:16:42.699806Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 9, + "id": 8271, + "fid": "https://zik.canevas.eu/federation/music/artists/db3a3f53-9987-4fc5-8e28-a325b7d77a9c", + "mbid": null, + "name": "Daniel Olsén/Jonathan Eng/Linnea Olsson", + "content_category": "music", + "creation_date": "2022-05-08T17:16:42.639171Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8270, + "fid": "https://zik.canevas.eu/federation/music/artists/19eb770e-c0e4-4c91-abac-5d9b2d9e7271", + "mbid": "d7dab105-28b9-489b-9bad-01a2183607d2", + "name": "Hiroshi Tanabe", + "content_category": "music", + "creation_date": "2022-05-06T10:27:58.703031Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 16, + "id": 8269, + "fid": "https://zik.canevas.eu/federation/music/artists/d872e67e-ebd4-426e-85e7-2e65d044a77a", + "mbid": "de1d5c22-7c35-4665-8d5f-39ed078d7dd7", + "name": "Akihiro Honda", + "content_category": "music", + "creation_date": "2022-05-06T10:27:35.914022Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 4, + "id": 8268, + "fid": "https://zik.canevas.eu/federation/music/artists/5493d18a-1d56-4130-ad8e-d71d10efac5c", + "mbid": null, + "name": "Hiroshi Tanabe/Akihiro Honda", + "content_category": "music", + "creation_date": "2022-05-06T10:27:34.583309Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8267, + "fid": "https://zik.canevas.eu/federation/music/artists/0514acd0-45dd-4cb6-bb38-3982c925bb4a", + "mbid": null, + "name": "Ryoji Makimura/Masashi Watanabe", + "content_category": "music", + "creation_date": "2022-05-06T10:27:12.476019Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 26, + "id": 8266, + "fid": "https://zik.canevas.eu/federation/music/artists/b07b9d2f-2db2-4a1a-9d2a-d79800e50bae", + "mbid": "12e8529f-8500-4b56-af25-752fdfaf7fd0", + "name": "Nobuko Toda", + "content_category": "music", + "creation_date": "2022-05-06T10:25:14.290209Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "cd64108e-adf2-4b42-916d-7e5e812b8817", + "size": 51851, + "mimetype": "image/jpeg", + "creation_date": "2022-05-06T11:25:56.758905Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/48/c1/23/attachment_cover-dd9cbf10-7a7e-4238-a4b8-04581e20ab8f.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b3/41/1f/ent_cover-dd9cbf10-7a7e-4238-a4b8-04581e20ab8f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=545428747d8580f01ed271af7bf023010167045c527f41c6a4289f91788af261", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b3/41/1f/ent_cover-dd9cbf10-7a7e-4238-a4b8-04581e20ab8f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d659a0bfc5d09da96889e784146dca76c0ef5cee2c677c1e878540d0b7519ae5", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b3/41/1f/ent_cover-dd9cbf10-7a7e-4238-a4b8-04581e20ab8f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5537d25a652e1fcae1124b7fc9da3150d0853580c3fbc528780bc740cffeeae9" + } + }, + "tracks_count": 85, + "is_playable": false, + "is_local": false, + "id": 8515, + "fid": "https://zik.canevas.eu/federation/music/albums/dd9cbf10-7a7e-4238-a4b8-04581e20ab8f", + "mbid": "5967dfee-a05c-4da4-8189-5038c4a47fd8", + "title": "Metal Gear Ac!d & Ac!d2", + "artist": 8265, + "release_date": "2005-12-21", + "creation_date": "2022-05-06T10:25:03.039989Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 37, + "id": 8265, + "fid": "https://zik.canevas.eu/federation/music/artists/43c8f108-6fde-4562-ae17-bef4d0bea5a3", + "mbid": "5f683e89-bfd5-41c9-8e2d-7895ada48848", + "name": "Shuichi Kobori", + "content_category": "music", + "creation_date": "2022-05-06T10:25:03.001917Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 4, + "id": 8264, + "fid": "https://zik.canevas.eu/federation/music/artists/d79c93e1-5b68-41d4-ab94-bfae6850d000", + "mbid": "fc0414b7-ddb2-4b00-a8b4-dc5b0d42dd96", + "name": "0edit", + "content_category": "music", + "creation_date": "2020-06-01T10:21:40.569302Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 11, + "id": 8263, + "fid": "https://zik.canevas.eu/federation/music/artists/f0ea4c4c-bb51-492b-81d0-a1fae38f946a", + "mbid": "3331f9fe-fa0d-469d-af79-dbdf370c8a07", + "name": "Michael McCann", + "content_category": "music", + "creation_date": "2022-05-06T10:22:31.662880Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "6cfe581d-c412-45bd-80c8-f9782062ba70", + "size": 120363, + "mimetype": "image/jpeg", + "creation_date": "2022-05-06T11:11:27.387338Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/bd/3a/a5/attachment_cover-90e4452d-bd77-4000-b2a4-639e1ccce8f7.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/0b/e4/98/ent_cover-90e4452d-bd77-4000-b2a4-639e1ccce8f7.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=18715c380a35be5e54a2502e3d4ed2d639a83609242fec9980683021741532e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0b/e4/98/ent_cover-90e4452d-bd77-4000-b2a4-639e1ccce8f7-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=668efafaa5eaaca4b3aabd9b682e1c4713dfa2e0f0e9c64176c0cda83b61334d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0b/e4/98/ent_cover-90e4452d-bd77-4000-b2a4-639e1ccce8f7-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d78ef2191faec40dc0d8e471516096de2186a65308a99737e67a38d28bed0041" + } + }, + "tracks_count": 29, + "is_playable": false, + "is_local": false, + "id": 8514, + "fid": "https://zik.canevas.eu/federation/music/albums/90e4452d-bd77-4000-b2a4-639e1ccce8f7", + "mbid": "97ea657d-2cdb-4d1c-b82a-05194c5f656e", + "title": "Deus Ex: Mankind Divided (Original Soundtrack) [Extended Edition]", + "artist": 8262, + "release_date": "2016-12-02", + "creation_date": "2022-05-06T10:22:29.687795Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 14, + "id": 8262, + "fid": "https://zik.canevas.eu/federation/music/artists/d7025b04-0477-4f2d-89ef-017da5514d39", + "mbid": "8e07b39e-82b0-467e-8dec-60f744d34bd7", + "name": "Sascha Dikiciyan", + "content_category": "music", + "creation_date": "2022-05-06T10:22:29.648822Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 2, + "id": 8261, + "fid": "https://zik.canevas.eu/federation/music/artists/bb1b4cf9-e0bc-4633-865b-e2e3d61218d0", + "mbid": "dd289522-a250-4d37-bc73-cb97bfd3f7cc", + "name": "Dan Gardopée", + "content_category": "music", + "creation_date": "2022-05-06T10:18:50.166088Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 4, + "id": 8260, + "fid": "https://zik.canevas.eu/federation/music/artists/fb56922c-a177-41af-9b32-58ecb2ec4878", + "mbid": "7aa30632-bb65-40eb-afb2-6e49d963d7fb", + "name": "Michiel van den Bos", + "content_category": "music", + "creation_date": "2022-05-06T10:16:12.026140Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "3347fda1-6c5f-44f6-8f08-d4a2cab1d3d6", + "size": 783915, + "mimetype": "image/png", + "creation_date": "2022-05-06T10:53:32.636536Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/4e/5a/35/attachment_cover-bd0cd905-644c-4d09-af20-795d1c4cbbbf.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4a/e3/72/ent_cover-bd0cd905-644c-4d09-af20-795d1c4cbbbf.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1fb80d9ea5732e511ef432be8694dce16020253e324f10ca614e6fd2b0b4693f", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4a/e3/72/ent_cover-bd0cd905-644c-4d09-af20-795d1c4cbbbf-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=09fb2443a06abcb0e449de059482a04316359101c90779f1b642d526fdac71e2", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4a/e3/72/ent_cover-bd0cd905-644c-4d09-af20-795d1c4cbbbf-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cfce6e7465ece3ab95ff4a85018f37ce78e65f10c9da24d72cd25d02a2ef1f1e" + } + }, + "tracks_count": 30, + "is_playable": false, + "is_local": false, + "id": 8513, + "fid": "https://zik.canevas.eu/federation/music/albums/bd0cd905-644c-4d09-af20-795d1c4cbbbf", + "mbid": "1df1eb4e-fdb2-41a7-9e94-4ecbadc7cb7b", + "title": "Deus Ex: Game of the Year Edition Soundtrack", + "artist": 8259, + "release_date": "2001-05-08", + "creation_date": "2022-05-06T10:15:30.197514Z" + } + ], + "tags": [ + "ActionRolePlayingGame", + "CyberpunkVideoGame", + "electronica", + "FirstPersonShooter", + "RolePlayingVideoGame", + "StealthGame" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 24, + "id": 8259, + "fid": "https://zik.canevas.eu/federation/music/artists/6e3250dd-3966-4ce4-800e-c9d9b6b921fe", + "mbid": "21848b19-5a20-4a58-b168-0b5f95524cdc", + "name": "Alexander Brandon", + "content_category": "music", + "creation_date": "2022-05-06T10:15:30.149803Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8258, + "fid": "https://zik.canevas.eu/federation/music/artists/72891965-bb6d-47b4-a68a-a8782346e953", + "mbid": null, + "name": "Gorillaz/Shaun Ryder", + "content_category": "music", + "creation_date": "2022-05-06T09:55:03.303953Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8257, + "fid": "https://zik.canevas.eu/federation/music/artists/1c47671e-5b57-41d3-a663-46591e967025", + "mbid": null, + "name": "Gorillaz/Roots Manuva", + "content_category": "music", + "creation_date": "2022-05-06T09:55:00.148358Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8256, + "fid": "https://zik.canevas.eu/federation/music/artists/021cb6d0-310a-4594-9b38-f1138e67ee28", + "mbid": null, + "name": "Gorillaz/MF DOOM", + "content_category": "music", + "creation_date": "2022-05-06T09:54:58.377043Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8255, + "fid": "https://zik.canevas.eu/federation/music/artists/a2a4336d-dbe2-410e-b71f-2a297ab81d25", + "mbid": null, + "name": "Gorillaz/De La Soul", + "content_category": "music", + "creation_date": "2022-05-06T09:54:44.122477Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8254, + "fid": "https://zik.canevas.eu/federation/music/artists/8050dca4-d76c-4ca5-85fe-25cacb537033", + "mbid": null, + "name": "Gorillaz/Bootie Brown", + "content_category": "music", + "creation_date": "2022-05-06T09:54:42.760302Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8253, + "fid": "https://zik.canevas.eu/federation/music/artists/3819e286-8098-4160-9f9a-50f92d8bda52", + "mbid": null, + "name": "Gorillaz/Neneh Cherry", + "content_category": "music", + "creation_date": "2022-05-06T09:54:39.375073Z", + "is_local": false + }, + { + "cover": null, + "albums": [], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 3, + "id": 8252, + "fid": "https://zik.canevas.eu/federation/music/artists/02e84c4c-7c46-4a75-ad7e-c151565ac8c9", + "mbid": "037bb92d-efd5-48d9-b197-3ce699067e3c", + "name": "Bola", + "content_category": "music", + "creation_date": "2022-05-06T09:53:28.821894Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "7ccc6fa0-42dd-4bc0-b503-38f1d14a3e62", + "size": 6412, + "mimetype": "image/jpg", + "creation_date": "2022-05-06T10:04:48.439102Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/de/97/c4/attachment_cover-2fcd859c-a732-4b3e-8f7d-7089c3ac3dd1.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/c8/6f/6e/ent_cover-2fcd859c-a732-4b3e-8f7d-7089c3ac3dd1.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b3ec49436f63ad1a0e73594dc78a1eb46e744520f9348e950c8b176d6fe056a4", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/c8/6f/6e/ent_cover-2fcd859c-a732-4b3e-8f7d-7089c3ac3dd1-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4b0c7a388b182f4698ae8767de2d1364131c627ab9e09b66b1f8b2a7aea4d431", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/c8/6f/6e/ent_cover-2fcd859c-a732-4b3e-8f7d-7089c3ac3dd1-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=47224a817ab6823a95c889b1ced4913f96df341525b34216c1a9ad1fdaf61874" + } + }, + "tracks_count": 4, + "is_playable": false, + "is_local": false, + "id": 8509, + "fid": "https://zik.canevas.eu/federation/music/albums/2fcd859c-a732-4b3e-8f7d-7089c3ac3dd1", + "mbid": "d41a2baa-8985-335f-a354-db256b223ce8", + "title": "Mauver", + "artist": 8251, + "release_date": "2000-02-14", + "creation_date": "2022-05-06T09:52:31.652412Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 1, + "id": 8251, + "fid": "https://zik.canevas.eu/federation/music/artists/5f04f7d1-4cfe-4fe5-b9d3-08e8064cbf49", + "mbid": null, + "name": "Bola/Dennis Bourne", + "content_category": "music", + "creation_date": "2022-05-06T09:52:27.763804Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "c465b371-c934-467b-a3d3-db3980d235cc", + "size": 2096371, + "mimetype": "image/png", + "creation_date": "2022-05-06T09:48:59.984654Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/97/61/c0/attachment_cover-37f49e0f-5da0-417f-a59f-97942cee9930.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b7/84/40/ent_cover-37f49e0f-5da0-417f-a59f-97942cee9930.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=808cabca3fc60d4bed6d329d201db6b38bac62a5ee1ab0c529259f00cc21d8e5", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b7/84/40/ent_cover-37f49e0f-5da0-417f-a59f-97942cee9930-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e6b1729f81478d01738d494457c4a837ff1b2ee6552df7a21024d63ca1e13f92", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b7/84/40/ent_cover-37f49e0f-5da0-417f-a59f-97942cee9930-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=822a4cbc88994f90555d49b3c1265384869a37c1d1a123bb6f01cd552d5d1edc" + } + }, + "tracks_count": 8, + "is_playable": false, + "is_local": false, + "id": 8508, + "fid": "https://zik.canevas.eu/federation/music/albums/37f49e0f-5da0-417f-a59f-97942cee9930", + "mbid": "3d3b8deb-ca41-4f8d-a9de-8c01362d926a", + "title": "Portrait in Jazz", + "artist": 8250, + "release_date": "1960-01-01", + "creation_date": "2022-05-06T09:37:30.614555Z" + } + ], + "tags": [ + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 8, + "id": 8250, + "fid": "https://zik.canevas.eu/federation/music/artists/8a13210c-6d0f-4016-bf73-84eb57fac367", + "mbid": "d0630a08-3b40-4cb4-9f48-7d525262c1f6", + "name": "Bill Evans Trio", + "content_category": "music", + "creation_date": "2020-06-01T10:30:03.768186Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "3ccb8313-b8b0-4989-89f6-19b4f3ac3cb2", + "size": 226150, + "mimetype": "image/jpeg", + "creation_date": "2022-04-27T14:10:33.940909Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/20/b5/d3/attachment_cover-fff63f0c-0984-4f63-ab31-91db9d79a510.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0f34c907185167b0aacdfdb53d19833a67661b31391a134e495d0589929ff17e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/20/b5/d3/attachment_cover-fff63f0c-0984-4f63-ab31-91db9d79a510-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=51ad7440674c2775e77ad99892cd26d6de0aea494c85695f534486517ebb69dd", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/20/b5/d3/attachment_cover-fff63f0c-0984-4f63-ab31-91db9d79a510-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f26de6b480ff5c1829a080d8f6a759801b6153eaf0dccbcd49290df4b86a48ce" + } + }, + "tracks_count": 13, + "is_playable": false, + "is_local": true, + "id": 8501, + "fid": "https://soundship.de/federation/music/albums/fff63f0c-0984-4f63-ab31-91db9d79a510", + "mbid": null, + "title": "THE SUPERTIGHTS", + "artist": 8244, + "release_date": "2022-01-01", + "creation_date": "2022-04-27T14:10:33.924048Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "channel": null, + "tracks_count": 13, + "id": 8244, + "fid": "https://soundship.de/federation/music/artists/f2f8e5f0-6162-4e9a-a469-c839981d8b87", + "mbid": null, + "name": "Q-Sounds recording", + "content_category": "music", + "creation_date": "2022-04-27T14:10:33.664559Z", + "is_local": true + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "11c99d28-c17e-4233-9974-1a7aff27e24a", + "size": 105524, + "mimetype": "image/jpeg", + "creation_date": "2022-04-02T17:22:29.819307Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/04/f5/a1/attachment_cover-ad3691f6-4250-496a-995e-0e53bb0789d3.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/35/7a/ab/ent_cover-ad3691f6-4250-496a-995e-0e53bb0789d3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=009efbefdc18cf3ee6f59ef5cf4de3e81326d42c31bd0fba84198e4d65849c79", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/35/7a/ab/ent_cover-ad3691f6-4250-496a-995e-0e53bb0789d3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ce5fa622281a238e8c6120fe9682963957352dc37389e929899b89cbdcb76ff1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/35/7a/ab/ent_cover-ad3691f6-4250-496a-995e-0e53bb0789d3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=028e5f3183609290685e14236abdf74a5200328eaec0b99636f59e7bae3bafbe" + } + }, + "tracks_count": 19, + "is_playable": false, + "is_local": false, + "id": 8498, + "fid": "https://zik.canevas.eu/federation/music/albums/ad3691f6-4250-496a-995e-0e53bb0789d3", + "mbid": "57edc4e7-d4fd-4201-9a44-2b44cb771a4a", + "title": "Baba Is You Soundtrack", + "artist": 8237, + "release_date": "2021-11-18", + "creation_date": "2022-04-02T17:05:13.821884Z" + } + ], + "tags": [ + "Ambient" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 19, + "id": 8237, + "fid": "https://zik.canevas.eu/federation/music/artists/a12e0357-fb63-4a6b-aa44-f4ed306efc83", + "mbid": "895aee4c-bfd1-4947-b9a6-8dddd0330e59", + "name": "Arvi Teikari", + "content_category": "music", + "creation_date": "2022-04-02T17:05:13.773830Z", + "is_local": false + }, + { + "cover": null, + "albums": [ + { + "cover": { + "uuid": "bf18c474-f678-4467-9bae-b0125c606533", + "size": 91143, + "mimetype": "image/jpeg", + "creation_date": "2022-04-02T16:53:27.767634Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/ce/e6/86/attachment_cover-ba0cd6cb-22ba-4c31-a571-7a81f443531f.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d3/8a/aa/ent_cover-ba0cd6cb-22ba-4c31-a571-7a81f443531f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=da79b0a0fdb430176455769e2dcecc83bc66849ac11a73dd7072ce870390c1b2", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d3/8a/aa/ent_cover-ba0cd6cb-22ba-4c31-a571-7a81f443531f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0a33be39797d1ac9f5846cddf9dadb274d6c635daeb96488686f8d892e5a6196", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d3/8a/aa/ent_cover-ba0cd6cb-22ba-4c31-a571-7a81f443531f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133717Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3c44201024ba7966f29df158135ffaea791bc90babebb1836463bbed60b8c95d" + } + }, + "tracks_count": 27, + "is_playable": false, + "is_local": false, + "id": 8497, + "fid": "https://zik.canevas.eu/federation/music/albums/ba0cd6cb-22ba-4c31-a571-7a81f443531f", + "mbid": "1dfb4f68-ee87-4d62-83ad-c258417ea055", + "title": "Sword & Sworcery LP: The Ballad of the Space Babies", + "artist": 8236, + "release_date": "2011-04-05", + "creation_date": "2022-04-02T16:53:22.242188Z" + } + ], + "tags": [], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "channel": null, + "tracks_count": 27, + "id": 8236, + "fid": "https://zik.canevas.eu/federation/music/artists/36d42099-017a-4506-9fb5-503e2482d0a0", + "mbid": "25869023-8509-4926-aefd-1f84c188cf3d", + "name": "Jim Guthrie", + "content_category": "music", + "creation_date": "2022-04-02T16:53:22.169802Z", + "is_local": false + } + ] +} \ No newline at end of file diff --git a/tests/data/artists/simple_artist.json b/tests/data/artists/simple_artist.json new file mode 100644 index 0000000000000000000000000000000000000000..c32971423ebb5efc439c536828c88cee3ae15d91 --- /dev/null +++ b/tests/data/artists/simple_artist.json @@ -0,0 +1,13 @@ +{ + "id": 13009, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:51.727250Z", + "is_local": false, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null +} \ No newline at end of file diff --git a/tests/data/attachments/attachment.json b/tests/data/attachments/attachment.json new file mode 100644 index 0000000000000000000000000000000000000000..a970f180ccda0c3da69992715c702d98a495fe7a --- /dev/null +++ b/tests/data/attachments/attachment.json @@ -0,0 +1,12 @@ +{ + "uuid": "21a70f8a-8ea3-47a9-b775-f128199b699c", + "size": 73601, + "mimetype": "image/png", + "creation_date": "2022-09-05T10:31:49.267845Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/61/fa/50/logo.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/1c/d7/logo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T150226Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6eef479e6394d7a6fc380720d1b509d86dcd80140754ab4efb173b90d7e9c0b5", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/1c/d7/logo-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T150226Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e5e130966df8da983bdfa85ff13914ce034486ca5f336b51fa06ae90db68c624", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/1c/d7/logo-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T150226Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=bd7598bcb5a339715c294fc11cf18082fca993340a10ccd876f21632c43ea9f9" + } +} \ No newline at end of file diff --git a/tests/data/auth/subsonic.json b/tests/data/auth/subsonic.json new file mode 100644 index 0000000000000000000000000000000000000000..4aa4f038a1b60ebeada982e1838922fef0eaacc7 --- /dev/null +++ b/tests/data/auth/subsonic.json @@ -0,0 +1,3 @@ +{ + "subsonic_api_token": "definitely-notfake-subsonic-token-fortest" +} \ No newline at end of file diff --git a/tests/data/auth/user_details.json b/tests/data/auth/user_details.json new file mode 100644 index 0000000000000000000000000000000000000000..6f11004d195a49641b550bf17e2a34245dceaa81 --- /dev/null +++ b/tests/data/auth/user_details.json @@ -0,0 +1,7 @@ +{ + "pk": 1, + "username": "doctorworm", + "email": "sporiff@funkwhale.audio", + "first_name": "Ciarán", + "last_name": "Ainsworth" +} \ No newline at end of file diff --git a/tests/data/auth/user_me.json b/tests/data/auth/user_me.json new file mode 100644 index 0000000000000000000000000000000000000000..84b902d6cbb5e21d90210e48d705320d020bc8d9 --- /dev/null +++ b/tests/data/auth/user_me.json @@ -0,0 +1,52 @@ +{ + "id": 1, + "username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "name": "", + "email": "sporiff@funkwhale.audio", + "is_staff": true, + "is_superuser": true, + "permissions": { + "library": true, + "moderation": true, + "settings": true + }, + "date_joined": "2018-12-12T21:03:28Z", + "privacy_level": "everyone", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210033Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9a47e408c13742c93545dbd7dc19141f89c9e5f19dc247e40c27398124396b96", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210033Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6338e5b45855c4c67bbd627200bdc4b91ba6fcf3a4a36f880714ab06810af792", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210033Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=022e4dfcb31b28051ea3a26e6e4890fe4ea01126b3a285b25f6d131ef2d57df3" + } + }, + "quota_status": { + "max": 500000, + "remaining": 411244.63244099997, + "current": 88755.367559, + "draft": 10.478784, + "skipped": 0, + "pending": 0, + "finished": 88744.888775, + "errored": 0 + }, + "instance_support_message_display_date": "2022-10-18T10:48:23.631000Z", + "funkwhale_support_message_display_date": null, + "summary": { + "text": "Host/admin of Tanuki Tunes. Funkwhale maintainer.", + "content_type": "text/markdown", + "html": "<p>Host/admin of Tanuki Tunes. Funkwhale maintainer.</p>" + }, + "tokens": { + "listen": "definitelyrealtokenusedfordoingactualthingsnotjustafakeonefortesting" + }, + "settings": { + "theme": "system", + "language": "en_GB" + } +} \ No newline at end of file diff --git a/tests/data/auth/verify_email.json b/tests/data/auth/verify_email.json new file mode 100644 index 0000000000000000000000000000000000000000..032efcf54fd1c6b01cc10ac9eb12703aba7b1c46 --- /dev/null +++ b/tests/data/auth/verify_email.json @@ -0,0 +1,3 @@ +{ + "detail": "ok" +} \ No newline at end of file diff --git a/tests/data/auth/verify_email_request.json b/tests/data/auth/verify_email_request.json new file mode 100644 index 0000000000000000000000000000000000000000..c69b42d06bb44f3d0caa4ab3c8c7a33cad3987ca --- /dev/null +++ b/tests/data/auth/verify_email_request.json @@ -0,0 +1,3 @@ +{ + "key": "averyrealkeythatisdefinitelynotfakeandusedfortestingpurposes" +} \ No newline at end of file diff --git a/tests/data/channels/channel.json b/tests/data/channels/channel.json new file mode 100644 index 0000000000000000000000000000000000000000..9b6bb5d19dc34c292d8d95d6b0f39f4e42d4bc74 --- /dev/null +++ b/tests/data/channels/channel.json @@ -0,0 +1,63 @@ +{ + "uuid": "a7429626-d5e0-40fb-a79b-e72bd2b6f12a", + "artist": { + "id": 8311, + "fid": "https://am.pirateradio.social/federation/actors/28Komma2Prozent", + "mbid": "None", + "name": "28,2%", + "creation_date": "2022-09-05T10:31:43.310755Z", + "modification_date": "2022-09-05T10:31:43.310931Z", + "is_local": false, + "content_category": "podcast", + "description": null, + "cover": { + "uuid": "21a70f8a-8ea3-47a9-b775-f128199b699c", + "size": 73601, + "mimetype": "image/png", + "creation_date": "2022-09-05T10:31:49.267845Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/61/fa/50/logo.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/1c/d7/logo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144047Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4800df0f0536afbf6bb03a506ca5a14cf8b0cd8682b73b4fc08ebb2057d1eb41", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/1c/d7/logo-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144047Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e7fe4c9dfe7fe1b41fb70ea83c711f28a8fc5dfb3964a0d4f8416739b5579561", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/1c/d7/logo-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144047Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b56484c7e38a449c7fd93a6e30bd6998e632e11d564fad1d089484de5d97b012" + } + }, + "channel": "a7429626-d5e0-40fb-a79b-e72bd2b6f12a", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts", + "url": "https://am.pirateradio.social/@Ueckuecks_Podcasts", + "creation_date": "2022-09-02T10:04:36.882547Z", + "summary": null, + "preferred_username": "Ueckuecks_Podcasts", + "name": "Ueckuecks_Podcasts", + "last_fetch_date": "2022-09-05T10:31:49.762867Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Ueckuecks_Podcasts@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/28Komma2Prozent", + "url": "https://am.pirateradio.social/channels/28Komma2Prozent", + "creation_date": "2022-09-05T10:31:42.727585Z", + "summary": null, + "preferred_username": "28Komma2Prozent", + "name": "28,2%", + "last_fetch_date": "2022-09-05T10:31:47.469201Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "28Komma2Prozent@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-09-05T10:31:43.383915Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/28Komma2Prozent/rss", + "url": "https://am.pirateradio.social/channels/28Komma2Prozent", + "downloads_count": 0, + "subscriptions_count": 0 +} \ No newline at end of file diff --git a/tests/data/channels/paginated_channel_list.json b/tests/data/channels/paginated_channel_list.json new file mode 100644 index 0000000000000000000000000000000000000000..8f7de8fc0a9066d262af159d5579a3142242bbd0 --- /dev/null +++ b/tests/data/channels/paginated_channel_list.json @@ -0,0 +1,3345 @@ +{ + "count": 185, + "next": "https://soundship.de/api/v1/channels?page=2", + "previous": null, + "results": [ + { + "uuid": "a7429626-d5e0-40fb-a79b-e72bd2b6f12a", + "artist": { + "id": 8311, + "fid": "https://am.pirateradio.social/federation/actors/28Komma2Prozent", + "mbid": "None", + "name": "28,2%", + "creation_date": "2022-09-05T10:31:43.310755Z", + "modification_date": "2022-09-05T10:31:43.310931Z", + "is_local": false, + "content_category": "podcast", + "description": null, + "cover": { + "uuid": "21a70f8a-8ea3-47a9-b775-f128199b699c", + "size": 73601, + "mimetype": "image/png", + "creation_date": "2022-09-05T10:31:49.267845Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/61/fa/50/logo.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/1c/d7/logo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0a40bd6669322178388452ab1f41fbf96a04bd509e34969e6d39eb742485fd59", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/1c/d7/logo-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f5c24f31ec26cc376504f98796b111de96cbcc18428ce6ca1252dd52c2c9caef", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/1c/d7/logo-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fe4151b2c4591d39b6213867c6aa876e1721098445e563faaed1d523297d499e" + } + }, + "channel": "a7429626-d5e0-40fb-a79b-e72bd2b6f12a", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts", + "url": "https://am.pirateradio.social/@Ueckuecks_Podcasts", + "creation_date": "2022-09-02T10:04:36.882547Z", + "summary": null, + "preferred_username": "Ueckuecks_Podcasts", + "name": "Ueckuecks_Podcasts", + "last_fetch_date": "2022-09-05T10:31:49.762867Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Ueckuecks_Podcasts@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/28Komma2Prozent", + "url": "https://am.pirateradio.social/channels/28Komma2Prozent", + "creation_date": "2022-09-05T10:31:42.727585Z", + "summary": null, + "preferred_username": "28Komma2Prozent", + "name": "28,2%", + "last_fetch_date": "2022-09-05T10:31:47.469201Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "28Komma2Prozent@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-09-05T10:31:43.383915Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/28Komma2Prozent/rss", + "url": "https://am.pirateradio.social/channels/28Komma2Prozent", + "downloads_count": 0 + }, + { + "uuid": "e970de40-9e47-448a-9050-5c6be1d406ec", + "artist": { + "id": 8310, + "fid": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs", + "mbid": "None", + "name": "Aufnahmen von unterwegs", + "creation_date": "2022-09-03T19:08:36.748147Z", + "modification_date": "2022-09-03T19:08:36.748385Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": { + "uuid": "714fe783-8213-4c4b-83d2-c6501bf5588c", + "size": 16612, + "mimetype": "image/jpeg", + "creation_date": "2022-09-04T11:33:57.560528Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/4a/35/cc/mikro.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a9/2a/69/mikro.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=21b5b61876953b7bd026767b7fd01bdbc9e41408c75792feb53682e53356f96b", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a9/2a/69/mikro-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ed3cb9db91753a961195303e3ff73070dfff213e1991c2e58b1028fb07e64978", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a9/2a/69/mikro-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=686fb3f3f1be15b3793e5f30b406210f9dd1ba5f57352fb3f7a6d98e92087705" + } + }, + "channel": "e970de40-9e47-448a-9050-5c6be1d406ec", + "tracks_count": 2, + "tags": [ + "clips", + "Töne" + ] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/Hiker", + "url": "https://am.pirateradio.social/@Hiker", + "creation_date": "2022-09-03T19:08:36.689758Z", + "summary": null, + "preferred_username": "Hiker", + "name": "Hiker", + "last_fetch_date": "2022-09-04T11:33:57.488745Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Hiker@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs", + "url": "https://am.pirateradio.social/channels/aufnahmenvonunterwegs", + "creation_date": "2022-09-03T19:08:36.173905Z", + "summary": null, + "preferred_username": "aufnahmenvonunterwegs", + "name": "Aufnahmen von unterwegs", + "last_fetch_date": "2022-09-04T11:33:54.451031Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "aufnahmenvonunterwegs@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-09-03T19:08:36.864324Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/aufnahmenvonunterwegs/rss", + "url": "https://am.pirateradio.social/channels/aufnahmenvonunterwegs", + "downloads_count": 0 + }, + { + "uuid": "394574ba-0796-4928-b284-89e5b86048fb", + "artist": { + "id": 8309, + "fid": "https://soundship.de/federation/music/artists/680eb820-201f-40f0-a911-f5df367bbb45", + "mbid": "None", + "name": "Testing", + "creation_date": "2022-09-03T14:12:00.184491Z", + "modification_date": "2022-09-03T14:13:27.862065Z", + "is_local": true, + "content_category": "music", + "description": null, + "cover": null, + "channel": "394574ba-0796-4928-b284-89e5b86048fb", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "actor": { + "fid": "https://soundship.de/federation/actors/FWtesting", + "url": null, + "creation_date": "2022-09-03T14:12:00.278904Z", + "summary": null, + "preferred_username": "FWtesting", + "name": "Testing", + "last_fetch_date": "2022-09-03T14:12:00.278951Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "FWtesting@soundship.de", + "is_local": true + }, + "creation_date": "2022-09-03T14:12:00.210843Z", + "metadata": {}, + "rss_url": "https://soundship.de/api/v1/channels/FWtesting/rss", + "url": null, + "downloads_count": 0 + }, + { + "uuid": "17e6695f-8659-4f57-9e61-37b1123db011", + "artist": { + "id": 8291, + "fid": "https://am.pirateradio.social/federation/actors/ueckuecksblog", + "mbid": "None", + "name": "Ückücks Blog", + "creation_date": "2022-09-02T10:04:36.912369Z", + "modification_date": "2022-09-02T10:04:36.912678Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Politik, Aktivismus und Alltag: In meinem Blog schreibe ich über Themen, die mich bewegen.<br>Neben den Versionen zum Lesen und Hören unter <a href=\"https://ückück.com/blog\">https://ückück.com/blog</a> findet ihr nun auch die Hörversionen der Beiträge hier auf Funkwhale.</p>", + "content_type": "text/html", + "html": "<p>Politik, Aktivismus und Alltag: In meinem Blog schreibe ich über Themen, die mich bewegen.<br>Neben den Versionen zum Lesen und Hören unter <a href=\"https://ückück.com/blog\">https://ückück.com/blog</a> findet ihr nun auch die Hörversionen der Beiträge hier auf Funkwhale.</p>" + }, + "cover": { + "uuid": "b39055c5-126d-4009-9e02-781137e515b1", + "size": 175693, + "mimetype": "image/jpeg", + "creation_date": "2022-09-02T10:04:38.793132Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/58/89/f9/photo11643719007591239231.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/de/63/3c/photo11643719007591239231.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7e8bd2ab4a51d75fc0dc3e501a59aafb9bdd3b8be3997ba3f2366bb995660189", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/de/63/3c/photo11643719007591239231-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4cfaad933c0736ea111d184999eebd9fcca9ade8328b619e738fa8cc199aa4d6", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/de/63/3c/photo11643719007591239231-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8b26160f6b658d8dd8882af4e02d4596417fb3862d22bd00d0f7e228fa5e4421" + } + }, + "channel": "17e6695f-8659-4f57-9e61-37b1123db011", + "tracks_count": 1, + "tags": [ + "Alltat", + "Politik" + ] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts", + "url": "https://am.pirateradio.social/@Ueckuecks_Podcasts", + "creation_date": "2022-09-02T10:04:36.882547Z", + "summary": null, + "preferred_username": "Ueckuecks_Podcasts", + "name": "Ueckuecks_Podcasts", + "last_fetch_date": "2022-09-05T10:31:49.762867Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Ueckuecks_Podcasts@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/ueckuecksblog", + "url": "https://am.pirateradio.social/channels/ueckuecksblog", + "creation_date": "2022-09-02T10:04:36.353175Z", + "summary": null, + "preferred_username": "ueckuecksblog", + "name": "Ückücks Blog", + "last_fetch_date": "2022-09-02T10:04:38.207078Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ueckuecksblog@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-09-02T10:04:36.998203Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/ueckuecksblog/rss", + "url": "https://am.pirateradio.social/channels/ueckuecksblog", + "downloads_count": 0 + }, + { + "uuid": "15c9cb25-4c81-41e4-b163-03b5cc9cdab9", + "artist": { + "id": 8290, + "fid": "https://am.pirateradio.social/federation/actors/moreshimoneta", + "mbid": "None", + "name": "more shimoneta", + "creation_date": "2022-07-22T11:35:43.838968Z", + "modification_date": "2022-07-22T11:35:43.839310Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": { + "uuid": "7cc5e299-0c06-4971-b5af-6de1276186d9", + "size": 82745, + "mimetype": "image/jpeg", + "creation_date": "2022-07-28T04:30:43.633015Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/f3/9b/d3/shimoneta_album_cover.jpeg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b8/31/78/shimoneta_album_cover.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e0c3b763cc15bdefc3ab6bddb3cdb2be1cf4979c723fd644ebad9a3279f40688", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b8/31/78/shimoneta_album_cover-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cb110a3dd0d6460ec8a030a374555ac50e9a754480b383f3f3bb9d11bbdb6065", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b8/31/78/shimoneta_album_cover-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cc3373bf66b3729193ca18bc705790227f6036834d4b1e5c714a1d62d6e362fc" + } + }, + "channel": "15c9cb25-4c81-41e4-b163-03b5cc9cdab9", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/shimoneta", + "url": "https://am.pirateradio.social/@shimoneta", + "creation_date": "2022-07-22T09:29:34.056984Z", + "summary": null, + "preferred_username": "shimoneta", + "name": "shimoneta", + "last_fetch_date": "2022-07-28T04:30:43.526523Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "shimoneta@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/moreshimoneta", + "url": "https://am.pirateradio.social/channels/moreshimoneta", + "creation_date": "2022-07-22T11:35:40.881976Z", + "summary": null, + "preferred_username": "moreshimoneta", + "name": "more shimoneta", + "last_fetch_date": "2022-07-22T11:35:44.622334Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "moreshimoneta@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-07-22T11:35:43.909221Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/moreshimoneta/rss", + "url": "https://am.pirateradio.social/channels/moreshimoneta", + "downloads_count": 0 + }, + { + "uuid": "dece5b63-2259-4b64-8e6e-09c2a1807dc5", + "artist": { + "id": 8289, + "fid": "https://am.pirateradio.social/federation/actors/shimoneta_opening", + "mbid": "None", + "name": "shimoneta_opening", + "creation_date": "2022-07-22T09:29:34.072291Z", + "modification_date": "2022-07-22T09:29:34.072455Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": null, + "channel": "dece5b63-2259-4b64-8e6e-09c2a1807dc5", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/shimoneta", + "url": "https://am.pirateradio.social/@shimoneta", + "creation_date": "2022-07-22T09:29:34.056984Z", + "summary": null, + "preferred_username": "shimoneta", + "name": "shimoneta", + "last_fetch_date": "2022-07-28T04:30:43.526523Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "shimoneta@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/shimoneta_opening", + "url": "https://am.pirateradio.social/channels/shimoneta_opening", + "creation_date": "2022-07-22T09:29:33.554061Z", + "summary": null, + "preferred_username": "shimoneta_opening", + "name": "shimoneta_opening", + "last_fetch_date": "2022-07-22T09:39:57.232292Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "shimoneta_opening@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-07-22T09:29:34.176327Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/shimoneta_opening/rss", + "url": "https://am.pirateradio.social/channels/shimoneta_opening", + "downloads_count": 0 + }, + { + "uuid": "b760d275-8c73-4616-b1b5-48894eb5897c", + "artist": { + "id": 8288, + "fid": "https://open.audio/federation/actors/numerodiez", + "mbid": "None", + "name": "~diez", + "creation_date": "2022-07-18T19:13:53.446116Z", + "modification_date": "2022-07-18T19:13:53.446260Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": { + "uuid": "12031b5e-c476-44d8-9f15-5e9eb8533867", + "size": 54574, + "mimetype": "image/jpeg", + "creation_date": "2022-09-17T21:03:07.802749Z", + "urls": { + "source": "https://open.audio/media/attachments/3d/34/c0/photo_2022-02-06-10.01.22.jpeg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/7f/84/89/photo_2022-02-06-10.01.22.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1c7f9ba181036f9fdeb9551737e2a9571320f3a4749f49cbf1a7e5fffbcd2c7a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/7f/84/89/photo_2022-02-06-10.01.22-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c8990b448e977d0580dfaa6f32267d3362d6826e08953893c709354a0a12c89b", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/7f/84/89/photo_2022-02-06-10.01.22-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e87ba4a01544982e4f64ff4f5d159d5023c8e485bb10d4fc48e4669d7a45277e" + } + }, + "channel": "b760d275-8c73-4616-b1b5-48894eb5897c", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/bureo", + "url": "https://open.audio/@bureo", + "creation_date": "2022-02-16T19:44:17.526858Z", + "summary": null, + "preferred_username": "bureo", + "name": "bureo", + "last_fetch_date": "2022-09-18T22:36:00.238299Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "bureo@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/numerodiez", + "url": "https://open.audio/channels/numerodiez", + "creation_date": "2022-07-18T19:13:52.817428Z", + "summary": null, + "preferred_username": "numerodiez", + "name": "~diez", + "last_fetch_date": "2022-09-17T21:03:07.523132Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "numerodiez@open.audio", + "is_local": false + }, + "creation_date": "2022-07-18T19:13:53.552295Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/numerodiez/rss", + "url": "https://open.audio/channels/numerodiez", + "downloads_count": 0 + }, + { + "uuid": "77aed867-42f8-4e0b-9227-6c36206c1fec", + "artist": { + "id": 8286, + "fid": "https://open.audio/federation/actors/live_sets", + "mbid": "None", + "name": "kliklak - live_sets", + "creation_date": "2022-07-05T11:12:04.050255Z", + "modification_date": "2022-07-05T11:12:04.051094Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Air Cushion Finish, Suetszu, jayrope etc. -> various live recordings. See <a href=\"https://mastodon.online/@jayrope\">Mastodon</a> for more.</p>", + "content_type": "text/html", + "html": "<p>Air Cushion Finish, Suetszu, jayrope etc. -> various live recordings. See <a href=\"https://mastodon.online/@jayrope\">Mastodon</a> for more.</p>" + }, + "cover": null, + "channel": "77aed867-42f8-4e0b-9227-6c36206c1fec", + "tracks_count": 1, + "tags": [ + "acf", + "aircushionfinish", + "jayrope", + "kliklak", + "live", + "suetszu" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/jayrope", + "url": "https://open.audio/@jayrope", + "creation_date": "2020-12-15T17:20:45.278379Z", + "summary": null, + "preferred_username": "jayrope", + "name": "jayrope", + "last_fetch_date": "2022-09-24T21:13:10.682813Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "jayrope@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/live_sets", + "url": "https://open.audio/channels/live_sets", + "creation_date": "2022-07-05T11:12:03.735751Z", + "summary": null, + "preferred_username": "live_sets", + "name": "kliklak - live_sets", + "last_fetch_date": "2022-07-05T11:12:04.630130Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "live_sets@open.audio", + "is_local": false + }, + "creation_date": "2022-07-05T11:12:04.162385Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/live_sets/rss", + "url": "https://open.audio/channels/live_sets", + "downloads_count": 0 + }, + { + "uuid": "12b34b38-0190-4a19-9e77-ecd368598df0", + "artist": { + "id": 8285, + "fid": "https://open.audio/federation/actors/circledemise", + "mbid": "None", + "name": "2010 - 2016 Projects", + "creation_date": "2022-07-05T09:10:12.230189Z", + "modification_date": "2022-07-05T09:10:12.230353Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>These are three different projects I had in the past. All tracks are recorded between 2010 and 2016 and are home brewed. Except for one track, the rest are incomplete. </p><p><strong>Circle Demise</strong><br>- Grindcore</p><p><strong>Nemophilist</strong><br>- Black Metal</p><p><strong>Terreace Jam</strong><br>- Various Genres</p>", + "content_type": "text/html", + "html": "<p>These are three different projects I had in the past. All tracks are recorded between 2010 and 2016 and are home brewed. Except for one track, the rest are incomplete. </p><p><strong>Circle Demise</strong><br>- Grindcore</p><p><strong>Nemophilist</strong><br>- Black Metal</p><p><strong>Terreace Jam</strong><br>- Various Genres</p>" + }, + "cover": { + "uuid": "5f5a1f18-c648-4975-9260-a040b9314bd6", + "size": 235127, + "mimetype": "image/jpeg", + "creation_date": "2022-07-09T08:42:07.754414Z", + "urls": { + "source": "https://open.audio/media/attachments/9b/a1/11/cover1.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/20/33/88/cover1.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=011b5b9041118eb5218c836c46ecf8f64a01aebba8f86de150c2dae16dcc9cff", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/20/33/88/cover1-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b6970d8d49906342dece5585b25095db9d7d643ca5b14b650129fa941dbae21f", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/20/33/88/cover1-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c6c8a25d796c56d06d4dadd950c250135398b6a04bae7f4445def4bf61d700fa" + } + }, + "channel": "12b34b38-0190-4a19-9e77-ecd368598df0", + "tracks_count": 2, + "tags": [ + "Experimental", + "Metal", + "PostMetal", + "PostRock" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/infrasonic", + "url": "https://open.audio/@infrasonic", + "creation_date": "2021-06-27T12:31:44.056710Z", + "summary": null, + "preferred_username": "infrasonic", + "name": "infrasonic", + "last_fetch_date": "2022-07-09T08:42:07.686188Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "infrasonic@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/circledemise", + "url": "https://open.audio/channels/circledemise", + "creation_date": "2022-07-05T09:10:11.885478Z", + "summary": null, + "preferred_username": "circledemise", + "name": "2010 - 2016 Projects", + "last_fetch_date": "2022-07-09T08:42:09.117439Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "circledemise@open.audio", + "is_local": false + }, + "creation_date": "2022-07-05T09:10:12.399450Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/circledemise/rss", + "url": "https://open.audio/channels/circledemise", + "downloads_count": 0 + }, + { + "uuid": "d5c59388-c856-4211-bd2d-d75fa3386cd8", + "artist": { + "id": 8284, + "fid": "https://open.audio/federation/actors/deadwitchflying", + "mbid": "None", + "name": "DEAD WITCH FLYING", + "creation_date": "2022-06-26T18:53:10.032868Z", + "modification_date": "2022-06-26T18:53:10.032932Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>The full discography of my musical project known as \"Dead Witch Flying\"</p>", + "content_type": "text/html", + "html": "<p>The full discography of my musical project known as \"Dead Witch Flying\"</p>" + }, + "cover": { + "uuid": "2cf64e03-8e84-41c6-bdec-e2f394573e40", + "size": 1792548, + "mimetype": "image/png", + "creation_date": "2022-07-05T18:13:40.675487Z", + "urls": { + "source": "https://open.audio/media/attachments/15/fd/ed/tgwonder1500px.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/84/66/ed/tgwonder1500px.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1c077a9a5fd3f9aa8606d97bf450ddcda0af4241fdb1c03e094ffa8bc0f7bf30", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/84/66/ed/tgwonder1500px-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a994f8e6e83a53bf9959d760e67bd49668c2aa90bf5dfd0fc4a8afb4fdca3b00", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/84/66/ed/tgwonder1500px-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e1d291c10d875585b6af1680c960b64c8fbc176e17c657cb2cf13a3f476bec6b" + } + }, + "channel": "d5c59388-c856-4211-bd2d-d75fa3386cd8", + "tracks_count": 1, + "tags": [ + "Electronic" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/witchsupreme", + "url": "https://open.audio/@witchsupreme", + "creation_date": "2022-06-26T18:53:10.014948Z", + "summary": null, + "preferred_username": "witchsupreme", + "name": "witchsupreme", + "last_fetch_date": "2022-07-05T18:13:40.562472Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "witchsupreme@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/deadwitchflying", + "url": "https://open.audio/channels/deadwitchflying", + "creation_date": "2022-06-26T18:53:09.830587Z", + "summary": null, + "preferred_username": "deadwitchflying", + "name": "DEAD WITCH FLYING", + "last_fetch_date": "2022-06-26T18:53:11.256560Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "deadwitchflying@open.audio", + "is_local": false + }, + "creation_date": "2022-06-26T18:53:10.083296Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/deadwitchflying/rss", + "url": "https://open.audio/channels/deadwitchflying", + "downloads_count": 0 + }, + { + "uuid": "ead07103-2e55-48ec-b3f5-ca3797bfa81e", + "artist": { + "id": 8283, + "fid": "https://open.audio/federation/actors/elektronika", + "mbid": "None", + "name": "ELEKTR🅾NIK🅰", + "creation_date": "2022-06-26T15:18:14.872175Z", + "modification_date": "2022-06-26T15:18:14.872338Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Some electronic music. More or less experimental.</p>", + "content_type": "text/html", + "html": "<p>Some electronic music. More or less experimental.</p>" + }, + "cover": { + "uuid": "07454ba2-5452-4bfa-9873-82edd6d9feee", + "size": 947095, + "mimetype": "image/jpeg", + "creation_date": "2022-06-26T15:31:35.239108Z", + "urls": { + "source": "https://open.audio/media/attachments/78/5a/66/102111_eightbit.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a4/fd/7f/102111_eightbit.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=61d52f5ca8a1058a81f67a2c3f547c6dcad7d728f1ea2b69d21db3878a493e4a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a4/fd/7f/102111_eightbit-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5aa248220c0d076efa0623e0a6fb479733245c7331bb7c636ade5c414d975141", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a4/fd/7f/102111_eightbit-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a16e26c718154c6bb9aafa3dd47a63636de5091c4306cc7dc41b123322066a4" + } + }, + "channel": "ead07103-2e55-48ec-b3f5-ca3797bfa81e", + "tracks_count": 0, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/herrthees", + "url": "https://open.audio/@herrthees", + "creation_date": "2020-12-13T20:20:42.997999Z", + "summary": null, + "preferred_username": "herrthees", + "name": "herrthees", + "last_fetch_date": "2022-06-26T15:31:35.183995Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "herrthees@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/elektronika", + "url": "https://open.audio/channels/elektronika", + "creation_date": "2022-06-26T15:18:14.594246Z", + "summary": null, + "preferred_username": "elektronika", + "name": "ELEKTR🅾NIK🅰", + "last_fetch_date": "2022-06-26T15:31:34.942340Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "elektronika@open.audio", + "is_local": false + }, + "creation_date": "2022-06-26T15:18:14.930400Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/elektronika/rss", + "url": "https://open.audio/channels/elektronika", + "downloads_count": 0 + }, + { + "uuid": "85fc1db8-8f9c-4234-8218-8688bcb0f1bd", + "artist": { + "id": 8282, + "fid": "https://tanukitunes.com/federation/actors/inbtwn", + "mbid": "None", + "name": "inbtwn", + "creation_date": "2022-06-15T20:52:18.300170Z", + "modification_date": "2022-06-15T20:52:18.300287Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<em>swim in the waters between</em><p>music by samara (+ u)</p>", + "content_type": "text/html", + "html": "<em>swim in the waters between</em><p>music by samara (+ u)</p>" + }, + "cover": { + "uuid": "c0bd4149-f4c7-4e12-a34c-95b4e50a5883", + "size": 730530, + "mimetype": "image/jpeg", + "creation_date": "2022-06-15T20:54:29.885023Z", + "urls": { + "source": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/f4/39/a6/inbtwn.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220615%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220615T205427Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d68d6029c3783ba5fbae914bf99031d25165d71683aa1b1cb893dc5525d3717e", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b1/29/dd/a5fbae914bf99031d25165d71683aa1b1cb893dc5525d3717e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1fea8f2a250f585588a7cb364f7c05cae467709e392c59d06f89b497cdc6518", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b1/29/dd/a5fbae914bf99031d25165d71683aa1b1cb893dc5525d3717e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=38c2e76e1cf788792c523dd147ce5b6aef66cc7a56f25607299d8f23ddb3251d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b1/29/dd/a5fbae914bf99031d25165d71683aa1b1cb893dc5525d3717e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=32cb834d67099df943c40b6a5694a358cb4cb390aa51eb6386e3155471203c65" + } + }, + "channel": "85fc1db8-8f9c-4234-8218-8688bcb0f1bd", + "tracks_count": 2, + "tags": [] + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/samara", + "url": "https://tanukitunes.com/@samara", + "creation_date": "2022-06-15T20:52:18.291566Z", + "summary": null, + "preferred_username": "samara", + "name": "samara", + "last_fetch_date": "2022-06-15T20:54:29.849091Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "samara@tanukitunes.com", + "is_local": false + }, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/inbtwn", + "url": "https://tanukitunes.com/channels/inbtwn", + "creation_date": "2022-06-15T20:52:14.175669Z", + "summary": null, + "preferred_username": "inbtwn", + "name": "inbtwn", + "last_fetch_date": "2022-06-15T20:54:27.231257Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "inbtwn@tanukitunes.com", + "is_local": false + }, + "creation_date": "2022-06-15T20:52:18.363772Z", + "metadata": {}, + "rss_url": "https://tanukitunes.com/api/v1/channels/inbtwn/rss", + "url": "https://tanukitunes.com/channels/inbtwn", + "downloads_count": 0 + }, + { + "uuid": "5fb87a21-015f-4145-9f00-124e41f9c7c5", + "artist": { + "id": 8280, + "fid": "https://am.pirateradio.social/federation/actors/kaiorak", + "mbid": "None", + "name": "Kai Orak", + "creation_date": "2022-06-10T23:15:51.093080Z", + "modification_date": "2022-06-10T23:15:51.093250Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Inhalte von Youtube und sozialen Medien von Kai Orak und \"Kai aus Hannover\"</p>", + "content_type": "text/html", + "html": "<p>Inhalte von Youtube und sozialen Medien von Kai Orak und \"Kai aus Hannover\"</p>" + }, + "cover": { + "uuid": "2aa9c431-51eb-4be7-a242-4e53858f7828", + "size": 114015, + "mimetype": "image/jpeg", + "creation_date": "2022-06-10T23:15:55.123090Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/57/b3/d8/img_20220611_003907_803.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/47/9a/3f/img_20220611_003907_803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5ac974bef69988cd24cdf5ddab7e79e8c25159cbb0aa5be31fcb3fa7646ef19c", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/47/9a/3f/img_20220611_003907_803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=254cb1f9f7c6c6a0cbedbbff714215889b8b50347a6ba62b6eead5f0df17703e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/47/9a/3f/img_20220611_003907_803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f70cf448747b51585e1f7e81eb7e480d7469d0441e7af012ffa67dbd180791d8" + } + }, + "channel": "5fb87a21-015f-4145-9f00-124e41f9c7c5", + "tracks_count": 1, + "tags": [ + "Politik" + ] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/Kai_Orak", + "url": "https://am.pirateradio.social/@Kai_Orak", + "creation_date": "2022-06-10T23:15:51.083056Z", + "summary": null, + "preferred_username": "Kai_Orak", + "name": "Kai_Orak", + "last_fetch_date": "2022-06-10T23:15:55.062193Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Kai_Orak@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/kaiorak", + "url": "https://am.pirateradio.social/channels/kaiorak", + "creation_date": "2022-06-10T23:15:48.159580Z", + "summary": null, + "preferred_username": "kaiorak", + "name": "Kai Orak", + "last_fetch_date": "2022-06-10T23:15:54.610178Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "kaiorak@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-06-10T23:15:51.164495Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/kaiorak/rss", + "url": "https://am.pirateradio.social/channels/kaiorak", + "downloads_count": 0 + }, + { + "uuid": "856cbaa1-1aef-4264-aad3-7666af6273fb", + "artist": { + "id": 8279, + "fid": "https://open.audio/federation/actors/AsturgeekPodcast", + "mbid": "None", + "name": "Asturgeeek - El Podcast", + "creation_date": "2022-06-10T20:04:24.854965Z", + "modification_date": "2022-06-10T20:04:24.855040Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Probando a producir un podcast a lo que le voy pillando el trankillo. Suelo hacerlo en Anchor, pero pefiero hacerlo con software libre. Veremos qué pasa.</p>", + "content_type": "text/html", + "html": "<p>Probando a producir un podcast a lo que le voy pillando el trankillo. Suelo hacerlo en Anchor, pero pefiero hacerlo con software libre. Veremos qué pasa.</p>" + }, + "cover": { + "uuid": "644e9461-b67f-452f-a1cf-730b25258fb8", + "size": 219364, + "mimetype": "image/png", + "creation_date": "2022-06-10T20:04:26.457356Z", + "urls": { + "source": "https://open.audio/media/attachments/ee/4b/0c/logopodcast.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/de/10/ad/logopodcast.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=29694243d1e71a54a22eec588e18bef8ed5e5e711c40cfef3182ad7b5c67186e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/de/10/ad/logopodcast-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a401a13711fe99638eeebfd61dd979ec6313f365e3f4984e718875bf4f3d4b9", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/de/10/ad/logopodcast-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=af015b1203ec45a56fd6c1cdb456b9f0df60a5cce03588638bbab5a49f17ede9" + } + }, + "channel": "856cbaa1-1aef-4264-aad3-7666af6273fb", + "tracks_count": 1, + "tags": [ + "fediverso", + "internet", + "juegos", + "linux" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/zicoxy3", + "url": "https://open.audio/@zicoxy3", + "creation_date": "2022-06-10T20:04:24.837871Z", + "summary": null, + "preferred_username": "zicoxy3", + "name": "zicoxy3", + "last_fetch_date": "2022-06-10T20:04:26.420348Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "zicoxy3@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/AsturgeekPodcast", + "url": "https://open.audio/channels/AsturgeekPodcast", + "creation_date": "2022-06-10T20:04:24.689871Z", + "summary": null, + "preferred_username": "AsturgeekPodcast", + "name": "Asturgeeek - El Podcast", + "last_fetch_date": "2022-06-10T20:04:26.217562Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "AsturgeekPodcast@open.audio", + "is_local": false + }, + "creation_date": "2022-06-10T20:04:24.949848Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/AsturgeekPodcast/rss", + "url": "https://open.audio/channels/AsturgeekPodcast", + "downloads_count": 0 + }, + { + "uuid": "ec4d7f0d-d6be-4c60-b0b3-0bda3902728a", + "artist": { + "id": 8278, + "fid": "https://am.pirateradio.social/federation/actors/unknownmusic", + "mbid": "None", + "name": "Unknown Music", + "creation_date": "2022-06-08T11:40:28.934498Z", + "modification_date": "2022-06-08T11:40:28.934647Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": null, + "channel": "ec4d7f0d-d6be-4c60-b0b3-0bda3902728a", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/amici", + "url": "https://am.pirateradio.social/@amici", + "creation_date": "2022-06-08T11:40:28.921897Z", + "summary": null, + "preferred_username": "amici", + "name": "amici", + "last_fetch_date": "2022-06-08T11:40:30.045417Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "amici@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/unknownmusic", + "url": "https://am.pirateradio.social/channels/unknownmusic", + "creation_date": "2022-06-08T11:40:26.015945Z", + "summary": null, + "preferred_username": "unknownmusic", + "name": "Unknown Music", + "last_fetch_date": "2022-06-08T11:40:29.643995Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "unknownmusic@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-06-08T11:40:28.973181Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/unknownmusic/rss", + "url": "https://am.pirateradio.social/channels/unknownmusic", + "downloads_count": 0 + }, + { + "uuid": "48915866-83ae-4906-8380-47c3c5a42144", + "artist": { + "id": 8277, + "fid": "https://open.audio/federation/actors/sabaudiaband", + "mbid": "None", + "name": "Sabaudia", + "creation_date": "2022-06-04T18:27:59.752294Z", + "modification_date": "2022-06-04T18:27:59.752400Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Music from a sunny lake, with a beach and mountains!</p>", + "content_type": "text/html", + "html": "<p>Music from a sunny lake, with a beach and mountains!</p>" + }, + "cover": { + "uuid": "c802c0c0-6451-41dd-8bc5-95cc266c44a4", + "size": 1928546, + "mimetype": "image/jpeg", + "creation_date": "2022-06-04T19:09:11.052070Z", + "urls": { + "source": "https://open.audio/media/attachments/ce/1c/fc/icon.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/50/b5/ed/icon.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9a57afd173b810ef9915c7c92495ce7f59a5a7864cb1812dc32c3f818e00a63f", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/50/b5/ed/icon-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=dd42aab008835e4b4a59536ff1f83f4790bb74e1c6bf5c43d70533400f54052b", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/50/b5/ed/icon-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=53df714c2b91e98c625d221642faa244ba3d6d9fb8f3d2cfbbe3fb3e799c7415" + } + }, + "channel": "48915866-83ae-4906-8380-47c3c5a42144", + "tracks_count": 5, + "tags": [ + "alternate" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/Sabaudia", + "url": "https://open.audio/@Sabaudia", + "creation_date": "2022-06-04T18:27:59.735802Z", + "summary": null, + "preferred_username": "Sabaudia", + "name": "Sabaudia", + "last_fetch_date": "2022-06-04T19:09:10.994227Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Sabaudia@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/sabaudiaband", + "url": "https://open.audio/channels/sabaudiaband", + "creation_date": "2022-06-04T18:27:59.563740Z", + "summary": null, + "preferred_username": "sabaudiaband", + "name": "Sabaudia", + "last_fetch_date": "2022-06-04T19:09:10.800496Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "sabaudiaband@open.audio", + "is_local": false + }, + "creation_date": "2022-06-04T18:27:59.815928Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/sabaudiaband/rss", + "url": "https://open.audio/channels/sabaudiaband", + "downloads_count": 0 + }, + { + "uuid": "26429518-a4ef-48c1-a30c-5d3cf65cdbd5", + "artist": { + "id": 8275, + "fid": "https://open.audio/federation/actors/42gb", + "mbid": "None", + "name": "42GB", + "creation_date": "2022-06-01T10:03:42.263937Z", + "modification_date": "2022-06-01T10:03:42.264106Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": null, + "channel": "26429518-a4ef-48c1-a30c-5d3cf65cdbd5", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/ecotopia", + "url": "https://open.audio/@ecotopia", + "creation_date": "2022-06-01T10:03:42.160073Z", + "summary": null, + "preferred_username": "ecotopia", + "name": "ecotopia", + "last_fetch_date": "2022-06-01T10:03:42.895429Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ecotopia@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/42gb", + "url": "https://open.audio/channels/42gb", + "creation_date": "2022-06-01T10:03:41.983516Z", + "summary": null, + "preferred_username": "42gb", + "name": "42GB", + "last_fetch_date": "2022-06-01T10:03:42.736286Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "42gb@open.audio", + "is_local": false + }, + "creation_date": "2022-06-01T10:03:42.318897Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/42gb/rss", + "url": "https://open.audio/channels/42gb", + "downloads_count": 0 + }, + { + "uuid": "29b38c72-fdeb-43cc-be51-51e11bd1b942", + "artist": { + "id": 8274, + "fid": "https://open.audio/federation/actors/disquietjuntocontributions", + "mbid": "None", + "name": "Disquiet Junto Contributions", + "creation_date": "2022-05-09T20:15:24.524882Z", + "modification_date": "2022-05-09T20:15:24.525042Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>These are my contributions to this project by Marc Weidenbaum</p><p><a href=\"https://disquiet.com/2022/05/05/disquiet-junto-project-0540-5ive-4our/\">https://disquiet.com/2022/05/05/disquiet-junto-project-0540-5ive-4our/</a></p><p>Each Thursday in the Disquiet Junto group, a new compositional challenge is set before the group’s members, who then have just over four days to upload a track in response to the assignment. Membership in the Junto is open: just join and participate. (A SoundCloud account is helpful but not required.) There’s no pressure to do every project. It’s weekly so that you know it’s there, every Thursday through Monday, when you have the time.</p>", + "content_type": "text/html", + "html": "<p>These are my contributions to this project by Marc Weidenbaum</p><p><a href=\"https://disquiet.com/2022/05/05/disquiet-junto-project-0540-5ive-4our/\">https://disquiet.com/2022/05/05/disquiet-junto-project-0540-5ive-4our/</a></p><p>Each Thursday in the Disquiet Junto group, a new compositional challenge is set before the group’s members, who then have just over four days to upload a track in response to the assignment. Membership in the Junto is open: just join and participate. (A SoundCloud account is helpful but not required.) There’s no pressure to do every project. It’s weekly so that you know it’s there, every Thursday through Monday, when you have the time.</p>" + }, + "cover": { + "uuid": "3bd28fd5-740c-45af-90e7-16b2c0e75fea", + "size": 5542, + "mimetype": "image/png", + "creation_date": "2022-05-09T20:15:25.498041Z", + "urls": { + "source": "https://open.audio/media/attachments/65/fb/28/2022-05-09_22-01.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/e4/3a/cd/2022-05-09_22-01.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4ca3e5f04bfa8230db8173601a16abba03201d4f5847d0fc7149e5f34652e3d0", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/e4/3a/cd/2022-05-09_22-01-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b396f15c7a58e252d424fef6e934513f9ea141bb840a12c87ac6ee5e29e514a4", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/e4/3a/cd/2022-05-09_22-01-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8afab5420cbe9c2760cc838b0def45e1fa7571f39b4f58b3e7cf5b66e2869ff7" + } + }, + "channel": "29b38c72-fdeb-43cc-be51-51e11bd1b942", + "tracks_count": 1, + "tags": [ + "Ambient", + "disquietjunto", + "Electronic", + "synthesizer" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/Logorok", + "url": "https://open.audio/@Logorok", + "creation_date": "2022-04-30T19:38:06.230867Z", + "summary": null, + "preferred_username": "Logorok", + "name": "Logorok", + "last_fetch_date": "2022-05-09T20:15:25.407052Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Logorok@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/disquietjuntocontributions", + "url": "https://open.audio/@disquietjuntocontributions", + "creation_date": "2022-05-09T20:15:24.266446Z", + "summary": null, + "preferred_username": "disquietjuntocontributions", + "name": "Disquiet Junto Contributions", + "last_fetch_date": "2022-05-09T20:15:25.090593Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "disquietjuntocontributions@open.audio", + "is_local": false + }, + "creation_date": "2022-05-09T20:15:24.630229Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/disquietjuntocontributions/rss", + "url": "https://open.audio/@disquietjuntocontributions", + "downloads_count": 0 + }, + { + "uuid": "af393954-2e7f-4308-8a43-53e3d3a2b6f6", + "artist": { + "id": 8249, + "fid": "https://open.audio/federation/actors/luciftias", + "mbid": "None", + "name": "Luciftias", + "creation_date": "2022-05-01T15:09:46.522871Z", + "modification_date": "2022-05-01T15:09:46.522968Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p><strong>Luciftias</strong> is an ambient/drone project from Meadville, Pennsylvania releasing music under a Creative Commons license.</p><p>If you'd like to support me monetarily, albums are available to purchase with a name-your-price option on <a href=\"https://luciftias.bandcamp.com\">Bandcamp</a>.</p>", + "content_type": "text/html", + "html": "<p><strong>Luciftias</strong> is an ambient/drone project from Meadville, Pennsylvania releasing music under a Creative Commons license.</p><p>If you'd like to support me monetarily, albums are available to purchase with a name-your-price option on <a href=\"https://luciftias.bandcamp.com\">Bandcamp</a>.</p>" + }, + "cover": { + "uuid": "5a61a719-0361-4a8b-bc5d-4209c3d5f9ad", + "size": 756022, + "mimetype": "image/jpeg", + "creation_date": "2022-07-11T15:21:42.208080Z", + "urls": { + "source": "https://open.audio/media/attachments/df/71/79/0026737012_20.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/ec/09/bd/0026737012_20.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=02ac0a6b0c80f5a4847ab030ee72e9f2c4e7dcd6b5514e0b7bd96c9218448cc3", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ec/09/bd/0026737012_20-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e836f5056bae86b07480574356c1375a061680dfd5022d0bd6f6ac2866432759", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ec/09/bd/0026737012_20-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a689919cf8d50045191ff27eee3270ee1610035024e4486c74ffc49d5f1cefb9" + } + }, + "channel": "af393954-2e7f-4308-8a43-53e3d3a2b6f6", + "tracks_count": 4, + "tags": [ + "Ambient", + "Drone", + "ebow", + "Experimental", + "guitar", + "Minimal", + "Soundscape" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/jaerrib", + "url": "https://open.audio/@jaerrib", + "creation_date": "2022-05-01T15:09:46.512345Z", + "summary": null, + "preferred_username": "jaerrib", + "name": "jaerrib", + "last_fetch_date": "2022-07-11T15:21:42.363191Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "jaerrib@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/luciftias", + "url": "https://open.audio/channels/luciftias", + "creation_date": "2022-05-01T15:09:46.346033Z", + "summary": null, + "preferred_username": "luciftias", + "name": "Luciftias", + "last_fetch_date": "2022-07-11T15:21:41.978565Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "luciftias@open.audio", + "is_local": false + }, + "creation_date": "2022-05-01T15:09:46.599548Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/luciftias/rss", + "url": "https://open.audio/channels/luciftias", + "downloads_count": 0 + }, + { + "uuid": "eebbb8b9-03a3-4546-bc54-ed8cba591352", + "artist": { + "id": 8247, + "fid": "https://open.audio/federation/actors/logoroknoise", + "mbid": "None", + "name": "Logorok Noise Music", + "creation_date": "2022-04-30T19:38:06.239019Z", + "modification_date": "2022-04-30T19:38:06.239128Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Noise made with my DIY modular synthsizers.</p>", + "content_type": "text/html", + "html": "<p>Noise made with my DIY modular synthsizers.</p>" + }, + "cover": { + "uuid": "bd59eb6a-d9ae-473f-95e6-6fde1413495f", + "size": 2062887, + "mimetype": "image/jpeg", + "creation_date": "2022-04-30T19:55:13.349289Z", + "urls": { + "source": "https://open.audio/media/attachments/bc/38/87/img_5330_x.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/47/eb/f9/img_5330_x.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8fadc46f78cab6a8eb3d793bdf6178cd5849299c56f73cdbf9afc5c572133484", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/47/eb/f9/img_5330_x-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=79c0225cdabd214dd868d91459f6831e61768b1dd39cc7d2164c1bbaf349bdc6", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/47/eb/f9/img_5330_x-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c880abeb4f84e552e2f9bd4e600a1c5b8fd553903395d1ea1402d6ef5121097e" + } + }, + "channel": "eebbb8b9-03a3-4546-bc54-ed8cba591352", + "tracks_count": 1, + "tags": [ + "audience", + "Electronic", + "HarshNoise", + "harshnoisewall", + "modular", + "no", + "noise", + "synthesizer", + "Underground" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/Logorok", + "url": "https://open.audio/@Logorok", + "creation_date": "2022-04-30T19:38:06.230867Z", + "summary": null, + "preferred_username": "Logorok", + "name": "Logorok", + "last_fetch_date": "2022-05-09T20:15:25.407052Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Logorok@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/logoroknoise", + "url": "https://open.audio/channels/logoroknoise", + "creation_date": "2022-04-30T19:38:02.967197Z", + "summary": null, + "preferred_username": "logoroknoise", + "name": "Logorok Noise Music", + "last_fetch_date": "2022-04-30T19:55:13.098976Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "logoroknoise@open.audio", + "is_local": false + }, + "creation_date": "2022-04-30T19:38:06.329823Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/logoroknoise/rss", + "url": "https://open.audio/channels/logoroknoise", + "downloads_count": 0 + }, + { + "uuid": "f2e7cb3d-a950-44f3-b998-fc52f5dde13a", + "artist": { + "id": 8246, + "fid": "https://open.audio/federation/actors/fightbackradio", + "mbid": "None", + "name": "Fight Back! Radio", + "creation_date": "2022-04-30T02:40:34.153722Z", + "modification_date": "2022-04-30T02:40:34.153917Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Fight Back! Radio takes you to the heart of the peoples' struggles, and bring you a working class perspective on labor, black liberation, anti-imperialism, and all other struggles for a better world.</p>", + "content_type": "text/html", + "html": "<p>Fight Back! Radio takes you to the heart of the peoples' struggles, and bring you a working class perspective on labor, black liberation, anti-imperialism, and all other struggles for a better world.</p>" + }, + "cover": { + "uuid": "19972c1a-3e9e-4291-97f4-54564891e683", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-17T10:25:21.016548Z", + "urls": { + "source": "https://open.audio/media/attachments/a2/82/1d/logo.jpeg", + "original": "https://soundship.de/api/v1/attachments/19972c1a-3e9e-4291-97f4-54564891e683/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/19972c1a-3e9e-4291-97f4-54564891e683/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/19972c1a-3e9e-4291-97f4-54564891e683/proxy?next=large_square_crop" + } + }, + "channel": "f2e7cb3d-a950-44f3-b998-fc52f5dde13a", + "tracks_count": 2, + "tags": [ + "back", + "communism", + "fight", + "labor", + "leftist", + "News", + "Radio", + "socialism", + "socialist" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/fbpodadmin", + "url": "https://open.audio/@fbpodadmin", + "creation_date": "2022-04-30T02:40:34.142082Z", + "summary": null, + "preferred_username": "fbpodadmin", + "name": "fbpodadmin", + "last_fetch_date": "2022-09-17T10:25:20.819558Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "fbpodadmin@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/fightbackradio", + "url": "https://open.audio/channels/fightbackradio", + "creation_date": "2022-04-30T02:40:33.964603Z", + "summary": null, + "preferred_username": "fightbackradio", + "name": "Fight Back! Radio", + "last_fetch_date": "2022-05-01T23:34:54.784532Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "fightbackradio@open.audio", + "is_local": false + }, + "creation_date": "2022-04-30T02:40:34.232074Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/fightbackradio/rss", + "url": "https://open.audio/channels/fightbackradio", + "downloads_count": 0 + }, + { + "uuid": "c4a7ff70-6055-4e64-8500-5eabe4f8c5e3", + "artist": { + "id": 8245, + "fid": "https://open.audio/federation/actors/dialecticaabolicionistapodcast", + "mbid": "None", + "name": "Dialéctica abolicionista Podcast", + "creation_date": "2022-04-27T19:23:38.121099Z", + "modification_date": "2022-04-27T19:23:38.121272Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Reflexiones filosóficas en respecto a la relación entre los humanos y los demás animales.</p>", + "content_type": "text/html", + "html": "<p>Reflexiones filosóficas en respecto a la relación entre los humanos y los demás animales.</p>" + }, + "cover": { + "uuid": "005a13ae-c5b8-49e5-98fa-d323ce10efdb", + "size": 202275, + "mimetype": "image/jpeg", + "creation_date": "2022-05-26T19:54:24.355750Z", + "urls": { + "source": "https://open.audio/media/attachments/0e/ac/b8/photo_2022-03-26_06-01-39.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/91/15/ca/photo_2022-03-26_06-01-39.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e177fae6295bcfbb2ff21b9817bd4e63064a1ad904b37c3e0c60360a9e77b872", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/91/15/ca/photo_2022-03-26_06-01-39-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2f08f396169bcbcf0eb684a2eecda35081ff5e8294e8846ea1b898d07b0354bf", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/91/15/ca/photo_2022-03-26_06-01-39-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5d9879f40825fd77d237c56e76baf708f106a930c9844d5bf2149771a21b60ae" + } + }, + "channel": "c4a7ff70-6055-4e64-8500-5eabe4f8c5e3", + "tracks_count": 2, + "tags": [ + "veganismo" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/anr", + "url": "https://open.audio/@anr", + "creation_date": "2021-10-10T05:16:37.013038Z", + "summary": null, + "preferred_username": "anr", + "name": "anr", + "last_fetch_date": "2022-05-26T19:54:24.298391Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "anr@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/dialecticaabolicionistapodcast", + "url": "https://open.audio/channels/dialecticaabolicionistapodcast", + "creation_date": "2022-04-27T19:23:37.854353Z", + "summary": null, + "preferred_username": "dialecticaabolicionistapodcast", + "name": "Dialéctica abolicionista Podcast", + "last_fetch_date": "2022-05-26T19:54:23.898962Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dialecticaabolicionistapodcast@open.audio", + "is_local": false + }, + "creation_date": "2022-04-27T19:23:38.180464Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/dialecticaabolicionistapodcast/rss", + "url": "https://open.audio/channels/dialecticaabolicionistapodcast", + "downloads_count": 0 + }, + { + "uuid": "c87b7c03-e538-44e7-bdb4-ecab97bd3465", + "artist": { + "id": 8242, + "fid": "https://open.audio/federation/actors/elpodcastdelespacioharo", + "mbid": "None", + "name": "El Podcast del Espacio Haro", + "creation_date": "2022-04-23T00:54:14.907517Z", + "modification_date": "2022-04-23T00:54:14.907620Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>El podcast del Espacio Haro es un momento ecléctico en tu vida cotidiana. Historia, musica y mas, en momento de aprendizaje</p><p>Podes colaborar con el podcast desde aquí <a href=\"https://coindrop.to/elespacioharo\">https://coindrop.to/elespacioharo</a></p>", + "content_type": "text/html", + "html": "<p>El podcast del Espacio Haro es un momento ecléctico en tu vida cotidiana. Historia, musica y mas, en momento de aprendizaje</p><p>Podes colaborar con el podcast desde aquí <a href=\"https://coindrop.to/elespacioharo\">https://coindrop.to/elespacioharo</a></p>" + }, + "cover": { + "uuid": "0e725a41-1fe5-49e6-bece-9d14ecd07b57", + "size": 313033, + "mimetype": "image/jpeg", + "creation_date": "2022-04-23T01:01:02.595998Z", + "urls": { + "source": "https://open.audio/media/attachments/67/8d/82/deltachat-2022-04-03-213015.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/3e/14/5f/deltachat-2022-04-03-213015.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=35e56ff6d0e5053d1495a41b43c82ee5712922828d64279f7df7f2d6eca35479", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3e/14/5f/deltachat-2022-04-03-213015-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1b41c69db1d4a2bedab2b572f53635b57d23ba0d64130b33adfb969222561f3f", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3e/14/5f/deltachat-2022-04-03-213015-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=18fe361e24200865fec38d4850c2d339264923750e9a422624a8f801c7f2f087" + } + }, + "channel": "c87b7c03-e538-44e7-bdb4-ecab97bd3465", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/elespacioharo", + "url": "https://open.audio/@elespacioharo", + "creation_date": "2022-04-23T00:54:14.896154Z", + "summary": null, + "preferred_username": "elespacioharo", + "name": "elespacioharo", + "last_fetch_date": "2022-04-23T01:01:02.552196Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "elespacioharo@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/elpodcastdelespacioharo", + "url": "https://open.audio/channels/elpodcastdelespacioharo", + "creation_date": "2022-04-23T00:54:14.685073Z", + "summary": null, + "preferred_username": "elpodcastdelespacioharo", + "name": "El Podcast del Espacio Haro", + "last_fetch_date": "2022-04-23T01:01:02.259646Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "elpodcastdelespacioharo@open.audio", + "is_local": false + }, + "creation_date": "2022-04-23T00:54:14.957990Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/elpodcastdelespacioharo/rss", + "url": "https://open.audio/channels/elpodcastdelespacioharo", + "downloads_count": 0 + }, + { + "uuid": "50547633-8ce9-4203-bbf7-4ad0af8e3905", + "artist": { + "id": 8241, + "fid": "https://open.audio/federation/actors/chouman", + "mbid": "None", + "name": "Chou man", + "creation_date": "2022-04-22T23:45:47.583206Z", + "modification_date": "2022-04-22T23:45:47.583373Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Compositions peu structurées par quelqu'un qui n'a pas dépassé les notions de solfège enseignées au collège.<br>Musique programmée en MIDI avec <a href=\"https://ariamaestosa.github.io/ariamaestosa/docs/index.html\">Aria Maestosa</a><br>Jouée avec la bibliothèque de sons <a href=\"https://schristiancollins.com/generaluser.php\">GeneralUser GS</a><br>Un grand merci aux communautés qui permettent à ces ressources d'exister !</p>", + "content_type": "text/html", + "html": "<p>Compositions peu structurées par quelqu'un qui n'a pas dépassé les notions de solfège enseignées au collège.<br>Musique programmée en MIDI avec <a href=\"https://ariamaestosa.github.io/ariamaestosa/docs/index.html\">Aria Maestosa</a><br>Jouée avec la bibliothèque de sons <a href=\"https://schristiancollins.com/generaluser.php\">GeneralUser GS</a><br>Un grand merci aux communautés qui permettent à ces ressources d'exister !</p>" + }, + "cover": { + "uuid": "05612f5b-86c7-447e-be98-b14b60ed9b4c", + "size": 378211, + "mimetype": "image/png", + "creation_date": "2022-06-01T23:55:24.416563Z", + "urls": { + "source": "https://open.audio/media/attachments/1a/86/b6/final-chouman.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/85/5b/cd/final-chouman.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=41bbbcd44bd6bb2da154d3798c7cf9e0ada5b0fd8a14cc669c844db17f0cb742", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/85/5b/cd/final-chouman-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=50811e20e52b855de1f396d2491af54f7fff58a39f6273dca76848128a9b19e8", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/85/5b/cd/final-chouman-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=beef5e23b2a18c1f719067802468c5463ab4023c7212ce4bedca65e941e1aa71" + } + }, + "channel": "50547633-8ce9-4203-bbf7-4ad0af8e3905", + "tracks_count": 14, + "tags": [ + "midi" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/aaAbcegir", + "url": "https://open.audio/@aaAbcegir", + "creation_date": "2022-04-22T23:45:47.569623Z", + "summary": null, + "preferred_username": "aaAbcegir", + "name": "aaAbcegir", + "last_fetch_date": "2022-06-01T23:55:24.362053Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "aaAbcegir@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/chouman", + "url": "https://open.audio/channels/chouman", + "creation_date": "2022-04-22T23:45:47.379668Z", + "summary": null, + "preferred_username": "chouman", + "name": "Chou man", + "last_fetch_date": "2022-06-01T23:55:24.098015Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "chouman@open.audio", + "is_local": false + }, + "creation_date": "2022-04-22T23:45:47.662218Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/chouman/rss", + "url": "https://open.audio/channels/chouman", + "downloads_count": 0 + }, + { + "uuid": "4ece94a9-d532-4637-a3db-cdd188520855", + "artist": { + "id": 8239, + "fid": "https://soundship.de/federation/music/artists/1563b199-4fd5-4205-a842-e19de4fedd1c", + "mbid": "None", + "name": "Scene World – The C64 NTSC/PAL Disk Magazine – Podcast", + "creation_date": "2022-04-09T06:56:16.552537Z", + "modification_date": "2022-04-09T06:56:16.552655Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Scene World Podcast with Derision as host, Nafcom as co-host and always a special guest.", + "content_type": "text/plain", + "html": "<p>Scene World Podcast with Derision as host, Nafcom as co-host and always a special guest.</p>" + }, + "cover": { + "uuid": "a411847c-0862-47db-b2b4-2029d2224d3d", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-25T00:00:03.696758Z", + "urls": { + "source": "http://sceneworld.org/assets/images/podcast-cover.jpg", + "original": "https://soundship.de/api/v1/attachments/a411847c-0862-47db-b2b4-2029d2224d3d/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/a411847c-0862-47db-b2b4-2029d2224d3d/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/a411847c-0862-47db-b2b4-2029d2224d3d/proxy?next=large_square_crop" + } + }, + "channel": "4ece94a9-d532-4637-a3db-cdd188520855", + "tracks_count": 0, + "tags": [ + "Games", + "Hobbies" + ] + }, + "attributed_to": { + "fid": "https://soundship.de/federation/actors/service", + "url": null, + "creation_date": "2020-05-06T21:49:48.041570Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2020-05-06T21:49:48.041601Z", + "domain": "soundship.de", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@soundship.de", + "is_local": true + }, + "actor": null, + "creation_date": "2022-04-09T06:56:16.678372Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": null, + "owner_name": "Scene World Magazine", + "owner_email": "contact@sceneworld.org", + "itunes_category": null, + "itunes_subcategory": "Video Games" + }, + "rss_url": "http://feeds.feedburner.com/sceneworldpodcast", + "url": "https://sceneworld.org/", + "downloads_count": 0 + }, + { + "uuid": "6b8acdd0-676e-455d-b578-0862879dfe43", + "artist": { + "id": 8238, + "fid": "https://open.audio/federation/actors/artlin_music", + "mbid": "None", + "name": "ArtLin Music", + "creation_date": "2022-04-05T09:57:49.395297Z", + "modification_date": "2022-04-05T09:57:49.395383Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": { + "uuid": "5b7836d0-40a5-4143-9760-b277a5fb88a9", + "size": 2020536, + "mimetype": "image/jpeg", + "creation_date": "2022-06-30T09:30:36.909744Z", + "urls": { + "source": "https://open.audio/media/attachments/bd/c0/f9/photo_2020-03-22_22-52-24_upscaled_image_x4.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/ad/01/4b/photo_2020-03-22_22-52-24_upscaled_image_x4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=dcc009f351059002f3b35f23a55728fb6149fea2f5a77318390e68049ce47aef", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ad/01/4b/photo_2020-03-22_22-52-24_upscaled_image_x4-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b7c4eb886c0d50de0dcffb1136882b51fa7b3d1b204edc69a91ef98c690a9978", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ad/01/4b/photo_2020-03-22_22-52-24_upscaled_image_x4-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=01cb591e655ecd816350dec3fe4954f6ebeb8dfe0403b06998dd38a681715eda" + } + }, + "channel": "6b8acdd0-676e-455d-b578-0862879dfe43", + "tracks_count": 2, + "tags": [ + "Music" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/ArtLinMusic", + "url": "https://open.audio/@ArtLinMusic", + "creation_date": "2022-04-05T09:57:49.380720Z", + "summary": null, + "preferred_username": "ArtLinMusic", + "name": "ArtLinMusic", + "last_fetch_date": "2022-06-30T09:30:36.854705Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ArtLinMusic@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/artlin_music", + "url": "https://open.audio/channels/artlin_music", + "creation_date": "2022-04-05T09:57:44.334899Z", + "summary": null, + "preferred_username": "artlin_music", + "name": "ArtLin Music", + "last_fetch_date": "2022-06-30T09:30:36.378030Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "artlin_music@open.audio", + "is_local": false + }, + "creation_date": "2022-04-05T09:57:49.448816Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/artlin_music/rss", + "url": "https://open.audio/channels/artlin_music", + "downloads_count": 0 + }, + { + "uuid": "c9c4f5fb-9faf-4208-9b45-5a03767fd277", + "artist": { + "id": 8235, + "fid": "https://open.audio/federation/actors/improvworkshop", + "mbid": "None", + "name": "Maltes Improv Workshop", + "creation_date": "2022-04-01T23:09:41.189038Z", + "modification_date": "2022-04-01T23:09:41.189138Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p><strong>This is my little music workshop!</strong></p><p>Find improvised music here, all licensed under various Creative Commons licenses! For Details read the track descriptions! If you're interested in my Compositions, head over to Bandcamp, where you can <strong>purchase my albums:</strong></p><p><a href=\"https://maltehollmann.bandcamp.com\">https://maltehollmann.bandcamp.com</a></p><p>Videos:</p><p><a href=\"https://tube.tchncs.de/a/maltehollmann/video-channels\">https://tube.tchncs.de/a/maltehollmann/video-channels</a></p><p>-</p><p>You can <strong>support my work</strong> on Patreon or Ko-Fi:</p><p><a href=\"https://www.patreon.com/maltehollmann\">https://www.patreon.com/maltehollmann</a></p><p><a href=\"https://ko-fi.com/maltehollmann\">https://ko-fi.com/maltehollmann</a></p>", + "content_type": "text/html", + "html": "<p><strong>This is my little music workshop!</strong></p><p>Find improvised music here, all licensed under various Creative Commons licenses! For Details read the track descriptions! If you're interested in my Compositions, head over to Bandcamp, where you can <strong>purchase my albums:</strong></p><p><a href=\"https://maltehollmann.bandcamp.com\">https://maltehollmann.bandcamp.com</a></p><p>Videos:</p><p><a href=\"https://tube.tchncs.de/a/maltehollmann/video-channels\">https://tube.tchncs.de/a/maltehollmann/video-channels</a></p><p>-</p><p>You can <strong>support my work</strong> on Patreon or Ko-Fi:</p><p><a href=\"https://www.patreon.com/maltehollmann\">https://www.patreon.com/maltehollmann</a></p><p><a href=\"https://ko-fi.com/maltehollmann\">https://ko-fi.com/maltehollmann</a></p>" + }, + "cover": { + "uuid": "28ea3ad6-af88-451a-8568-bc5d75003433", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-14T09:37:00.237088Z", + "urls": { + "source": "https://open.audio/media/attachments/2a/fa/ab/profilb_jotitze.jpg", + "original": "https://soundship.de/api/v1/attachments/28ea3ad6-af88-451a-8568-bc5d75003433/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/28ea3ad6-af88-451a-8568-bc5d75003433/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/28ea3ad6-af88-451a-8568-bc5d75003433/proxy?next=large_square_crop" + } + }, + "channel": "c9c4f5fb-9faf-4208-9b45-5a03767fd277", + "tracks_count": 30, + "tags": [ + "creativecommons", + "Improvisation", + "Instrumental", + "piano" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/MalteHollmann", + "url": "https://open.audio/@MalteHollmann", + "creation_date": "2022-04-01T23:09:41.167744Z", + "summary": null, + "preferred_username": "MalteHollmann", + "name": "MalteHollmann", + "last_fetch_date": "2022-09-14T09:37:00.172790Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "MalteHollmann@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/improvworkshop", + "url": "https://open.audio/channels/improvworkshop", + "creation_date": "2022-04-01T23:09:40.978795Z", + "summary": null, + "preferred_username": "improvworkshop", + "name": "Maltes Improv Workshop", + "last_fetch_date": "2022-09-14T09:36:59.849888Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "improvworkshop@open.audio", + "is_local": false + }, + "creation_date": "2022-04-01T23:09:41.362209Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/improvworkshop/rss", + "url": "https://open.audio/channels/improvworkshop", + "downloads_count": 0 + }, + { + "uuid": "708ea3a5-2815-462e-9a76-cbb98d36883e", + "artist": { + "id": 8234, + "fid": "https://open.audio/federation/actors/silkkonvertor", + "mbid": "None", + "name": "Silk Konvertor", + "creation_date": "2022-03-12T07:46:15.991997Z", + "modification_date": "2022-03-12T07:46:15.992160Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>A live recording of Derek Shirley, Dave Bennett and jayrope from Ausland, Berlin, 2003. Lost and found.</p>", + "content_type": "text/html", + "html": "<p>A live recording of Derek Shirley, Dave Bennett and jayrope from Ausland, Berlin, 2003. Lost and found.</p>" + }, + "cover": { + "uuid": "c5d56ecf-166d-49e9-9303-9e2495dcb186", + "size": 263485, + "mimetype": "image/jpeg", + "creation_date": "2022-03-12T08:28:19.464227Z", + "urls": { + "source": "https://open.audio/media/attachments/43/a4/e4/silkpic.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/8c/29/63/silkpic.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=bb0b44bab7d8ef102b8519d53616ae7e63264b9e0cd52d79413d8f752d27b6cb", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/29/63/silkpic-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5c493e5fd545ac31195290eaa66fb44f208eba314d208b0e3d5b8cdeada65788", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/29/63/silkpic-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e917035b131c35579658b6b8de28cdcc9192d946340bb0666c46aa0d33073534" + } + }, + "channel": "708ea3a5-2815-462e-9a76-cbb98d36883e", + "tracks_count": 2, + "tags": [ + "Berlin", + "Electroacoustic", + "Improv", + "konvertor", + "silk" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/jayrope", + "url": "https://open.audio/@jayrope", + "creation_date": "2020-12-15T17:20:45.278379Z", + "summary": null, + "preferred_username": "jayrope", + "name": "jayrope", + "last_fetch_date": "2022-09-24T21:13:10.682813Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "jayrope@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/silkkonvertor", + "url": "https://open.audio/channels/silkkonvertor", + "creation_date": "2022-03-12T07:46:15.691849Z", + "summary": null, + "preferred_username": "silkkonvertor", + "name": "Silk Konvertor", + "last_fetch_date": "2022-03-12T08:28:18.934672Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "silkkonvertor@open.audio", + "is_local": false + }, + "creation_date": "2022-03-12T07:46:16.187648Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/silkkonvertor/rss", + "url": "https://open.audio/channels/silkkonvertor", + "downloads_count": 0 + }, + { + "uuid": "6f6fb0b7-22ef-40ba-8f1a-313acd72bae8", + "artist": { + "id": 8232, + "fid": "https://open.audio/federation/actors/radio_colibri", + "mbid": "None", + "name": "Rádio Colibri", + "creation_date": "2022-03-05T23:45:45.577527Z", + "modification_date": "2022-03-05T23:45:45.577657Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Direto da Comuna Imaginária do Kõkõnõre, seu podcast sobre saúde menta relacional</p>", + "content_type": "text/html", + "html": "<p>Direto da Comuna Imaginária do Kõkõnõre, seu podcast sobre saúde menta relacional</p>" + }, + "cover": { + "uuid": "69298ae0-324b-4577-b900-181100eb7f36", + "size": 110697, + "mimetype": "image/jpeg", + "creation_date": "2022-07-04T15:08:17.831901Z", + "urls": { + "source": "https://open.audio/media/attachments/fa/59/10/radio_colibri.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/df/3c/3f/radio_colibri.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=207b02a7dcf132b7fa4c144e63b0f20bc17e320f44d365289bdcd64dd7a87fec", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/df/3c/3f/radio_colibri-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b15c72957d9b14d2ce92fc23d19e25cedbcd44665aa4fe6bee97f0e7d86484ac", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/df/3c/3f/radio_colibri-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6daa82dbfbb5cb2b43316298ae142791a168cee5c1f938510792a8d521129102" + } + }, + "channel": "6f6fb0b7-22ef-40ba-8f1a-313acd72bae8", + "tracks_count": 15, + "tags": [ + "saude", + "saudemental" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/radiocolibri", + "url": "https://open.audio/@radiocolibri", + "creation_date": "2022-03-05T23:45:45.544878Z", + "summary": null, + "preferred_username": "radiocolibri", + "name": "radiocolibri", + "last_fetch_date": "2022-07-04T15:08:17.690073Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "radiocolibri@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/radio_colibri", + "url": "https://open.audio/channels/radio_colibri", + "creation_date": "2022-03-05T23:45:45.171661Z", + "summary": null, + "preferred_username": "radio_colibri", + "name": "Rádio Colibri", + "last_fetch_date": "2022-06-15T19:39:42.593034Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "radio_colibri@open.audio", + "is_local": false + }, + "creation_date": "2022-03-05T23:45:45.823059Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/radio_colibri/rss", + "url": "https://open.audio/channels/radio_colibri", + "downloads_count": 0 + }, + { + "uuid": "51d3eb08-ea07-462f-875f-c9d4ed2d796a", + "artist": { + "id": 8231, + "fid": "https://open.audio/federation/actors/chierdanslabouchealamusique", + "mbid": "None", + "name": "Chier dans la bouche à la musique", + "creation_date": "2022-03-04T04:01:10.734873Z", + "modification_date": "2022-03-04T04:01:10.735089Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Les improvisations de Foot Foot, Croushnaff ou Majoorité Plurielle. Des artistes dont les seuls propos sont la dis-harmonie, l'inconfort voire la révulsion</p>", + "content_type": "text/html", + "html": "<p>Les improvisations de Foot Foot, Croushnaff ou Majoorité Plurielle. Des artistes dont les seuls propos sont la dis-harmonie, l'inconfort voire la révulsion</p>" + }, + "cover": { + "uuid": "c273b637-e60f-44cc-b5fb-91e37b49eefb", + "size": 255974, + "mimetype": "image/png", + "creation_date": "2022-05-02T01:37:46.615735Z", + "urls": { + "source": "https://open.audio/media/attachments/ca/c6/12/majoriteplurielle.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f8/94/fa/majoriteplurielle.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=86c4c001072126c640b269edc3d77f5aabff73412e2cf740bccbc1727d9345c8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f8/94/fa/majoriteplurielle-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4a2bbac2d741e6415060c473cfcac4be5e58509ec4b4262a196e41c8feb1ae26", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f8/94/fa/majoriteplurielle-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a6012f0cc2e4141246dd1e40ac08e3639260a55196f9ad154a8e1c57f96d82e1" + } + }, + "channel": "51d3eb08-ea07-462f-875f-c9d4ed2d796a", + "tracks_count": 1, + "tags": [ + "branque", + "Impro", + "moche", + "noise" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/legeneralmidi", + "url": "https://open.audio/@legeneralmidi", + "creation_date": "2021-06-18T17:00:17.376565Z", + "summary": null, + "preferred_username": "legeneralmidi", + "name": "legeneralmidi", + "last_fetch_date": "2022-05-02T01:37:46.509102Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "legeneralmidi@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/chierdanslabouchealamusique", + "url": "https://open.audio/channels/chierdanslabouchealamusique", + "creation_date": "2022-03-04T04:01:10.041826Z", + "summary": null, + "preferred_username": "chierdanslabouchealamusique", + "name": "Chier dans la bouche à la musique", + "last_fetch_date": "2022-03-04T04:01:12.672033Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "chierdanslabouchealamusique@open.audio", + "is_local": false + }, + "creation_date": "2022-03-04T04:01:11.420117Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/chierdanslabouchealamusique/rss", + "url": "https://open.audio/channels/chierdanslabouchealamusique", + "downloads_count": 0 + }, + { + "uuid": "188b3168-d6fe-406a-8839-5a459a50aced", + "artist": { + "id": 8228, + "fid": "https://open.audio/federation/actors/letrajota", + "mbid": "None", + "name": "~jota", + "creation_date": "2022-02-16T19:44:17.545471Z", + "modification_date": "2022-02-16T19:44:17.545581Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Acá encuentras una variedad de mis creaciones musicales, algunas obsoletas y otras vigentes.</p>", + "content_type": "text/html", + "html": "<p>Acá encuentras una variedad de mis creaciones musicales, algunas obsoletas y otras vigentes.</p>" + }, + "cover": { + "uuid": "a99afd86-5f64-484f-9fc0-e7dc39ba21c4", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-18T22:36:00.296696Z", + "urls": { + "source": "https://open.audio/media/attachments/93/52/2b/jotadibujada.png", + "original": "https://soundship.de/api/v1/attachments/a99afd86-5f64-484f-9fc0-e7dc39ba21c4/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/a99afd86-5f64-484f-9fc0-e7dc39ba21c4/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/a99afd86-5f64-484f-9fc0-e7dc39ba21c4/proxy?next=large_square_crop" + } + }, + "channel": "188b3168-d6fe-406a-8839-5a459a50aced", + "tracks_count": 43, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/bureo", + "url": "https://open.audio/@bureo", + "creation_date": "2022-02-16T19:44:17.526858Z", + "summary": null, + "preferred_username": "bureo", + "name": "bureo", + "last_fetch_date": "2022-09-18T22:36:00.238299Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "bureo@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/letrajota", + "url": "https://open.audio/channels/letrajota", + "creation_date": "2022-02-16T19:44:17.350506Z", + "summary": null, + "preferred_username": "letrajota", + "name": "~jota", + "last_fetch_date": "2022-09-18T22:36:00.048693Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "letrajota@open.audio", + "is_local": false + }, + "creation_date": "2022-02-16T19:44:17.631861Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/letrajota/rss", + "url": "https://open.audio/channels/letrajota", + "downloads_count": 0 + }, + { + "uuid": "73ed7447-2475-43e4-a2f8-e5a00a4978b6", + "artist": { + "id": 8227, + "fid": "https://soundship.de/federation/music/artists/5629ab23-7b91-4359-baf3-bb9adf8f806f", + "mbid": "None", + "name": "Ö1 Radiokolleg", + "creation_date": "2022-02-10T11:14:49.283004Z", + "modification_date": "2022-09-22T03:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": null, + "cover": { + "uuid": "27a47e0f-3ef3-40e7-8025-40dfda3843e1", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T16:00:05.055803Z", + "urls": { + "source": "https://podcast.orf.at/podcast/oe1/oe1_radiokolleg/oe1_radiokolleg_premium.png", + "original": "https://soundship.de/api/v1/attachments/27a47e0f-3ef3-40e7-8025-40dfda3843e1/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/27a47e0f-3ef3-40e7-8025-40dfda3843e1/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/27a47e0f-3ef3-40e7-8025-40dfda3843e1/proxy?next=large_square_crop" + } + }, + "channel": "73ed7447-2475-43e4-a2f8-e5a00a4978b6", + "tracks_count": 142, + "tags": [] + }, + "attributed_to": { + "fid": "https://soundship.de/federation/actors/service", + "url": null, + "creation_date": "2020-05-06T21:49:48.041570Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2020-05-06T21:49:48.041601Z", + "domain": "soundship.de", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@soundship.de", + "is_local": true + }, + "actor": null, + "creation_date": "2022-02-10T11:14:49.358752Z", + "metadata": { + "explicit": null, + "language": "de-at", + "copyright": "© 2022 ORF / Ö1", + "owner_name": "ORF Ö1", + "owner_email": "podcast@orf.at", + "itunes_category": "Education", + "itunes_subcategory": "Self-Improvement" + }, + "rss_url": "https://podcast.orf.at/podcast/oe1/oe1_radiokolleg/oe1_radiokolleg.xml", + "url": "https://radiothek.orf.at/podcasts/oe1/oe1-radiokolleg", + "downloads_count": 0 + }, + { + "uuid": "335d19e8-2968-43f2-9715-e96aaf6394ad", + "artist": { + "id": 8226, + "fid": "https://open.audio/federation/actors/complexnumbers", + "mbid": "None", + "name": "Complex Numbers", + "creation_date": "2022-02-09T01:10:48.699392Z", + "modification_date": "2022-02-09T01:10:48.699491Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p><a href=\"https://complexnumbers.ru\">https://complexnumbers.ru</a></p><p><a href=\"https://www.wikidata.org/wiki/Q100269171\">https://www.wikidata.org/wiki/Q100269171</a></p>", + "content_type": "text/html", + "html": "<p><a href=\"https://complexnumbers.ru\">https://complexnumbers.ru</a></p><p><a href=\"https://www.wikidata.org/wiki/Q100269171\">https://www.wikidata.org/wiki/Q100269171</a></p>" + }, + "cover": { + "uuid": "405994db-92c5-4e58-bf7d-c2d1dea8bfb6", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-07T13:44:01.592281Z", + "urls": { + "source": "https://open.audio/media/attachments/a3/6a/98/logo.png", + "original": "https://soundship.de/api/v1/attachments/405994db-92c5-4e58-bf7d-c2d1dea8bfb6/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/405994db-92c5-4e58-bf7d-c2d1dea8bfb6/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/405994db-92c5-4e58-bf7d-c2d1dea8bfb6/proxy?next=large_square_crop" + } + }, + "channel": "335d19e8-2968-43f2-9715-e96aaf6394ad", + "tracks_count": 13, + "tags": [ + "Electronic", + "Russia", + "Transhumanism" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/vitaly_zdanevich", + "url": "https://open.audio/@vitaly_zdanevich", + "creation_date": "2022-02-09T01:10:48.686217Z", + "summary": null, + "preferred_username": "vitaly_zdanevich", + "name": "vitaly_zdanevich", + "last_fetch_date": "2022-09-07T13:44:01.474845Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "vitaly_zdanevich@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/complexnumbers", + "url": "https://open.audio/channels/complexnumbers", + "creation_date": "2022-02-09T01:10:48.427715Z", + "summary": null, + "preferred_username": "complexnumbers", + "name": "Complex Numbers", + "last_fetch_date": "2022-05-10T06:43:56.254808Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "complexnumbers@open.audio", + "is_local": false + }, + "creation_date": "2022-02-09T01:10:48.839937Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/complexnumbers/rss", + "url": "https://open.audio/channels/complexnumbers", + "downloads_count": 0 + }, + { + "uuid": "7f8e0606-288f-49ed-aa86-b351c7645026", + "artist": { + "id": 8225, + "fid": "https://soundship.de/federation/music/artists/ef4cb6ae-ae83-4d5d-a0cd-832458d56b56", + "mbid": "None", + "name": "Internet. Czas dziaÅ‚ać!", + "creation_date": "2022-02-07T14:07:54.661520Z", + "modification_date": "2022-08-05T11:31:21Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "<p>Walczymy o prawo do prywatnoÅ›ci i kontroli nad technologiÄ…. Gromadzimy i omawiamy wiadomoÅ›ci ze Å›wiata technologii pod wzglÄ™dem prywatnoÅ›ci i praw użytkowników. Skupiamy siÄ™ na praktycznych aspektach prywatnoÅ›ci oraz na sposobach, w jaki konsumenci mogÄ… mieć wpÅ‚yw na ksztaÅ‚t Å›wiata technologii.</p>", + "content_type": "text/html", + "html": "<p>Walczymy o prawo do prywatnoÅ›ci i kontroli nad technologiÄ…. Gromadzimy i omawiamy wiadomoÅ›ci ze Å›wiata technologii pod wzglÄ™dem prywatnoÅ›ci i praw użytkowników. Skupiamy siÄ™ na praktycznych aspektach prywatnoÅ›ci oraz na sposobach, w jaki konsumenci mogÄ… mieć wpÅ‚yw na ksztaÅ‚t Å›wiata technologii.</p>" + }, + "cover": { + "uuid": "ede1ef9f-1725-4bbd-ba3d-477a636fb208", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T22:00:05.098673Z", + "urls": { + "source": "https://podcast.midline.pl/media/attachments/d9/f5/7c/logo-podcast.png", + "original": "https://soundship.de/api/v1/attachments/ede1ef9f-1725-4bbd-ba3d-477a636fb208/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/ede1ef9f-1725-4bbd-ba3d-477a636fb208/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/ede1ef9f-1725-4bbd-ba3d-477a636fb208/proxy?next=large_square_crop" + } + }, + "channel": "7f8e0606-288f-49ed-aa86-b351c7645026", + "tracks_count": 35, + "tags": [ + "aplikacje", + "apple", + "big", + "czas", + "facebook", + "firefox", + "google", + "internet", + "kontrola", + "korporacje", + "linux", + "media", + "mozilla", + "nowoczesne", + "opensource", + "prawa", + "privacy", + "security", + "social", + "tech", + "technologia", + "technologie", + "technology", + "users", + "web", + "webowe", + "www" + ] + }, + "attributed_to": { + "fid": "https://soundship.de/federation/actors/service", + "url": null, + "creation_date": "2020-05-06T21:49:48.041570Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2020-05-06T21:49:48.041601Z", + "domain": "soundship.de", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@soundship.de", + "is_local": true + }, + "actor": null, + "creation_date": "2022-02-07T14:07:54.925161Z", + "metadata": { + "explicit": null, + "language": "pl", + "copyright": "All rights reserved", + "owner_name": "Arkadiusz Wieczorek, Kuba Orlik", + "owner_email": "kontakt@midline.pl", + "itunes_category": "Technology", + "itunes_subcategory": null + }, + "rss_url": "https://podcast.midline.pl/api/v1/channels/Midline/rss", + "url": "https://podcast.midline.pl/channels/Midline", + "downloads_count": 0 + }, + { + "uuid": "6cbb9f27-9de6-4480-a3c3-7556aeeb8885", + "artist": { + "id": 8223, + "fid": "https://open.audio/federation/actors/ndrgmusic", + "mbid": "None", + "name": "nediorg", + "creation_date": "2022-02-06T19:06:15.843288Z", + "modification_date": "2022-02-06T19:06:15.843419Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Дизайнер, Контент-мейкер, Человек.<br>nouns: he/him<br>13 y.o, straight<br>languages: Russian (native), English</p>", + "content_type": "text/html", + "html": "<p>Дизайнер, Контент-мейкер, Человек.<br>nouns: he/him<br>13 y.o, straight<br>languages: Russian (native), English</p>" + }, + "cover": { + "uuid": "092289bd-c6d8-4cf8-a86f-ffcfc2ebf08e", + "size": 172796, + "mimetype": "image/png", + "creation_date": "2022-02-25T11:53:20.972427Z", + "urls": { + "source": "https://open.audio/media/attachments/00/8f/72/nediorgnew.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b6/60/8c/nediorgnew.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=944cd31edfbfc06f2792af3773cf89ee7ec5208250d238f1e59521a9fed75e50", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b6/60/8c/nediorgnew-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=71ee6cfecb9603b4316f3cc0312847f1e0701b07ba3b0297646d332e07954106", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b6/60/8c/nediorgnew-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fb0146c477fc0e4515896a74f3249cc7217f7feac76888c51c44a88a11272fcd" + } + }, + "channel": "6cbb9f27-9de6-4480-a3c3-7556aeeb8885", + "tracks_count": 2, + "tags": [ + "Chiptune", + "Electronic" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/nediorg", + "url": "https://open.audio/@nediorg", + "creation_date": "2022-02-06T19:06:15.824107Z", + "summary": null, + "preferred_username": "nediorg", + "name": "nediorg", + "last_fetch_date": "2022-02-25T11:53:20.776171Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "nediorg@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/ndrgmusic", + "url": "https://open.audio/channels/ndrgmusic", + "creation_date": "2022-02-06T19:06:15.541103Z", + "summary": null, + "preferred_username": "ndrgmusic", + "name": "nediorg", + "last_fetch_date": "2022-02-07T17:12:46.750240Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ndrgmusic@open.audio", + "is_local": false + }, + "creation_date": "2022-02-06T19:06:15.923402Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/ndrgmusic/rss", + "url": "https://open.audio/channels/ndrgmusic", + "downloads_count": 0 + }, + { + "uuid": "43d658b6-835b-4a12-a2cd-7030315f812a", + "artist": { + "id": 8216, + "fid": "https://open.audio/federation/actors/cemea", + "mbid": "None", + "name": "cemea", + "creation_date": "2022-02-04T08:59:37.143114Z", + "modification_date": "2022-02-04T08:59:37.143209Z", + "is_local": false, + "content_category": "podcast", + "description": null, + "cover": { + "uuid": "a5cf104a-c852-4312-8cba-74f52b098d40", + "size": 187268, + "mimetype": "image/jpeg", + "creation_date": "2022-05-11T00:16:18.302165Z", + "urls": { + "source": "https://open.audio/media/attachments/13/0a/ad/fond-cemea.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/59/87/c0/fond-cemea.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d9b8a9837af63a33c6e227dfa3ec01dcbc9dc6ae7e9513c5f0836da0ae489831", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/59/87/c0/fond-cemea-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=458be6c44520c48eb81f19327793b1dc4a5e135baf619dceeb93851a51fd5f5e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/59/87/c0/fond-cemea-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6d72c64b89d66a135428055472eb520edeb8a01df8adee935feccf27fa8834c0" + } + }, + "channel": "43d658b6-835b-4a12-a2cd-7030315f812a", + "tracks_count": 2, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/francoisa", + "url": "https://open.audio/@francoisa", + "creation_date": "2022-02-04T08:59:37.102099Z", + "summary": null, + "preferred_username": "francoisa", + "name": "francoisa", + "last_fetch_date": "2022-05-11T00:16:18.250618Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "francoisa@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/cemea", + "url": "https://open.audio/channels/cemea", + "creation_date": "2022-02-04T08:59:36.962342Z", + "summary": null, + "preferred_username": "cemea", + "name": "cemea", + "last_fetch_date": "2022-02-06T14:10:02.271759Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "cemea@open.audio", + "is_local": false + }, + "creation_date": "2022-02-04T08:59:37.181343Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/cemea/rss", + "url": "https://open.audio/channels/cemea", + "downloads_count": 0 + }, + { + "uuid": "b330f7bd-9333-40b2-9668-0e36ff27654f", + "artist": { + "id": 8215, + "fid": "https://open.audio/federation/actors/yakamedia", + "mbid": "None", + "name": "YAKAMÉDIA", + "creation_date": "2022-02-02T20:13:09.413992Z", + "modification_date": "2022-02-02T20:13:09.414064Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>La médiathèque éduc'active des CEMÉA</p>", + "content_type": "text/html", + "html": "<p>La médiathèque éduc'active des CEMÉA</p>" + }, + "cover": { + "uuid": "54172bbe-a1c3-4cb9-942c-1d0eb9045905", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-17T19:12:48.841640Z", + "urls": { + "source": "https://open.audio/media/attachments/1f/08/b2/logo-3-points-yakamedia-306x306.jpeg", + "original": "https://soundship.de/api/v1/attachments/54172bbe-a1c3-4cb9-942c-1d0eb9045905/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/54172bbe-a1c3-4cb9-942c-1d0eb9045905/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/54172bbe-a1c3-4cb9-942c-1d0eb9045905/proxy?next=large_square_crop" + } + }, + "channel": "b330f7bd-9333-40b2-9668-0e36ff27654f", + "tracks_count": 7, + "tags": [ + "éducation" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/redaction_yakamedia", + "url": "https://open.audio/@redaction_yakamedia", + "creation_date": "2022-02-02T20:13:09.405362Z", + "summary": null, + "preferred_username": "redaction_yakamedia", + "name": "redaction_yakamedia", + "last_fetch_date": "2022-09-17T19:12:48.622242Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "redaction_yakamedia@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/yakamedia", + "url": "https://open.audio/channels/yakamedia", + "creation_date": "2022-02-02T20:13:09.016425Z", + "summary": null, + "preferred_username": "yakamedia", + "name": "YAKAMÉDIA", + "last_fetch_date": "2022-07-16T15:16:08.095363Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "yakamedia@open.audio", + "is_local": false + }, + "creation_date": "2022-02-02T20:13:09.477071Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/yakamedia/rss", + "url": "https://open.audio/channels/yakamedia", + "downloads_count": 0 + }, + { + "uuid": "f1383b9f-7084-48a9-ba86-137f8aa41ad2", + "artist": { + "id": 8214, + "fid": "https://open.audio/federation/actors/celestiasmusic", + "mbid": "None", + "name": "Celestia's Music", + "creation_date": "2022-01-26T08:25:02.811949Z", + "modification_date": "2022-01-26T08:25:02.812100Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>This is where I will post and publish all of my music. See more @alicorn</p>", + "content_type": "text/html", + "html": "<p>This is where I will post and publish all of my music. See more @alicorn</p>" + }, + "cover": { + "uuid": "b455418c-07dc-459c-9705-051e88ef9401", + "size": 38171, + "mimetype": "image/png", + "creation_date": "2022-04-16T04:36:21.146738Z", + "urls": { + "source": "https://open.audio/media/attachments/a4/2f/43/screenshot-from-2022-01-26-02-57-33.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/33/21/f7/screenshot-from-2022-01-26-02-57-33.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6bbdf588df5959cffe48b394ba39b99a026ebc79c47de82adb14d1d6fff43ce0", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/33/21/f7/screenshot-from-2022-01-26-02-57-33-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9314ee61969990ad50223ac5ccdfcb0569bfd5ab26fa07e5f128694221f4ae9b", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/33/21/f7/screenshot-from-2022-01-26-02-57-33-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=90bc0d415e0bf7955b8575dfba19582a48c7c050baa29301866e6278c90c87ea" + } + }, + "channel": "f1383b9f-7084-48a9-ba86-137f8aa41ad2", + "tracks_count": 2, + "tags": [ + "Classical", + "Jazz", + "Orchestral" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/alicorn", + "url": "https://open.audio/@alicorn", + "creation_date": "2022-01-26T08:25:02.797076Z", + "summary": null, + "preferred_username": "alicorn", + "name": "alicorn", + "last_fetch_date": "2022-04-16T04:36:21.075568Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "alicorn@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/celestiasmusic", + "url": "https://open.audio/channels/celestiasmusic", + "creation_date": "2022-01-26T08:24:59.404348Z", + "summary": null, + "preferred_username": "celestiasmusic", + "name": "Celestia's Music", + "last_fetch_date": "2022-03-23T22:07:26.279225Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "celestiasmusic@open.audio", + "is_local": false + }, + "creation_date": "2022-01-26T08:25:02.894942Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/celestiasmusic/rss", + "url": "https://open.audio/channels/celestiasmusic", + "downloads_count": 0 + }, + { + "uuid": "2ed0635e-6446-469e-8f6a-8403fdf764f4", + "artist": { + "id": 8207, + "fid": "https://open.audio/federation/actors/spurenderarbeit", + "mbid": "None", + "name": "Spuren der Arbeit", + "creation_date": "2022-01-18T23:10:22.165859Z", + "modification_date": "2022-01-18T23:10:22.166185Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Die Hälfte unserer Wachzeit verbringen wir bei der Arbeit. Unsere Lebensjahre sind mit Geschichten über die Arbeit verwoben, die am Esstisch, im Pausenraum und in Bars erzählt werden. Doch diese Geschichten werden selten gedruckt, untersucht oder so gesehen, wie sie es sein sollten: als Teil dessen, was Arbeiter:innen tun, um ihre Stellung im Kapitalismus zu verstehen und zu verändern.</p><p>Auf dem Blog Recomposition von den IWW (Industrials Workers of the World) veröffentlichten Arbeiter:innen ihre Geschichten. Aus ihnen entstand im Jahr 2013 der Sammelband Lines of Work. Stories of Work and Resistance. Die deutsche Übersetzung erschien 2021 beim Verlag Die Buchmacherei. <br>Hier geht es zur ausführlichen Rezension: <a href=\"https://direkteaktion.org/spuren-der-arbeit/\">https://direkteaktion.org/spuren-der-arbeit/</a></p><p>In diesem Podcast erscheint jeden zweiten Montag ein neues Kapitel des Sammelbands. </p><p>Mark Richter, Levke Asyr, Ada Amhang, Scott Nikolas Nappalos (Hg.). Spuren der Arbeit, Geschichten von Jobs und Widerstand. Verlag Die Buchmacherei. September 2021. ISBN 978-3-9823317-1-3. (<a href=\"https://diebuchmacherei.de/produkt/spuren-der-arbeit-geschichten-von-jobs-und-widerstand\">https://diebuchmacherei.de/produkt/spuren-der-arbeit-geschichten-von-jobs-und-widerstand</a>)</p>", + "content_type": "text/html", + "html": "<p>Die Hälfte unserer Wachzeit verbringen wir bei der Arbeit. Unsere Lebensjahre sind mit Geschichten über die Arbeit verwoben, die am Esstisch, im Pausenraum und in Bars erzählt werden. Doch diese Geschichten werden selten gedruckt, untersucht oder so gesehen, wie sie es sein sollten: als Teil dessen, was Arbeiter:innen tun, um ihre Stellung im Kapitalismus zu verstehen und zu verändern.</p><p>Auf dem Blog Recomposition von den IWW (Industrials Workers of the World) veröffentlichten Arbeiter:innen ihre Geschichten. Aus ihnen entstand im Jahr 2013 der Sammelband Lines of Work. Stories of Work and Resistance. Die deutsche Übersetzung erschien 2021 beim Verlag Die Buchmacherei. <br>Hier geht es zur ausführlichen Rezension: <a href=\"https://direkteaktion.org/spuren-der-arbeit/\">https://direkteaktion.org/spuren-der-arbeit/</a></p><p>In diesem Podcast erscheint jeden zweiten Montag ein neues Kapitel des Sammelbands. </p><p>Mark Richter, Levke Asyr, Ada Amhang, Scott Nikolas Nappalos (Hg.). Spuren der Arbeit, Geschichten von Jobs und Widerstand. Verlag Die Buchmacherei. September 2021. ISBN 978-3-9823317-1-3. (<a href=\"https://diebuchmacherei.de/produkt/spuren-der-arbeit-geschichten-von-jobs-und-widerstand\">https://diebuchmacherei.de/produkt/spuren-der-arbeit-geschichten-von-jobs-und-widerstand</a>)</p>" + }, + "cover": { + "uuid": "20644489-d895-45fa-8803-e7a0acb85ebc", + "size": 8053026, + "mimetype": "image/jpeg", + "creation_date": "2022-06-13T13:36:02.205568Z", + "urls": { + "source": "https://open.audio/media/attachments/8a/04/48/img_0761.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/cb/db/ac/img_0761.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7feedd83b81f77db2d79da0ac7a34991af9331c72cbfcdd9eb945bec00a4e3f3", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/cb/db/ac/img_0761-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d19e9083ae5f519ce6cfe395e0b599f5db348c567b3fa92ba68e3d81001753fb", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/cb/db/ac/img_0761-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0d037a208359cfb4077d8cd1b487073b33037857fa3dd8ab81a02bc516e907fa" + } + }, + "channel": "2ed0635e-6446-469e-8f6a-8403fdf764f4", + "tracks_count": 19, + "tags": [ + "Arbeitskämpfe", + "IWW", + "Klassenkampf", + "Recomposition" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/carokoenigs", + "url": "https://open.audio/@carokoenigs", + "creation_date": "2021-08-14T11:22:00.231622Z", + "summary": null, + "preferred_username": "carokoenigs", + "name": "carokoenigs", + "last_fetch_date": "2022-06-13T13:36:02.153062Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "carokoenigs@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/spurenderarbeit", + "url": "https://open.audio/channels/spurenderarbeit", + "creation_date": "2022-01-18T23:10:21.841394Z", + "summary": null, + "preferred_username": "spurenderarbeit", + "name": "Spuren der Arbeit", + "last_fetch_date": "2022-06-13T13:35:59.372888Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "spurenderarbeit@open.audio", + "is_local": false + }, + "creation_date": "2022-01-18T23:10:22.333232Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/spurenderarbeit/rss", + "url": "https://open.audio/channels/spurenderarbeit", + "downloads_count": 0 + }, + { + "uuid": "893ac499-0c4f-43d1-9032-9d1d8e3d8e4e", + "artist": { + "id": 8176, + "fid": "https://open.audio/federation/actors/lyrikvertonungen", + "mbid": "None", + "name": "Lyrikvertonungen", + "creation_date": "2022-01-14T16:59:27.948048Z", + "modification_date": "2022-01-14T16:59:27.948246Z", + "is_local": false, + "content_category": "podcast", + "description": null, + "cover": { + "uuid": "84b9e7f2-7e62-4e42-bde5-473972637a16", + "size": 565033, + "mimetype": "image/jpeg", + "creation_date": "2022-01-14T17:19:17.255289Z", + "urls": { + "source": "https://open.audio/media/attachments/41/46/09/ink-gc2c0a8d35_1920.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/2a/ae/1d/ink-gc2c0a8d35_1920.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ccb382a114d947ada760ef00727fa80413e3d7a3ad5eae86de226beb5255a373", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2a/ae/1d/ink-gc2c0a8d35_1920-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e4655e350526d489da651ccfabb7b64914caf0355ab430fdbe5ce55ee78fdd56", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2a/ae/1d/ink-gc2c0a8d35_1920-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fd3c8d81bdeb3ade91e52ff8c5c53c9d31f80bbf7c37d59557b453db6b09473c" + } + }, + "channel": "893ac499-0c4f-43d1-9032-9d1d8e3d8e4e", + "tracks_count": 1, + "tags": [ + "Gedichte", + "Kunst", + "Lyrik" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/carokoenigs", + "url": "https://open.audio/@carokoenigs", + "creation_date": "2021-08-14T11:22:00.231622Z", + "summary": null, + "preferred_username": "carokoenigs", + "name": "carokoenigs", + "last_fetch_date": "2022-06-13T13:36:02.153062Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "carokoenigs@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/lyrikvertonungen", + "url": "https://open.audio/channels/lyrikvertonungen", + "creation_date": "2022-01-14T16:59:27.483613Z", + "summary": null, + "preferred_username": "lyrikvertonungen", + "name": "Lyrikvertonungen", + "last_fetch_date": "2022-01-14T17:19:17.026353Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "lyrikvertonungen@open.audio", + "is_local": false + }, + "creation_date": "2022-01-14T16:59:28.022005Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/lyrikvertonungen/rss", + "url": "https://open.audio/channels/lyrikvertonungen", + "downloads_count": 0 + }, + { + "uuid": "5d1bd76c-c094-4094-bc7d-5195682d9f8e", + "artist": { + "id": 8175, + "fid": "https://open.audio/federation/actors/gemeinsamlauschen", + "mbid": "None", + "name": "Gemeinsam Lauschen", + "creation_date": "2022-01-08T18:14:36.071040Z", + "modification_date": "2022-01-08T18:14:36.071315Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Der Podcast gegen die Tierindustrie</p>", + "content_type": "text/html", + "html": "<p>Der Podcast gegen die Tierindustrie</p>" + }, + "cover": { + "uuid": "f533890d-84db-4943-abee-d3f1f3821a79", + "size": 1874936, + "mimetype": "image/jpeg", + "creation_date": "2022-05-31T20:25:48.755524Z", + "urls": { + "source": "https://open.audio/media/attachments/7f/23/2c/podcast-logo3.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/a2/aa/podcast-logo3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2cab72a8d8f1e6642f91048ead4c383c45887e4af3754688337c3dbb645d9196", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/a2/aa/podcast-logo3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=91cfd20b11bf4e20b58baf8065c10ad98cf31977f1437f4aeced1c671cabdc1a", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/a2/aa/podcast-logo3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d49f15056de65da46a083b96bb0401b6ae9d2c5df4b00bccc3c3734454330fd3" + } + }, + "channel": "5d1bd76c-c094-4094-bc7d-5195682d9f8e", + "tracks_count": 6, + "tags": [ + "Gesellschaft", + "Klimagerechtigkeit", + "Politik", + "Tierbefreiung", + "Tierindustrie", + "Tierrechtsbewegung" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/gemeinsam_lauschen", + "url": "https://open.audio/@gemeinsam_lauschen", + "creation_date": "2022-01-08T18:14:36.057340Z", + "summary": null, + "preferred_username": "gemeinsam_lauschen", + "name": "gemeinsam_lauschen", + "last_fetch_date": "2022-05-31T20:25:48.599373Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gemeinsam_lauschen@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/gemeinsamlauschen", + "url": "https://open.audio/channels/gemeinsamlauschen", + "creation_date": "2022-01-08T18:14:35.902499Z", + "summary": null, + "preferred_username": "gemeinsamlauschen", + "name": "Gemeinsam Lauschen", + "last_fetch_date": "2022-05-31T20:25:48.263185Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gemeinsamlauschen@open.audio", + "is_local": false + }, + "creation_date": "2022-01-08T18:14:36.210770Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/gemeinsamlauschen/rss", + "url": "https://open.audio/channels/gemeinsamlauschen", + "downloads_count": 0 + }, + { + "uuid": "29f19a0b-141c-42c8-9ee8-bd3ffc81949e", + "artist": { + "id": 8170, + "fid": "https://open.audio/federation/actors/kris", + "mbid": "None", + "name": "Kris", + "creation_date": "2022-01-01T11:17:29.884255Z", + "modification_date": "2022-01-01T11:17:29.884320Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>L'utilisation de ces musiques est libre (avec attribution) pour des podcasts et actual plays de jeu de rôle.</p>", + "content_type": "text/html", + "html": "<p>L'utilisation de ces musiques est libre (avec attribution) pour des podcasts et actual plays de jeu de rôle.</p>" + }, + "cover": { + "uuid": "b2ade381-2f48-4173-b735-5d3ae7cf9480", + "size": 109308, + "mimetype": "image/png", + "creation_date": "2022-01-01T11:17:30.764132Z", + "urls": { + "source": "https://open.audio/media/attachments/36/b9/ae/logomusique2.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4a/61/b5/logomusique2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d8f6498d8f3e1d447c60111478b601ae2b3b0f1844e3032911033b0ce0cd228a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4a/61/b5/logomusique2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a48f499d5672a136623eb3440b826f0e2cba837bb2e3c774266bdb26ba1ce79d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4a/61/b5/logomusique2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4242bbb6b77c532229daa80a4e981c8b586222825e9d54b49493c709a51e3b3a" + } + }, + "channel": "29f19a0b-141c-42c8-9ee8-bd3ffc81949e", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/KrisDoC", + "url": "https://open.audio/@KrisDoC", + "creation_date": "2021-08-30T14:55:35.779350Z", + "summary": null, + "preferred_username": "KrisDoC", + "name": "KrisDoC", + "last_fetch_date": "2022-01-01T11:17:30.692151Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "KrisDoC@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/kris", + "url": "https://open.audio/channels/kris", + "creation_date": "2022-01-01T11:17:29.663294Z", + "summary": null, + "preferred_username": "kris", + "name": "Kris", + "last_fetch_date": "2022-01-01T11:17:30.476210Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "kris@open.audio", + "is_local": false + }, + "creation_date": "2022-01-01T11:17:29.926253Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/kris/rss", + "url": "https://open.audio/channels/kris", + "downloads_count": 0 + }, + { + "uuid": "54b743b0-3494-432f-991c-a2a879d52d1b", + "artist": { + "id": 8169, + "fid": "https://open.audio/federation/actors/vamosaaprenderinglselpodcast", + "mbid": "None", + "name": "Vamos a aprender Inglés el Podcast", + "creation_date": "2021-12-30T04:40:08.572690Z", + "modification_date": "2021-12-30T04:40:08.572785Z", + "is_local": false, + "content_category": "podcast", + "description": { + "text": "<p>Aqui hablamos de educación sus retos y aspectos positivos</p>", + "content_type": "text/html", + "html": "<p>Aqui hablamos de educación sus retos y aspectos positivos</p>" + }, + "cover": { + "uuid": "e9400033-9de6-42d6-bcfe-74651107a272", + "size": 483074, + "mimetype": "image/jpeg", + "creation_date": "2022-02-23T10:51:29.615489Z", + "urls": { + "source": "https://open.audio/media/attachments/20/5a/bc/si.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/cc/c4/8a/si.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=74ce30ad06dfe28a4e8c6a8a2e80685f001a755b177931e6741a9b9077a48389", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/cc/c4/8a/si-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=73387663385f2c77ceb9514a3d47a678f5e9b4cb1556da500159e04c7db5f51e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/cc/c4/8a/si-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=70670dba08e9b1bf72267573dfd7a56445785a30570082f0d9ebf912834c92c3" + } + }, + "channel": "54b743b0-3494-432f-991c-a2a879d52d1b", + "tracks_count": 6, + "tags": [ + "educacion", + "familia", + "Podcast" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/Greensky", + "url": "https://open.audio/@Greensky", + "creation_date": "2021-12-30T04:40:08.553842Z", + "summary": null, + "preferred_username": "Greensky", + "name": "Greensky", + "last_fetch_date": "2022-02-23T10:51:29.537391Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Greensky@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/vamosaaprenderinglselpodcast", + "url": "https://open.audio/channels/vamosaaprenderinglselpodcast", + "creation_date": "2021-12-30T04:40:08.287465Z", + "summary": null, + "preferred_username": "vamosaaprenderinglselpodcast", + "name": "Vamos a aprender Inglés el Podcast", + "last_fetch_date": "2022-02-13T23:19:12.103762Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "vamosaaprenderinglselpodcast@open.audio", + "is_local": false + }, + "creation_date": "2021-12-30T04:40:08.693033Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/vamosaaprenderinglselpodcast/rss", + "url": "https://open.audio/channels/vamosaaprenderinglselpodcast", + "downloads_count": 0 + }, + { + "uuid": "822932ff-8bbc-4a8c-b643-713da9e8e526", + "artist": { + "id": 8168, + "fid": "https://open.audio/federation/actors/thesoundofmyklo", + "mbid": "None", + "name": "The Sound of my Klo", + "creation_date": "2021-12-24T12:42:06.755468Z", + "modification_date": "2021-12-24T12:42:06.755597Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Diese Audiodatei lasse ich gerne auf der Toilette meiner WG in Dauerschleife laufen, wenn viele Menschen zu Besuch sind. Jetzt auch für euer Klo! Für alle VfL-Fans (egal von welchem) ein Muss!</p>", + "content_type": "text/html", + "html": "<p>Diese Audiodatei lasse ich gerne auf der Toilette meiner WG in Dauerschleife laufen, wenn viele Menschen zu Besuch sind. Jetzt auch für euer Klo! Für alle VfL-Fans (egal von welchem) ein Muss!</p>" + }, + "cover": { + "uuid": "3cdece17-ab30-439a-aa00-8bf53bcedae0", + "size": 7433734, + "mimetype": "image/jpeg", + "creation_date": "2021-12-24T12:42:07.868978Z", + "urls": { + "source": "https://open.audio/media/attachments/f8/08/5a/klofauefel.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/84/fc/0c/klofauefel.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6f3455ca0d14085b2882b09fe8eddfaa04d00294e75b6b6730ec03eb5b050bd2", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/84/fc/0c/klofauefel-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=98142467f3da6868448cf5856f07eda89bd7a3da5720be772d09e6b6bff4aa8c", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/84/fc/0c/klofauefel-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=feab8be7642695f9320bb7a7d6b95c4dfbf66622961837bcee6d9e5a8ff8b67a" + } + }, + "channel": "822932ff-8bbc-4a8c-b643-713da9e8e526", + "tracks_count": 1, + "tags": [ + "Klo" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/carokoenigs", + "url": "https://open.audio/@carokoenigs", + "creation_date": "2021-08-14T11:22:00.231622Z", + "summary": null, + "preferred_username": "carokoenigs", + "name": "carokoenigs", + "last_fetch_date": "2022-06-13T13:36:02.153062Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "carokoenigs@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/thesoundofmyklo", + "url": "https://open.audio/channels/thesoundofmyklo", + "creation_date": "2021-12-24T12:42:06.403628Z", + "summary": null, + "preferred_username": "thesoundofmyklo", + "name": "The Sound of my Klo", + "last_fetch_date": "2021-12-24T12:42:07.499864Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "thesoundofmyklo@open.audio", + "is_local": false + }, + "creation_date": "2021-12-24T12:42:06.840497Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/thesoundofmyklo/rss", + "url": "https://open.audio/channels/thesoundofmyklo", + "downloads_count": 0 + }, + { + "uuid": "c9d6f2e0-9112-4cd9-a209-b6eb6e5ead74", + "artist": { + "id": 8167, + "fid": "https://open.audio/federation/actors/hineni", + "mbid": "None", + "name": "Hineni - Fragments d'un dialogue - Saxophone alto solo", + "creation_date": "2021-12-21T18:20:33.801999Z", + "modification_date": "2021-12-21T18:20:33.802220Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>\"Hineni\" veut dire \"Me voici\" en hébreu. C'est ainsi qu'Abraham répond au Tout Autre. Quand j'improvise seul au saxophone, c'est comme répondre à l'appel de l'Inconnu, une quête commencée il y a bien longtemps. \"Va vers toi !\", vers le plus intime, vers le plus vrai, cette part infime qui ouvre peut-être sur l'immense.</p><p>Cette chaîne est un journal musical où je dépose çà et là, au gré des vents, ces moments de dialogue secret. Jérôme Nathanaël - novembre 2021</p>", + "content_type": "text/html", + "html": "<p>\"Hineni\" veut dire \"Me voici\" en hébreu. C'est ainsi qu'Abraham répond au Tout Autre. Quand j'improvise seul au saxophone, c'est comme répondre à l'appel de l'Inconnu, une quête commencée il y a bien longtemps. \"Va vers toi !\", vers le plus intime, vers le plus vrai, cette part infime qui ouvre peut-être sur l'immense.</p><p>Cette chaîne est un journal musical où je dépose çà et là, au gré des vents, ces moments de dialogue secret. Jérôme Nathanaël - novembre 2021</p>" + }, + "cover": { + "uuid": "e303591a-3c25-49cd-bdf8-1bc9db95eb24", + "size": 2814882, + "mimetype": "image/jpeg", + "creation_date": "2022-02-08T16:19:07.752955Z", + "urls": { + "source": "https://open.audio/media/attachments/78/63/75/saxhineni.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/ef/a7/a1/saxhineni.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ddf9761177e69aa8eac07a10cf9191fe8b2b2030d2213379cc4b418610fd1a28", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ef/a7/a1/saxhineni-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c5f4e9cd3fa4031cd660e9a93436dbe8f5702925576068ec19c09b5699b8c81d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ef/a7/a1/saxhineni-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=56deaa057547c702b6958a711af6b18671a0246d73bd6a79479ad9e3fe024f03" + } + }, + "channel": "c9d6f2e0-9112-4cd9-a209-b6eb6e5ead74", + "tracks_count": 4, + "tags": [] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/jeronath", + "url": "https://open.audio/@jeronath", + "creation_date": "2021-09-25T00:40:30.412028Z", + "summary": null, + "preferred_username": "jeronath", + "name": "jeronath", + "last_fetch_date": "2022-02-08T16:19:07.625023Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "jeronath@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/hineni", + "url": "https://open.audio/channels/hineni", + "creation_date": "2021-12-21T18:20:33.563596Z", + "summary": null, + "preferred_username": "hineni", + "name": "Hineni - Fragments d'un dialogue - Saxophone alto solo", + "last_fetch_date": "2022-02-08T16:19:07.249516Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hineni@open.audio", + "is_local": false + }, + "creation_date": "2021-12-21T18:20:33.855245Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/hineni/rss", + "url": "https://open.audio/channels/hineni", + "downloads_count": 0 + }, + { + "uuid": "a81dcad7-2fc7-45e0-a7fd-0a86b7f82c9b", + "artist": { + "id": 8166, + "fid": "https://am.pirateradio.social/federation/actors/johndemontmusic", + "mbid": "None", + "name": "John DeMont music", + "creation_date": "2021-12-15T07:02:01.508706Z", + "modification_date": "2021-12-15T07:02:01.508826Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>The sound I make is music to my ears.</p>", + "content_type": "text/html", + "html": "<p>The sound I make is music to my ears.</p>" + }, + "cover": { + "uuid": "3c762cde-e1ee-495e-b31a-065278252e4b", + "size": 5209211, + "mimetype": "image/png", + "creation_date": "2022-01-02T09:59:38.829464Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/d7/12/83/chan.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a8/30/62/chan.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3b035698dd79c1fbc6c79bc6805981340ee20609013b1cc8a2a8237b83700ee5", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a8/30/62/chan-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e872745e75a2f95f18972c1d6924e55db19351075ec6c5ccd206e32ccdb7295", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a8/30/62/chan-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=83f41e5640a3e14d930f949243fc45510cb9634664b3d5a78ba4b5947beb5f3a" + } + }, + "channel": "a81dcad7-2fc7-45e0-a7fd-0a86b7f82c9b", + "tracks_count": 2, + "tags": [ + "retro", + "Rock" + ] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/johndemont", + "url": "https://am.pirateradio.social/@johndemont", + "creation_date": "2021-12-15T07:02:01.486743Z", + "summary": null, + "preferred_username": "johndemont", + "name": "johndemont", + "last_fetch_date": "2022-01-02T09:59:38.752528Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "johndemont@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/johndemontmusic", + "url": "https://am.pirateradio.social/channels/johndemontmusic", + "creation_date": "2021-12-15T07:01:57.051833Z", + "summary": null, + "preferred_username": "johndemontmusic", + "name": "John DeMont music", + "last_fetch_date": "2022-01-02T09:59:38.088291Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "johndemontmusic@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2021-12-15T07:02:01.585316Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/johndemontmusic/rss", + "url": "https://am.pirateradio.social/channels/johndemontmusic", + "downloads_count": 0 + }, + { + "uuid": "4db6afe0-a6fc-4a59-89c1-4b7cc46b2f25", + "artist": { + "id": 8165, + "fid": "https://am.pirateradio.social/federation/actors/drifters", + "mbid": "None", + "name": "drifters", + "creation_date": "2021-12-04T16:20:34.695318Z", + "modification_date": "2021-12-04T16:20:34.695633Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>yes</p>", + "content_type": "text/html", + "html": "<p>yes</p>" + }, + "cover": { + "uuid": "3eb1145e-e385-4ce1-90bd-5b94ed30c08a", + "size": 153, + "mimetype": "image/jpeg", + "creation_date": "2021-12-04T16:23:17.145147Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/30/eb/ee/external-content.duckduckgo.com.jpeg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/98/88/b9/external-content.duckduckgo.com.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a54398dac64c72290b9d2592f6eb1f692dd490843e77f41b278510ff92cdf41b", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/98/88/b9/external-content.duckduckgo.com-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1bbce20141bd30b3c683505e4883fba8c52db05d0a41885516fe93548ff90031", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/98/88/b9/external-content.duckduckgo.com-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=43df2fc926e76fb83e251de874088409e38adb04f6d99a5126ab71f6e4f6208c" + } + }, + "channel": "4db6afe0-a6fc-4a59-89c1-4b7cc46b2f25", + "tracks_count": 2, + "tags": [ + "psychedelic" + ] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/justaDrifter", + "url": "https://am.pirateradio.social/@justaDrifter", + "creation_date": "2021-12-04T16:20:34.674586Z", + "summary": null, + "preferred_username": "justaDrifter", + "name": "justaDrifter", + "last_fetch_date": "2021-12-04T16:23:17.111117Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "justaDrifter@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/drifters", + "url": "https://am.pirateradio.social/channels/drifters", + "creation_date": "2021-12-04T16:20:34.145297Z", + "summary": null, + "preferred_username": "drifters", + "name": "drifters", + "last_fetch_date": "2021-12-04T16:23:16.690205Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "drifters@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2021-12-04T16:20:34.818812Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/drifters/rss", + "url": "https://am.pirateradio.social/channels/drifters", + "downloads_count": 0 + }, + { + "uuid": "3db7f510-a84c-45ad-b7ac-16aa6c7a7bd3", + "artist": { + "id": 8164, + "fid": "https://am.pirateradio.social/federation/actors/entrepotgantenvaldeleyre", + "mbid": "None", + "name": "Entrepot géant en Val de l'Eyre", + "creation_date": "2021-11-25T19:03:21.505794Z", + "modification_date": "2021-11-25T19:03:21.506025Z", + "is_local": false, + "content_category": "podcast", + "description": null, + "cover": { + "uuid": "7115e86e-28d2-4fd0-9839-2dc9ed475321", + "size": 427929, + "mimetype": "image/jpeg", + "creation_date": "2021-12-06T19:48:06.922477Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/31/16/44/production-4408573_960_720.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/0f/45/88/production-4408573_960_720.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=44e1c45868f04c3c4bcefefc385aa2aacb9580a0b896d394d009bdde119c7427", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0f/45/88/production-4408573_960_720-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8995e0eb181c32f520d9de5c94263a276f5ee51b2dd15a5eebaa04237bd50249", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0f/45/88/production-4408573_960_720-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5b92ab93bf6ae03286821f9ea5081891ff09c1e6122fc9fe442d68ffb58d2c1d" + } + }, + "channel": "3db7f510-a84c-45ad-b7ac-16aa6c7a7bd3", + "tracks_count": 1, + "tags": [] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/at_valdeleyre", + "url": "https://am.pirateradio.social/@at_valdeleyre", + "creation_date": "2021-11-25T19:03:21.462466Z", + "summary": null, + "preferred_username": "at_valdeleyre", + "name": "at_valdeleyre", + "last_fetch_date": "2021-12-06T19:48:06.859325Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "at_valdeleyre@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/entrepotgantenvaldeleyre", + "url": "https://am.pirateradio.social/channels/entrepotgantenvaldeleyre", + "creation_date": "2021-11-25T19:03:20.898137Z", + "summary": null, + "preferred_username": "entrepotgantenvaldeleyre", + "name": "Entrepot géant en Val de l'Eyre", + "last_fetch_date": "2021-11-25T19:03:22.207969Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "entrepotgantenvaldeleyre@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2021-11-25T19:03:21.591786Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/entrepotgantenvaldeleyre/rss", + "url": "https://am.pirateradio.social/channels/entrepotgantenvaldeleyre", + "downloads_count": 0 + }, + { + "uuid": "73aef359-f1f9-4415-bc7e-2e0645cfad39", + "artist": { + "id": 8163, + "fid": "https://am.pirateradio.social/federation/actors/holy_sheet", + "mbid": "None", + "name": "Holy Sheet", + "creation_date": "2021-11-20T22:01:35.390165Z", + "modification_date": "2021-11-20T22:01:35.390476Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Just a bunch of some at least fairly-listenable tracks made using semi-randomly-picked tracker software, lol.</p><p>Dominant style is Heavy / Power metal, I guess.</p>", + "content_type": "text/html", + "html": "<p>Just a bunch of some at least fairly-listenable tracks made using semi-randomly-picked tracker software, lol.</p><p>Dominant style is Heavy / Power metal, I guess.</p>" + }, + "cover": { + "uuid": "31c980cb-7f6c-44d3-bc81-34bd1f667e9e", + "size": 76324, + "mimetype": "image/png", + "creation_date": "2022-02-10T00:22:10.358226Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/63/63/97/0.png", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/78/05/34/0.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2c35fa78c80e85ec3eaa6734cc08d1ecaec33035a5f4814c51412640d89248ce", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/78/05/34/0-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=395425221517384314a864158ed267aa907049973e4a32aa543edadc4659b144", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/78/05/34/0-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T144026Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fb81fadd117f5cc80a47bd1bdc55ff56d138c380f8ea08e2345a5d91cb5501b6" + } + }, + "channel": "73aef359-f1f9-4415-bc7e-2e0645cfad39", + "tracks_count": 3, + "tags": [ + "PowerMetal" + ] + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/Bull_s_hit", + "url": "https://am.pirateradio.social/@Bull_s_hit", + "creation_date": "2021-11-20T22:01:35.367865Z", + "summary": null, + "preferred_username": "Bull_s_hit", + "name": "Bull_s_hit", + "last_fetch_date": "2022-02-10T00:22:10.799774Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Bull_s_hit@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/holy_sheet", + "url": "https://am.pirateradio.social/channels/holy_sheet", + "creation_date": "2021-11-20T22:01:34.956698Z", + "summary": null, + "preferred_username": "holy_sheet", + "name": "Holy Sheet", + "last_fetch_date": "2022-02-10T00:22:09.862022Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "holy_sheet@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2021-11-20T22:01:35.525876Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/holy_sheet/rss", + "url": "https://am.pirateradio.social/channels/holy_sheet", + "downloads_count": 0 + }, + { + "uuid": "47e5998b-7cd6-4feb-a9bc-0ff25acdf9fc", + "artist": { + "id": 8162, + "fid": "https://open.audio/federation/actors/morningmusic", + "mbid": "None", + "name": "Big city morning music", + "creation_date": "2021-11-14T09:38:28.159527Z", + "modification_date": "2021-11-14T09:38:28.159611Z", + "is_local": false, + "content_category": "music", + "description": null, + "cover": { + "uuid": "0d67cb87-5af6-4be4-af0b-a6232386853d", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-05-21T03:47:07.141131Z", + "urls": { + "source": "https://open.audio/media/attachments/c7/f0/5d/20211028_082139.jpg", + "original": "https://soundship.de/api/v1/attachments/0d67cb87-5af6-4be4-af0b-a6232386853d/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/0d67cb87-5af6-4be4-af0b-a6232386853d/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/0d67cb87-5af6-4be4-af0b-a6232386853d/proxy?next=large_square_crop" + } + }, + "channel": "47e5998b-7cd6-4feb-a9bc-0ff25acdf9fc", + "tracks_count": 1, + "tags": [ + "jayrope", + "morning", + "zwischenwelt" + ] + }, + "attributed_to": { + "fid": "https://open.audio/federation/actors/jayrope", + "url": "https://open.audio/@jayrope", + "creation_date": "2020-12-15T17:20:45.278379Z", + "summary": null, + "preferred_username": "jayrope", + "name": "jayrope", + "last_fetch_date": "2022-09-24T21:13:10.682813Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "jayrope@open.audio", + "is_local": false + }, + "actor": { + "fid": "https://open.audio/federation/actors/morningmusic", + "url": "https://open.audio/channels/morningmusic", + "creation_date": "2021-11-14T09:38:27.882428Z", + "summary": null, + "preferred_username": "morningmusic", + "name": "Big city morning music", + "last_fetch_date": "2021-11-14T12:36:05.472827Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "morningmusic@open.audio", + "is_local": false + }, + "creation_date": "2021-11-14T09:38:28.230719Z", + "metadata": {}, + "rss_url": "https://open.audio/api/v1/channels/morningmusic/rss", + "url": "https://open.audio/channels/morningmusic", + "downloads_count": 0 + } + ] +} \ No newline at end of file diff --git a/tests/data/common/api_mutation.json b/tests/data/common/api_mutation.json new file mode 100644 index 0000000000000000000000000000000000000000..64496ed68b4ee28a9c4f0f30b6ba2c628c57d3e6 --- /dev/null +++ b/tests/data/common/api_mutation.json @@ -0,0 +1,39 @@ +{ + "fid": "https://tanukitunes.com/federation/edits/0f621eb5-6556-4170-a065-12cf1a6a0245", + "uuid": "0f621eb5-6556-4170-a065-12cf1a6a0245", + "type": "update", + "creation_date": "2022-07-18T11:04:21.274259Z", + "applied_date": "2022-07-18T11:04:21.348423Z", + "is_approved": true, + "is_applied": true, + "created_by": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "approved_by": null, + "summary": "", + "payload": { + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown" + } + }, + "previous_state": { + "description": null + }, + "target": { + "type": "artist", + "id": 10243, + "repr": "Mitski" + } +} \ No newline at end of file diff --git a/tests/data/common/paginated_api_mutation_list.json b/tests/data/common/paginated_api_mutation_list.json new file mode 100644 index 0000000000000000000000000000000000000000..b409a8dd2d55187cea9414d6f9abe4c37a28c2cf --- /dev/null +++ b/tests/data/common/paginated_api_mutation_list.json @@ -0,0 +1,83 @@ +{ + "count": 1132, + "next": "https://tanukitunes.com/api/v1/mutations?ordering=creation_date&page=2&page_size=2", + "previous": null, + "results": [ + { + "fid": "https://tanukitunes.com/federation/edits/e272f41a-c2af-434e-a6c1-4c348ec6f96d", + "uuid": "e272f41a-c2af-434e-a6c1-4c348ec6f96d", + "type": "update", + "creation_date": "2019-05-05T22:05:26.883622Z", + "applied_date": "2019-05-05T22:05:26.944001Z", + "is_approved": true, + "is_applied": true, + "created_by": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "approved_by": null, + "summary": "Added CCBYA3", + "payload": { + "license": "cc-by-3.0" + }, + "previous_state": { + "license": { + "value": null + } + }, + "target": { + "type": "track", + "id": 1, + "repr": "Kowloon City" + } + }, + { + "fid": "https://tanukitunes.com/federation/edits/c7ff3f86-5573-4f0b-89e6-8df9be9e6edd", + "uuid": "c7ff3f86-5573-4f0b-89e6-8df9be9e6edd", + "type": "update", + "creation_date": "2019-05-05T22:05:54.152095Z", + "applied_date": "2019-05-05T22:05:54.192031Z", + "is_approved": true, + "is_applied": true, + "created_by": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "approved_by": null, + "summary": "Added CCBYA3", + "payload": { + "license": "cc-by-3.0" + }, + "previous_state": { + "license": { + "value": null + } + }, + "target": { + "type": "track", + "id": 2, + "repr": "The Rain Over Hong Kong" + } + } + ] +} \ No newline at end of file diff --git a/tests/data/favorites/favorites_all.json b/tests/data/favorites/favorites_all.json new file mode 100644 index 0000000000000000000000000000000000000000..34ddb5124029cf9d1097ab46a83bb3cbefc5ff25 --- /dev/null +++ b/tests/data/favorites/favorites_all.json @@ -0,0 +1,2877 @@ +{ + "results": [ + { + "id": 1, + "track": 1574 + }, + { + "id": 3, + "track": 1575 + }, + { + "id": 4, + "track": 1584 + }, + { + "id": 5, + "track": 1586 + }, + { + "id": 6, + "track": 1585 + }, + { + "id": 7, + "track": 1593 + }, + { + "id": 8, + "track": 1594 + }, + { + "id": 9, + "track": 1595 + }, + { + "id": 10, + "track": 1597 + }, + { + "id": 11, + "track": 1601 + }, + { + "id": 12, + "track": 1603 + }, + { + "id": 13, + "track": 1578 + }, + { + "id": 14, + "track": 42062 + }, + { + "id": 15, + "track": 42123 + }, + { + "id": 16, + "track": 42143 + }, + { + "id": 17, + "track": 42119 + }, + { + "id": 18, + "track": 42113 + }, + { + "id": 19, + "track": 42091 + }, + { + "id": 20, + "track": 42089 + }, + { + "id": 21, + "track": 42078 + }, + { + "id": 22, + "track": 42082 + }, + { + "id": 23, + "track": 42086 + }, + { + "id": 25, + "track": 2090 + }, + { + "id": 26, + "track": 2093 + }, + { + "id": 27, + "track": 2094 + }, + { + "id": 28, + "track": 2095 + }, + { + "id": 29, + "track": 2058 + }, + { + "id": 30, + "track": 2059 + }, + { + "id": 31, + "track": 2062 + }, + { + "id": 32, + "track": 2080 + }, + { + "id": 33, + "track": 2564 + }, + { + "id": 34, + "track": 2562 + }, + { + "id": 35, + "track": 2572 + }, + { + "id": 36, + "track": 662 + }, + { + "id": 37, + "track": 675 + }, + { + "id": 38, + "track": 1995 + }, + { + "id": 39, + "track": 779 + }, + { + "id": 40, + "track": 781 + }, + { + "id": 41, + "track": 649 + }, + { + "id": 42, + "track": 795 + }, + { + "id": 43, + "track": 643 + }, + { + "id": 44, + "track": 2441 + }, + { + "id": 51, + "track": 1599 + }, + { + "id": 52, + "track": 1609 + }, + { + "id": 53, + "track": 955 + }, + { + "id": 54, + "track": 956 + }, + { + "id": 55, + "track": 42189 + }, + { + "id": 56, + "track": 42188 + }, + { + "id": 57, + "track": 2440 + }, + { + "id": 58, + "track": 2433 + }, + { + "id": 59, + "track": 1205 + }, + { + "id": 62, + "track": 1694 + }, + { + "id": 63, + "track": 1696 + }, + { + "id": 64, + "track": 2567 + }, + { + "id": 65, + "track": 2088 + }, + { + "id": 68, + "track": 2589 + }, + { + "id": 69, + "track": 2573 + }, + { + "id": 70, + "track": 2594 + }, + { + "id": 71, + "track": 42699 + }, + { + "id": 72, + "track": 42700 + }, + { + "id": 73, + "track": 42705 + }, + { + "id": 107, + "track": 43109 + }, + { + "id": 108, + "track": 43131 + }, + { + "id": 109, + "track": 43136 + }, + { + "id": 110, + "track": 43149 + }, + { + "id": 112, + "track": 43161 + }, + { + "id": 113, + "track": 43148 + }, + { + "id": 114, + "track": 43170 + }, + { + "id": 115, + "track": 43228 + }, + { + "id": 116, + "track": 43185 + }, + { + "id": 117, + "track": 43137 + }, + { + "id": 118, + "track": 43195 + }, + { + "id": 119, + "track": 43303 + }, + { + "id": 121, + "track": 43299 + }, + { + "id": 129, + "track": 43305 + }, + { + "id": 144, + "track": 43292 + }, + { + "id": 145, + "track": 43301 + }, + { + "id": 146, + "track": 43308 + }, + { + "id": 147, + "track": 43097 + }, + { + "id": 148, + "track": 43091 + }, + { + "id": 149, + "track": 43034 + }, + { + "id": 150, + "track": 43081 + }, + { + "id": 151, + "track": 43100 + }, + { + "id": 153, + "track": 2902 + }, + { + "id": 154, + "track": 2905 + }, + { + "id": 155, + "track": 2901 + }, + { + "id": 156, + "track": 2898 + }, + { + "id": 157, + "track": 2903 + }, + { + "id": 158, + "track": 42116 + }, + { + "id": 159, + "track": 42117 + }, + { + "id": 160, + "track": 42118 + }, + { + "id": 161, + "track": 4096 + }, + { + "id": 162, + "track": 4088 + }, + { + "id": 163, + "track": 4090 + }, + { + "id": 164, + "track": 42139 + }, + { + "id": 165, + "track": 42145 + }, + { + "id": 166, + "track": 1207 + }, + { + "id": 167, + "track": 1199 + }, + { + "id": 175, + "track": 43819 + }, + { + "id": 176, + "track": 43693 + }, + { + "id": 177, + "track": 43698 + }, + { + "id": 178, + "track": 43697 + }, + { + "id": 179, + "track": 43670 + }, + { + "id": 180, + "track": 43671 + }, + { + "id": 181, + "track": 43678 + }, + { + "id": 182, + "track": 43668 + }, + { + "id": 183, + "track": 43676 + }, + { + "id": 184, + "track": 43677 + }, + { + "id": 185, + "track": 43681 + }, + { + "id": 186, + "track": 43666 + }, + { + "id": 187, + "track": 43667 + }, + { + "id": 190, + "track": 43879 + }, + { + "id": 191, + "track": 43880 + }, + { + "id": 192, + "track": 43989 + }, + { + "id": 193, + "track": 43160 + }, + { + "id": 194, + "track": 43218 + }, + { + "id": 195, + "track": 44093 + }, + { + "id": 196, + "track": 44092 + }, + { + "id": 197, + "track": 44078 + }, + { + "id": 198, + "track": 44234 + }, + { + "id": 199, + "track": 43694 + }, + { + "id": 201, + "track": 2278 + }, + { + "id": 202, + "track": 2273 + }, + { + "id": 203, + "track": 44317 + }, + { + "id": 204, + "track": 44323 + }, + { + "id": 205, + "track": 44324 + }, + { + "id": 206, + "track": 44328 + }, + { + "id": 207, + "track": 44331 + }, + { + "id": 208, + "track": 44332 + }, + { + "id": 209, + "track": 44344 + }, + { + "id": 210, + "track": 1739 + }, + { + "id": 211, + "track": 2128 + }, + { + "id": 212, + "track": 2126 + }, + { + "id": 213, + "track": 2131 + }, + { + "id": 214, + "track": 2139 + }, + { + "id": 215, + "track": 2136 + }, + { + "id": 216, + "track": 2118 + }, + { + "id": 217, + "track": 2120 + }, + { + "id": 218, + "track": 2123 + }, + { + "id": 219, + "track": 2142 + }, + { + "id": 220, + "track": 2161 + }, + { + "id": 221, + "track": 2164 + }, + { + "id": 222, + "track": 2168 + }, + { + "id": 223, + "track": 2184 + }, + { + "id": 224, + "track": 2138 + }, + { + "id": 225, + "track": 2119 + }, + { + "id": 226, + "track": 42550 + }, + { + "id": 227, + "track": 42551 + }, + { + "id": 228, + "track": 42560 + }, + { + "id": 230, + "track": 43192 + }, + { + "id": 231, + "track": 43178 + }, + { + "id": 232, + "track": 43191 + }, + { + "id": 233, + "track": 43150 + }, + { + "id": 235, + "track": 43134 + }, + { + "id": 236, + "track": 43146 + }, + { + "id": 237, + "track": 43154 + }, + { + "id": 238, + "track": 43162 + }, + { + "id": 239, + "track": 43171 + }, + { + "id": 240, + "track": 43153 + }, + { + "id": 241, + "track": 43205 + }, + { + "id": 242, + "track": 43212 + }, + { + "id": 243, + "track": 43168 + }, + { + "id": 244, + "track": 43175 + }, + { + "id": 245, + "track": 43237 + }, + { + "id": 246, + "track": 43210 + }, + { + "id": 247, + "track": 43204 + }, + { + "id": 248, + "track": 43236 + }, + { + "id": 249, + "track": 43152 + }, + { + "id": 250, + "track": 43132 + }, + { + "id": 251, + "track": 43176 + }, + { + "id": 252, + "track": 43246 + }, + { + "id": 253, + "track": 44235 + }, + { + "id": 254, + "track": 44230 + }, + { + "id": 255, + "track": 44228 + }, + { + "id": 311, + "track": 1304 + }, + { + "id": 312, + "track": 1911 + }, + { + "id": 314, + "track": 1912 + }, + { + "id": 315, + "track": 1902 + }, + { + "id": 316, + "track": 1237 + }, + { + "id": 317, + "track": 1899 + }, + { + "id": 318, + "track": 1306 + }, + { + "id": 319, + "track": 1233 + }, + { + "id": 320, + "track": 1906 + }, + { + "id": 321, + "track": 1335 + }, + { + "id": 322, + "track": 1905 + }, + { + "id": 323, + "track": 1312 + }, + { + "id": 324, + "track": 1917 + }, + { + "id": 325, + "track": 1234 + }, + { + "id": 326, + "track": 1892 + }, + { + "id": 327, + "track": 43940 + }, + { + "id": 328, + "track": 1310 + }, + { + "id": 329, + "track": 817 + }, + { + "id": 330, + "track": 672 + }, + { + "id": 331, + "track": 1178 + }, + { + "id": 332, + "track": 44146 + }, + { + "id": 333, + "track": 2701 + }, + { + "id": 334, + "track": 1192 + }, + { + "id": 336, + "track": 44373 + }, + { + "id": 337, + "track": 44878 + }, + { + "id": 338, + "track": 44881 + }, + { + "id": 339, + "track": 44680 + }, + { + "id": 340, + "track": 1605 + }, + { + "id": 341, + "track": 43692 + }, + { + "id": 342, + "track": 44933 + }, + { + "id": 343, + "track": 43704 + }, + { + "id": 344, + "track": 3021 + }, + { + "id": 345, + "track": 42255 + }, + { + "id": 346, + "track": 44379 + }, + { + "id": 350, + "track": 465 + }, + { + "id": 351, + "track": 460 + }, + { + "id": 352, + "track": 463 + }, + { + "id": 353, + "track": 462 + }, + { + "id": 354, + "track": 461 + }, + { + "id": 355, + "track": 538 + }, + { + "id": 357, + "track": 496 + }, + { + "id": 358, + "track": 497 + }, + { + "id": 359, + "track": 503 + }, + { + "id": 360, + "track": 506 + }, + { + "id": 361, + "track": 509 + }, + { + "id": 362, + "track": 515 + }, + { + "id": 363, + "track": 517 + }, + { + "id": 364, + "track": 523 + }, + { + "id": 365, + "track": 536 + }, + { + "id": 366, + "track": 525 + }, + { + "id": 367, + "track": 44872 + }, + { + "id": 368, + "track": 44877 + }, + { + "id": 369, + "track": 489 + }, + { + "id": 370, + "track": 576 + }, + { + "id": 371, + "track": 44847 + }, + { + "id": 372, + "track": 44849 + }, + { + "id": 373, + "track": 44834 + }, + { + "id": 374, + "track": 44824 + }, + { + "id": 375, + "track": 44836 + }, + { + "id": 376, + "track": 44827 + }, + { + "id": 377, + "track": 44838 + }, + { + "id": 378, + "track": 44843 + }, + { + "id": 379, + "track": 44795 + }, + { + "id": 386, + "track": 43104 + }, + { + "id": 388, + "track": 45081 + }, + { + "id": 389, + "track": 45082 + }, + { + "id": 390, + "track": 45087 + }, + { + "id": 391, + "track": 45049 + }, + { + "id": 392, + "track": 45068 + }, + { + "id": 394, + "track": 45056 + }, + { + "id": 395, + "track": 1547 + }, + { + "id": 396, + "track": 2948 + }, + { + "id": 397, + "track": 861 + }, + { + "id": 398, + "track": 2596 + }, + { + "id": 422, + "track": 45108 + }, + { + "id": 423, + "track": 45099 + }, + { + "id": 424, + "track": 45100 + }, + { + "id": 425, + "track": 45034 + }, + { + "id": 426, + "track": 45036 + }, + { + "id": 427, + "track": 45039 + }, + { + "id": 428, + "track": 45041 + }, + { + "id": 429, + "track": 610 + }, + { + "id": 431, + "track": 45105 + }, + { + "id": 438, + "track": 45489 + }, + { + "id": 439, + "track": 45042 + }, + { + "id": 440, + "track": 1117 + }, + { + "id": 441, + "track": 1111 + }, + { + "id": 442, + "track": 1113 + }, + { + "id": 444, + "track": 45055 + }, + { + "id": 445, + "track": 695 + }, + { + "id": 446, + "track": 697 + }, + { + "id": 447, + "track": 699 + }, + { + "id": 448, + "track": 792 + }, + { + "id": 449, + "track": 788 + }, + { + "id": 450, + "track": 581 + }, + { + "id": 451, + "track": 582 + }, + { + "id": 452, + "track": 751 + }, + { + "id": 453, + "track": 592 + }, + { + "id": 454, + "track": 593 + }, + { + "id": 455, + "track": 596 + }, + { + "id": 456, + "track": 599 + }, + { + "id": 457, + "track": 667 + }, + { + "id": 458, + "track": 674 + }, + { + "id": 459, + "track": 837 + }, + { + "id": 460, + "track": 831 + }, + { + "id": 461, + "track": 827 + }, + { + "id": 462, + "track": 826 + }, + { + "id": 463, + "track": 823 + }, + { + "id": 464, + "track": 841 + }, + { + "id": 465, + "track": 625 + }, + { + "id": 466, + "track": 629 + }, + { + "id": 467, + "track": 634 + }, + { + "id": 468, + "track": 636 + }, + { + "id": 469, + "track": 637 + }, + { + "id": 470, + "track": 642 + }, + { + "id": 471, + "track": 544 + }, + { + "id": 472, + "track": 541 + }, + { + "id": 473, + "track": 545 + }, + { + "id": 474, + "track": 575 + }, + { + "id": 475, + "track": 799 + }, + { + "id": 476, + "track": 692 + }, + { + "id": 477, + "track": 688 + }, + { + "id": 478, + "track": 685 + }, + { + "id": 479, + "track": 854 + }, + { + "id": 480, + "track": 644 + }, + { + "id": 481, + "track": 645 + }, + { + "id": 482, + "track": 660 + }, + { + "id": 483, + "track": 657 + }, + { + "id": 484, + "track": 729 + }, + { + "id": 485, + "track": 2003 + }, + { + "id": 486, + "track": 745 + }, + { + "id": 487, + "track": 734 + }, + { + "id": 493, + "track": 45109 + }, + { + "id": 495, + "track": 45562 + }, + { + "id": 500, + "track": 45579 + }, + { + "id": 505, + "track": 3939 + }, + { + "id": 506, + "track": 45596 + }, + { + "id": 507, + "track": 45597 + }, + { + "id": 509, + "track": 3157 + }, + { + "id": 510, + "track": 3149 + }, + { + "id": 511, + "track": 45690 + }, + { + "id": 515, + "track": 3153 + }, + { + "id": 516, + "track": 3156 + }, + { + "id": 517, + "track": 45721 + }, + { + "id": 518, + "track": 45897 + }, + { + "id": 519, + "track": 45899 + }, + { + "id": 520, + "track": 45900 + }, + { + "id": 521, + "track": 45901 + }, + { + "id": 522, + "track": 45902 + }, + { + "id": 523, + "track": 45937 + }, + { + "id": 524, + "track": 45943 + }, + { + "id": 525, + "track": 45939 + }, + { + "id": 526, + "track": 45938 + }, + { + "id": 527, + "track": 45763 + }, + { + "id": 528, + "track": 45764 + }, + { + "id": 529, + "track": 45774 + }, + { + "id": 530, + "track": 45772 + }, + { + "id": 531, + "track": 45862 + }, + { + "id": 532, + "track": 45866 + }, + { + "id": 533, + "track": 45869 + }, + { + "id": 534, + "track": 45871 + }, + { + "id": 535, + "track": 45872 + }, + { + "id": 536, + "track": 45941 + }, + { + "id": 537, + "track": 43695 + }, + { + "id": 538, + "track": 46143 + }, + { + "id": 539, + "track": 46141 + }, + { + "id": 540, + "track": 46137 + }, + { + "id": 543, + "track": 46224 + }, + { + "id": 544, + "track": 46225 + }, + { + "id": 545, + "track": 46195 + }, + { + "id": 546, + "track": 46197 + }, + { + "id": 547, + "track": 46198 + }, + { + "id": 548, + "track": 46190 + }, + { + "id": 549, + "track": 46095 + }, + { + "id": 550, + "track": 46243 + }, + { + "id": 551, + "track": 46177 + }, + { + "id": 552, + "track": 46201 + }, + { + "id": 553, + "track": 1204 + }, + { + "id": 554, + "track": 46288 + }, + { + "id": 555, + "track": 46281 + }, + { + "id": 556, + "track": 46272 + }, + { + "id": 557, + "track": 46104 + }, + { + "id": 558, + "track": 45946 + }, + { + "id": 559, + "track": 2713 + }, + { + "id": 560, + "track": 988 + }, + { + "id": 561, + "track": 43147 + }, + { + "id": 562, + "track": 2744 + }, + { + "id": 564, + "track": 45095 + }, + { + "id": 565, + "track": 46264 + }, + { + "id": 566, + "track": 43142 + }, + { + "id": 567, + "track": 43261 + }, + { + "id": 568, + "track": 2862 + }, + { + "id": 569, + "track": 2811 + }, + { + "id": 571, + "track": 2723 + }, + { + "id": 572, + "track": 2748 + }, + { + "id": 573, + "track": 2765 + }, + { + "id": 574, + "track": 45072 + }, + { + "id": 575, + "track": 2782 + }, + { + "id": 576, + "track": 2840 + }, + { + "id": 577, + "track": 42245 + }, + { + "id": 578, + "track": 45044 + }, + { + "id": 579, + "track": 45065 + }, + { + "id": 580, + "track": 149 + }, + { + "id": 581, + "track": 97 + }, + { + "id": 582, + "track": 98 + }, + { + "id": 583, + "track": 99 + }, + { + "id": 593, + "track": 46393 + }, + { + "id": 594, + "track": 46399 + }, + { + "id": 595, + "track": 1583 + }, + { + "id": 596, + "track": 1148 + }, + { + "id": 597, + "track": 46395 + }, + { + "id": 598, + "track": 46396 + }, + { + "id": 611, + "track": 2788 + }, + { + "id": 612, + "track": 2761 + }, + { + "id": 613, + "track": 2771 + }, + { + "id": 614, + "track": 2858 + }, + { + "id": 615, + "track": 2856 + }, + { + "id": 621, + "track": 2815 + }, + { + "id": 622, + "track": 2825 + }, + { + "id": 623, + "track": 42537 + }, + { + "id": 624, + "track": 43827 + }, + { + "id": 625, + "track": 43887 + }, + { + "id": 626, + "track": 43888 + }, + { + "id": 627, + "track": 43883 + }, + { + "id": 629, + "track": 23 + }, + { + "id": 634, + "track": 43885 + }, + { + "id": 635, + "track": 43891 + }, + { + "id": 636, + "track": 43892 + }, + { + "id": 637, + "track": 43882 + }, + { + "id": 639, + "track": 26 + }, + { + "id": 640, + "track": 18 + }, + { + "id": 641, + "track": 43836 + }, + { + "id": 647, + "track": 381 + }, + { + "id": 648, + "track": 387 + }, + { + "id": 649, + "track": 364 + }, + { + "id": 650, + "track": 362 + }, + { + "id": 651, + "track": 367 + }, + { + "id": 652, + "track": 368 + }, + { + "id": 654, + "track": 372 + }, + { + "id": 655, + "track": 373 + }, + { + "id": 656, + "track": 3027 + }, + { + "id": 657, + "track": 3029 + }, + { + "id": 664, + "track": 2777 + }, + { + "id": 665, + "track": 4081 + }, + { + "id": 666, + "track": 52097 + }, + { + "id": 667, + "track": 52100 + }, + { + "id": 669, + "track": 2231 + }, + { + "id": 670, + "track": 52095 + }, + { + "id": 672, + "track": 1292 + }, + { + "id": 673, + "track": 45607 + }, + { + "id": 675, + "track": 3995 + }, + { + "id": 680, + "track": 44813 + }, + { + "id": 681, + "track": 2060 + }, + { + "id": 683, + "track": 44885 + }, + { + "id": 684, + "track": 2065 + }, + { + "id": 685, + "track": 2048 + }, + { + "id": 686, + "track": 2057 + }, + { + "id": 687, + "track": 2029 + }, + { + "id": 688, + "track": 2082 + }, + { + "id": 689, + "track": 2043 + }, + { + "id": 690, + "track": 2038 + }, + { + "id": 691, + "track": 58565 + }, + { + "id": 692, + "track": 58566 + }, + { + "id": 693, + "track": 58578 + }, + { + "id": 694, + "track": 58607 + }, + { + "id": 695, + "track": 58618 + }, + { + "id": 697, + "track": 58669 + }, + { + "id": 698, + "track": 58624 + }, + { + "id": 699, + "track": 15890 + }, + { + "id": 700, + "track": 6580 + }, + { + "id": 701, + "track": 9096 + }, + { + "id": 703, + "track": 1767 + }, + { + "id": 704, + "track": 1769 + }, + { + "id": 705, + "track": 1771 + }, + { + "id": 706, + "track": 59132 + }, + { + "id": 707, + "track": 59129 + }, + { + "id": 753, + "track": 59158 + }, + { + "id": 755, + "track": 59144 + }, + { + "id": 765, + "track": 2814 + }, + { + "id": 766, + "track": 59126 + }, + { + "id": 767, + "track": 2827 + }, + { + "id": 769, + "track": 1131 + }, + { + "id": 770, + "track": 785 + }, + { + "id": 771, + "track": 61325 + }, + { + "id": 774, + "track": 43335 + }, + { + "id": 775, + "track": 3843 + }, + { + "id": 776, + "track": 61644 + }, + { + "id": 777, + "track": 61974 + }, + { + "id": 778, + "track": 61980 + }, + { + "id": 779, + "track": 61981 + }, + { + "id": 780, + "track": 61945 + }, + { + "id": 781, + "track": 61948 + }, + { + "id": 782, + "track": 62259 + }, + { + "id": 783, + "track": 62294 + }, + { + "id": 784, + "track": 62299 + }, + { + "id": 785, + "track": 2303 + }, + { + "id": 786, + "track": 62627 + }, + { + "id": 787, + "track": 62296 + }, + { + "id": 788, + "track": 63313 + }, + { + "id": 789, + "track": 63314 + }, + { + "id": 790, + "track": 63489 + }, + { + "id": 791, + "track": 63318 + }, + { + "id": 792, + "track": 953 + }, + { + "id": 793, + "track": 960 + }, + { + "id": 794, + "track": 64137 + }, + { + "id": 795, + "track": 64138 + }, + { + "id": 796, + "track": 64631 + }, + { + "id": 797, + "track": 65629 + }, + { + "id": 798, + "track": 65670 + }, + { + "id": 799, + "track": 65669 + }, + { + "id": 800, + "track": 65665 + }, + { + "id": 801, + "track": 65664 + }, + { + "id": 802, + "track": 65749 + }, + { + "id": 803, + "track": 65824 + }, + { + "id": 804, + "track": 66360 + }, + { + "id": 805, + "track": 66359 + }, + { + "id": 808, + "track": 66477 + }, + { + "id": 809, + "track": 66478 + }, + { + "id": 810, + "track": 66484 + }, + { + "id": 819, + "track": 66815 + }, + { + "id": 825, + "track": 66978 + }, + { + "id": 826, + "track": 67423 + }, + { + "id": 827, + "track": 67422 + }, + { + "id": 830, + "track": 67738 + }, + { + "id": 832, + "track": 68628 + }, + { + "id": 833, + "track": 67723 + }, + { + "id": 835, + "track": 2049 + }, + { + "id": 836, + "track": 2051 + }, + { + "id": 837, + "track": 2052 + }, + { + "id": 838, + "track": 2385 + }, + { + "id": 839, + "track": 2391 + }, + { + "id": 840, + "track": 2384 + }, + { + "id": 841, + "track": 2405 + }, + { + "id": 842, + "track": 2402 + }, + { + "id": 843, + "track": 2401 + }, + { + "id": 846, + "track": 72192 + }, + { + "id": 850, + "track": 72772 + }, + { + "id": 853, + "track": 72948 + }, + { + "id": 854, + "track": 72983 + }, + { + "id": 855, + "track": 1341 + }, + { + "id": 856, + "track": 1281 + }, + { + "id": 859, + "track": 1382 + }, + { + "id": 860, + "track": 72707 + }, + { + "id": 861, + "track": 73193 + }, + { + "id": 865, + "track": 72198 + }, + { + "id": 866, + "track": 900 + }, + { + "id": 876, + "track": 74933 + }, + { + "id": 877, + "track": 74941 + }, + { + "id": 878, + "track": 74968 + }, + { + "id": 892, + "track": 75169 + }, + { + "id": 905, + "track": 1291 + }, + { + "id": 906, + "track": 75276 + }, + { + "id": 907, + "track": 75179 + }, + { + "id": 908, + "track": 75364 + }, + { + "id": 909, + "track": 1366 + }, + { + "id": 910, + "track": 75168 + }, + { + "id": 911, + "track": 72732 + }, + { + "id": 912, + "track": 72182 + }, + { + "id": 920, + "track": 939 + }, + { + "id": 926, + "track": 73011 + }, + { + "id": 927, + "track": 72769 + }, + { + "id": 928, + "track": 75299 + }, + { + "id": 934, + "track": 1726 + }, + { + "id": 935, + "track": 1727 + }, + { + "id": 936, + "track": 1750 + }, + { + "id": 937, + "track": 1475 + }, + { + "id": 938, + "track": 1476 + }, + { + "id": 939, + "track": 1479 + }, + { + "id": 940, + "track": 42187 + }, + { + "id": 945, + "track": 73309 + }, + { + "id": 946, + "track": 61629 + }, + { + "id": 947, + "track": 64495 + }, + { + "id": 948, + "track": 33233 + }, + { + "id": 950, + "track": 43997 + }, + { + "id": 951, + "track": 43998 + }, + { + "id": 952, + "track": 43971 + }, + { + "id": 953, + "track": 43977 + }, + { + "id": 954, + "track": 43978 + }, + { + "id": 955, + "track": 43987 + }, + { + "id": 956, + "track": 44014 + }, + { + "id": 957, + "track": 77038 + }, + { + "id": 958, + "track": 77039 + }, + { + "id": 964, + "track": 1979 + }, + { + "id": 965, + "track": 1985 + }, + { + "id": 966, + "track": 1993 + }, + { + "id": 967, + "track": 1949 + }, + { + "id": 968, + "track": 1951 + }, + { + "id": 969, + "track": 1955 + }, + { + "id": 974, + "track": 45064 + }, + { + "id": 975, + "track": 782 + }, + { + "id": 976, + "track": 616 + }, + { + "id": 979, + "track": 44226 + }, + { + "id": 996, + "track": 77444 + }, + { + "id": 998, + "track": 42548 + }, + { + "id": 999, + "track": 42546 + }, + { + "id": 1000, + "track": 42542 + }, + { + "id": 1001, + "track": 42541 + }, + { + "id": 1002, + "track": 42540 + }, + { + "id": 1004, + "track": 72175 + }, + { + "id": 1005, + "track": 72176 + }, + { + "id": 1006, + "track": 72177 + }, + { + "id": 1009, + "track": 78821 + }, + { + "id": 1010, + "track": 78854 + }, + { + "id": 1011, + "track": 78858 + }, + { + "id": 1012, + "track": 78809 + }, + { + "id": 1014, + "track": 79233 + }, + { + "id": 1015, + "track": 79305 + }, + { + "id": 1016, + "track": 79319 + }, + { + "id": 1017, + "track": 79320 + }, + { + "id": 1018, + "track": 79322 + }, + { + "id": 1019, + "track": 79323 + }, + { + "id": 1020, + "track": 79298 + }, + { + "id": 1021, + "track": 79295 + }, + { + "id": 1052, + "track": 72987 + }, + { + "id": 1057, + "track": 66502 + }, + { + "id": 1058, + "track": 75119 + }, + { + "id": 1059, + "track": 75118 + }, + { + "id": 1060, + "track": 75117 + }, + { + "id": 1111, + "track": 378 + }, + { + "id": 1112, + "track": 365 + }, + { + "id": 1113, + "track": 81848 + }, + { + "id": 1114, + "track": 81907 + }, + { + "id": 1115, + "track": 81863 + }, + { + "id": 1118, + "track": 81861 + }, + { + "id": 1119, + "track": 81927 + }, + { + "id": 1120, + "track": 43895 + }, + { + "id": 1121, + "track": 21 + }, + { + "id": 1122, + "track": 24 + }, + { + "id": 1123, + "track": 61818 + }, + { + "id": 1124, + "track": 61819 + }, + { + "id": 1125, + "track": 3872 + }, + { + "id": 1126, + "track": 44144 + }, + { + "id": 1127, + "track": 81928 + }, + { + "id": 1131, + "track": 81924 + }, + { + "id": 1132, + "track": 81926 + }, + { + "id": 1133, + "track": 3854 + }, + { + "id": 1134, + "track": 3992 + }, + { + "id": 1135, + "track": 3984 + }, + { + "id": 1136, + "track": 43990 + }, + { + "id": 1138, + "track": 43974 + }, + { + "id": 1140, + "track": 1982 + }, + { + "id": 1141, + "track": 64360 + }, + { + "id": 1143, + "track": 2097 + }, + { + "id": 1144, + "track": 2064 + }, + { + "id": 1145, + "track": 2055 + }, + { + "id": 1146, + "track": 82549 + }, + { + "id": 1147, + "track": 44138 + }, + { + "id": 1148, + "track": 44117 + }, + { + "id": 1160, + "track": 82602 + }, + { + "id": 1161, + "track": 82575 + }, + { + "id": 1174, + "track": 83087 + }, + { + "id": 1175, + "track": 83084 + }, + { + "id": 1176, + "track": 83088 + }, + { + "id": 1177, + "track": 83092 + }, + { + "id": 1178, + "track": 83090 + }, + { + "id": 1179, + "track": 82614 + }, + { + "id": 1180, + "track": 82586 + }, + { + "id": 1209, + "track": 43043 + }, + { + "id": 1295, + "track": 84797 + }, + { + "id": 1304, + "track": 249 + }, + { + "id": 1305, + "track": 251 + }, + { + "id": 1306, + "track": 252 + }, + { + "id": 1308, + "track": 43141 + }, + { + "id": 1312, + "track": 79267 + }, + { + "id": 1330, + "track": 79257 + }, + { + "id": 1331, + "track": 83091 + }, + { + "id": 1334, + "track": 83628 + }, + { + "id": 1335, + "track": 83083 + }, + { + "id": 1336, + "track": 82618 + }, + { + "id": 1337, + "track": 83085 + }, + { + "id": 1338, + "track": 83089 + }, + { + "id": 1339, + "track": 1000 + }, + { + "id": 1340, + "track": 2737 + }, + { + "id": 1348, + "track": 73311 + }, + { + "id": 1369, + "track": 89354 + }, + { + "id": 1370, + "track": 89353 + }, + { + "id": 1371, + "track": 89352 + }, + { + "id": 1372, + "track": 89351 + }, + { + "id": 1373, + "track": 83086 + }, + { + "id": 1374, + "track": 82535 + }, + { + "id": 1375, + "track": 82536 + }, + { + "id": 1376, + "track": 89675 + }, + { + "id": 1377, + "track": 89676 + }, + { + "id": 1378, + "track": 89677 + }, + { + "id": 1379, + "track": 82537 + }, + { + "id": 1380, + "track": 89678 + }, + { + "id": 1408, + "track": 65672 + }, + { + "id": 1409, + "track": 65667 + }, + { + "id": 1410, + "track": 65663 + }, + { + "id": 1454, + "track": 46112 + }, + { + "id": 1455, + "track": 46113 + }, + { + "id": 1463, + "track": 84793 + }, + { + "id": 1467, + "track": 94274 + }, + { + "id": 1468, + "track": 94277 + }, + { + "id": 1469, + "track": 94278 + }, + { + "id": 1470, + "track": 94280 + }, + { + "id": 1483, + "track": 94286 + }, + { + "id": 1658, + "track": 103006 + }, + { + "id": 1659, + "track": 103003 + }, + { + "id": 1660, + "track": 103024 + }, + { + "id": 1661, + "track": 103019 + }, + { + "id": 1662, + "track": 103015 + }, + { + "id": 1663, + "track": 2558 + }, + { + "id": 1664, + "track": 79258 + }, + { + "id": 1665, + "track": 79260 + }, + { + "id": 1666, + "track": 79259 + }, + { + "id": 1667, + "track": 79263 + }, + { + "id": 1668, + "track": 79271 + }, + { + "id": 1669, + "track": 79268 + }, + { + "id": 1670, + "track": 45035 + }, + { + "id": 1671, + "track": 45092 + }, + { + "id": 1672, + "track": 44884 + }, + { + "id": 1673, + "track": 42197 + }, + { + "id": 1674, + "track": 42198 + }, + { + "id": 1675, + "track": 63170 + }, + { + "id": 1677, + "track": 66358 + }, + { + "id": 1678, + "track": 383 + }, + { + "id": 1683, + "track": 67725 + }, + { + "id": 1684, + "track": 67724 + }, + { + "id": 1685, + "track": 67727 + }, + { + "id": 1686, + "track": 2563 + }, + { + "id": 1687, + "track": 2574 + }, + { + "id": 1688, + "track": 2584 + }, + { + "id": 1689, + "track": 2587 + }, + { + "id": 1690, + "track": 2569 + }, + { + "id": 1691, + "track": 2590 + }, + { + "id": 1692, + "track": 2593 + }, + { + "id": 1693, + "track": 258 + }, + { + "id": 1694, + "track": 259 + }, + { + "id": 1868, + "track": 67728 + }, + { + "id": 1869, + "track": 74925 + }, + { + "id": 1870, + "track": 74926 + }, + { + "id": 1872, + "track": 1123 + }, + { + "id": 1873, + "track": 44890 + }, + { + "id": 1874, + "track": 1129 + }, + { + "id": 1875, + "track": 2472 + }, + { + "id": 1876, + "track": 89691 + }, + { + "id": 1877, + "track": 89693 + }, + { + "id": 1881, + "track": 2735 + }, + { + "id": 1882, + "track": 2740 + }, + { + "id": 1892, + "track": 1691 + }, + { + "id": 1893, + "track": 43055 + }, + { + "id": 1894, + "track": 43088 + }, + { + "id": 1895, + "track": 422 + } + ], + "count": 718 +} \ No newline at end of file diff --git a/tests/data/favorites/paginated_user_track_favorite_list.json b/tests/data/favorites/paginated_user_track_favorite_list.json new file mode 100644 index 0000000000000000000000000000000000000000..1a027edc65064f9ddabb0147dbe25bfd95931892 --- /dev/null +++ b/tests/data/favorites/paginated_user_track_favorite_list.json @@ -0,0 +1,5705 @@ +{ + "count": 1430, + "next": "https://tanukitunes.com/api/v1/favorites/tracks/?page=2", + "previous": null, + "results": [ + { + "id": 1892, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94d74038abc105d9b687914e55e9eee7b2ed6264eabeb8332fb656cae696faad", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4611d507efcf907f29191c9f464fb2a8052fadd484a438a1f78a770a674200", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f839d3c8ac2bca99e435ce2d6b59e2d18cdbc40a26c18278259223ce8b7343e6" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 46, + "fid": "https://tanukitunes.com/federation/music/artists/2cec4b93-5712-4c4d-ae06-68e7c0234b5f", + "mbid": "d8e41375-bd8d-4e39-9da7-f0c171e97086", + "name": "Grouplove", + "creation_date": "2018-12-13T01:17:46.961651Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 129, + "fid": "https://tanukitunes.com/federation/music/albums/2fc450b4-db1b-455d-97cf-4e9e1ba417dc", + "mbid": "dff203a7-2cb4-42ef-b347-1858620b1687", + "title": "Never Trust a Happy Song", + "artist": { + "id": 46, + "fid": "https://tanukitunes.com/federation/music/artists/2cec4b93-5712-4c4d-ae06-68e7c0234b5f", + "mbid": "d8e41375-bd8d-4e39-9da7-f0c171e97086", + "name": "Grouplove", + "creation_date": "2018-12-13T01:17:46.961651Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2011-09-05", + "cover": { + "uuid": "cee901d3-1be6-49cc-8613-825a6be02428", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:48.094562Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/13/bdff203a7-2cb4-42ef-b347-1858620b1687.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f3baccd0498ef30a7d4b89b5d6ea862ce38e68cf6f04f6c2f128014bc4a88555", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/bdff203a7-2cb4-42ef-b347-1858620b1687-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b1e9ad9fb3cd61c31eeb5a4b77384ea8cecc06c325f8066bd253fdb6be5b1eda", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/bdff203a7-2cb4-42ef-b347-1858620b1687-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c92d542940878434d77f1640def727036cc2dd6f02511ea836f570c5c22a65da" + } + }, + "creation_date": "2018-12-13T01:17:46.965631Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [ + { + "uuid": "60f8eb27-ff3e-4ca7-af27-ef726d013b57", + "listen_url": "/api/v1/listen/fa375180-9e11-417d-8f6f-7aa02bd7c6ab/?upload=60f8eb27-ff3e-4ca7-af27-ef726d013b57", + "size": 5172387, + "duration": 204, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/fa375180-9e11-417d-8f6f-7aa02bd7c6ab/", + "tags": [], + "attributed_to": null, + "id": 1691, + "fid": "https://tanukitunes.com/federation/music/tracks/fa375180-9e11-417d-8f6f-7aa02bd7c6ab", + "mbid": "327a8f4d-4f86-498f-8a44-3339862a2ab3", + "title": "Spun", + "creation_date": "2018-12-13T01:18:13.815802Z", + "is_local": true, + "position": 7, + "disc_number": null, + "downloads_count": 2, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-23T14:02:40.515124Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1891, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 12202, + "fid": "https://tanukitunes.com/federation/music/artists/9ce30393-cbf4-4bf1-b42b-2b29223e9a02", + "mbid": null, + "name": "Lilianna Wilde", + "creation_date": "2022-03-30T13:30:28.213649Z", + "modification_date": "2022-03-30T13:30:28.213718Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11698, + "fid": "https://tanukitunes.com/federation/music/albums/0d500300-b227-499c-94cd-8478da014c34", + "mbid": null, + "title": "[Unknown Album]", + "artist": { + "id": 12202, + "fid": "https://tanukitunes.com/federation/music/artists/9ce30393-cbf4-4bf1-b42b-2b29223e9a02", + "mbid": null, + "name": "Lilianna Wilde", + "creation_date": "2022-03-30T13:30:28.213649Z", + "modification_date": "2022-03-30T13:30:28.213718Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2017-08-10", + "cover": { + "uuid": "2c06fd6c-cbdb-4205-be58-1cff4f6358a5", + "size": 1756033, + "mimetype": "image/png", + "creation_date": "2022-03-30T13:30:28.225286Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/4b/fd/2a/attachment_cover-0d500300-b227-499c-94cd-8478da014c34.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=73c6e6eb8fc0f45e58af51fc9ff56532abed9c536ebe40e41e7e0277a4d2f326", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/4b/fd/2a/attachment_cover-0d500300-b227-499c-94cd-8478da014c34-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=3d783839746a691cef858b18063ba2c3ac3fe122db9bf37525c4436f71e26b80", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/4b/fd/2a/attachment_cover-0d500300-b227-499c-94cd-8478da014c34-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=058b7a7cab3734ff1f086a5e660089d8e0c0dfce4d8746b958650c1516f87baf" + } + }, + "creation_date": "2022-03-30T13:30:28.221602Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [ + { + "uuid": "187a663f-6621-4c62-9989-3246d69ad353", + "listen_url": "/api/v1/listen/fb6be1e8-1c25-48d1-96aa-8da7eb99c7b8/?upload=187a663f-6621-4c62-9989-3246d69ad353", + "size": 7940420, + "duration": 200, + "bitrate": 246827, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/fb6be1e8-1c25-48d1-96aa-8da7eb99c7b8/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/moUse", + "url": null, + "creation_date": "2022-03-30T09:52:33.343318Z", + "summary": null, + "preferred_username": "moUse", + "name": "moUse", + "last_fetch_date": "2022-03-30T09:52:33.343334Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "moUse@tanukitunes.com", + "is_local": true + }, + "id": 99103, + "fid": "https://tanukitunes.com/federation/music/tracks/fb6be1e8-1c25-48d1-96aa-8da7eb99c7b8", + "mbid": null, + "title": "Grind Me Down (Jawster Remix)", + "creation_date": "2022-03-30T13:30:28.772698Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 21, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-18T18:53:58.356360Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1890, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12505, + "fid": "https://tanukitunes.com/federation/music/albums/627de79b-1ee6-4bba-8d8b-d8be16f09ec3", + "mbid": "07af0547-ff67-4ce7-98ff-277c9685cc5f", + "title": "Visiting Narcissa", + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-06-03", + "cover": { + "uuid": "3eac5393-bb08-452f-8818-0236d7843f77", + "size": 102695, + "mimetype": "image/jpeg", + "creation_date": "2022-06-03T11:57:54.339089Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8b661beb7b330c62fd0845856712938f085637c9d29f2ad6234ce8cb8fc302e4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0602a697681885c991113593abf89c19e1ac7dc33e124d7fe51a8856acf7cf04", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4971394cfbfc28a8f6a52e99ae5eda23e2a32747f538a54f8d47ddf86d3408" + } + }, + "creation_date": "2022-06-03T11:57:54.331367Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "c0d6c30a-d506-43b6-9ce7-4baeb4a6ba07", + "listen_url": "/api/v1/listen/a22dd2e5-21fa-4022-a6ce-8c9ccbbadecc/?upload=c0d6c30a-d506-43b6-9ce7-4baeb4a6ba07", + "size": 8899265, + "duration": 333, + "bitrate": 160000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/a22dd2e5-21fa-4022-a6ce-8c9ccbbadecc/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "id": 101402, + "fid": "https://tanukitunes.com/federation/music/tracks/a22dd2e5-21fa-4022-a6ce-8c9ccbbadecc", + "mbid": "2f9e1add-8664-413d-b439-9be12ea20f62", + "title": "Her Pool", + "creation_date": "2022-06-03T11:58:21.096163Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 13, + "copyright": null, + "license": "cc-by-sa-3.0", + "is_playable": true + }, + "creation_date": "2022-09-18T18:04:19.622084Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1889, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12505, + "fid": "https://tanukitunes.com/federation/music/albums/627de79b-1ee6-4bba-8d8b-d8be16f09ec3", + "mbid": "07af0547-ff67-4ce7-98ff-277c9685cc5f", + "title": "Visiting Narcissa", + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-06-03", + "cover": { + "uuid": "3eac5393-bb08-452f-8818-0236d7843f77", + "size": 102695, + "mimetype": "image/jpeg", + "creation_date": "2022-06-03T11:57:54.339089Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8b661beb7b330c62fd0845856712938f085637c9d29f2ad6234ce8cb8fc302e4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0602a697681885c991113593abf89c19e1ac7dc33e124d7fe51a8856acf7cf04", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4971394cfbfc28a8f6a52e99ae5eda23e2a32747f538a54f8d47ddf86d3408" + } + }, + "creation_date": "2022-06-03T11:57:54.331367Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "bb820052-5348-4586-8201-b661d5e6d589", + "listen_url": "/api/v1/listen/92e0746c-8789-4b57-a268-2b33e6dd0592/?upload=bb820052-5348-4586-8201-b661d5e6d589", + "size": 12880140, + "duration": 546, + "bitrate": 160000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/92e0746c-8789-4b57-a268-2b33e6dd0592/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "id": 101401, + "fid": "https://tanukitunes.com/federation/music/tracks/92e0746c-8789-4b57-a268-2b33e6dd0592", + "mbid": "8d39d92d-2188-4cb1-aace-fffa20faa282", + "title": "Her Hookah Lounge", + "creation_date": "2022-06-03T11:58:02.292926Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 11, + "copyright": null, + "license": "cc-by-sa-3.0", + "is_playable": true + }, + "creation_date": "2022-09-18T18:04:18.924862Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1888, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12505, + "fid": "https://tanukitunes.com/federation/music/albums/627de79b-1ee6-4bba-8d8b-d8be16f09ec3", + "mbid": "07af0547-ff67-4ce7-98ff-277c9685cc5f", + "title": "Visiting Narcissa", + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-06-03", + "cover": { + "uuid": "3eac5393-bb08-452f-8818-0236d7843f77", + "size": 102695, + "mimetype": "image/jpeg", + "creation_date": "2022-06-03T11:57:54.339089Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8b661beb7b330c62fd0845856712938f085637c9d29f2ad6234ce8cb8fc302e4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0602a697681885c991113593abf89c19e1ac7dc33e124d7fe51a8856acf7cf04", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4971394cfbfc28a8f6a52e99ae5eda23e2a32747f538a54f8d47ddf86d3408" + } + }, + "creation_date": "2022-06-03T11:57:54.331367Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "b055061b-7720-434d-86f4-a9c1f07dcf9f", + "listen_url": "/api/v1/listen/b145f87b-72e3-4c01-be3c-bc0d8ea86294/?upload=b055061b-7720-434d-86f4-a9c1f07dcf9f", + "size": 4482630, + "duration": 216, + "bitrate": 160000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/b145f87b-72e3-4c01-be3c-bc0d8ea86294/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "id": 101400, + "fid": "https://tanukitunes.com/federation/music/tracks/b145f87b-72e3-4c01-be3c-bc0d8ea86294", + "mbid": "7498880b-6460-4a5d-b999-e1cb0d2485b8", + "title": "Her Aviary", + "creation_date": "2022-06-03T11:58:01.233394Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 15, + "copyright": null, + "license": "cc-by-sa-3.0", + "is_playable": true + }, + "creation_date": "2022-09-18T17:53:39.209931Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1887, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12505, + "fid": "https://tanukitunes.com/federation/music/albums/627de79b-1ee6-4bba-8d8b-d8be16f09ec3", + "mbid": "07af0547-ff67-4ce7-98ff-277c9685cc5f", + "title": "Visiting Narcissa", + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-06-03", + "cover": { + "uuid": "3eac5393-bb08-452f-8818-0236d7843f77", + "size": 102695, + "mimetype": "image/jpeg", + "creation_date": "2022-06-03T11:57:54.339089Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8b661beb7b330c62fd0845856712938f085637c9d29f2ad6234ce8cb8fc302e4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0602a697681885c991113593abf89c19e1ac7dc33e124d7fe51a8856acf7cf04", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4971394cfbfc28a8f6a52e99ae5eda23e2a32747f538a54f8d47ddf86d3408" + } + }, + "creation_date": "2022-06-03T11:57:54.331367Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "423fc9c0-9f0d-41c1-8803-a94ae8a20851", + "listen_url": "/api/v1/listen/aa973b1f-0d0c-44df-b20e-e5bccef266fd/?upload=423fc9c0-9f0d-41c1-8803-a94ae8a20851", + "size": 8470656, + "duration": 307, + "bitrate": 160000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/aa973b1f-0d0c-44df-b20e-e5bccef266fd/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "id": 101399, + "fid": "https://tanukitunes.com/federation/music/tracks/aa973b1f-0d0c-44df-b20e-e5bccef266fd", + "mbid": "0732a34c-bd23-46f2-ad40-f4d5fbbf7105", + "title": "Her Library", + "creation_date": "2022-06-03T11:58:00.052225Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 20, + "copyright": null, + "license": "cc-by-sa-3.0", + "is_playable": true + }, + "creation_date": "2022-09-18T17:53:38.267507Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1886, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12505, + "fid": "https://tanukitunes.com/federation/music/albums/627de79b-1ee6-4bba-8d8b-d8be16f09ec3", + "mbid": "07af0547-ff67-4ce7-98ff-277c9685cc5f", + "title": "Visiting Narcissa", + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-06-03", + "cover": { + "uuid": "3eac5393-bb08-452f-8818-0236d7843f77", + "size": 102695, + "mimetype": "image/jpeg", + "creation_date": "2022-06-03T11:57:54.339089Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8b661beb7b330c62fd0845856712938f085637c9d29f2ad6234ce8cb8fc302e4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0602a697681885c991113593abf89c19e1ac7dc33e124d7fe51a8856acf7cf04", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4971394cfbfc28a8f6a52e99ae5eda23e2a32747f538a54f8d47ddf86d3408" + } + }, + "creation_date": "2022-06-03T11:57:54.331367Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "b310b28a-2c68-4c60-b3e1-f29bc7fffe00", + "listen_url": "/api/v1/listen/d35efbbc-1a33-4cd7-a3d2-8f91b3d00416/?upload=b310b28a-2c68-4c60-b3e1-f29bc7fffe00", + "size": 7949697, + "duration": 369, + "bitrate": 160000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/d35efbbc-1a33-4cd7-a3d2-8f91b3d00416/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "id": 101398, + "fid": "https://tanukitunes.com/federation/music/tracks/d35efbbc-1a33-4cd7-a3d2-8f91b3d00416", + "mbid": "93f206a2-4a8d-4292-88ac-dce163ae1927", + "title": "Her Kitchen", + "creation_date": "2022-06-03T11:57:58.259450Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 29, + "copyright": null, + "license": "cc-by-sa-3.0", + "is_playable": true + }, + "creation_date": "2022-09-18T17:53:37.439507Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1885, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12505, + "fid": "https://tanukitunes.com/federation/music/albums/627de79b-1ee6-4bba-8d8b-d8be16f09ec3", + "mbid": "07af0547-ff67-4ce7-98ff-277c9685cc5f", + "title": "Visiting Narcissa", + "artist": { + "id": 6604, + "fid": "https://tanukitunes.com/federation/music/artists/a9c967f4-1095-4a72-ba6d-c4bc095cafa3", + "mbid": "3be279e7-5d42-4b55-b4bc-93790b244df5", + "name": "Patricia Taxxon", + "creation_date": "2020-01-26T01:05:50.512954Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-06-03", + "cover": { + "uuid": "3eac5393-bb08-452f-8818-0236d7843f77", + "size": 102695, + "mimetype": "image/jpeg", + "creation_date": "2022-06-03T11:57:54.339089Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8b661beb7b330c62fd0845856712938f085637c9d29f2ad6234ce8cb8fc302e4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0602a697681885c991113593abf89c19e1ac7dc33e124d7fe51a8856acf7cf04", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/47/16/05/attachment_cover-627de79b-1ee6-4bba-8d8b-d8be16f09ec3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4971394cfbfc28a8f6a52e99ae5eda23e2a32747f538a54f8d47ddf86d3408" + } + }, + "creation_date": "2022-06-03T11:57:54.331367Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "26893291-ff53-45f1-b820-2161c8c6a31d", + "listen_url": "/api/v1/listen/444e4cc0-6ee1-4f00-b50f-5fa97ac4428b/?upload=26893291-ff53-45f1-b820-2161c8c6a31d", + "size": 6169846, + "duration": 250, + "bitrate": 160000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/444e4cc0-6ee1-4f00-b50f-5fa97ac4428b/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "id": 101397, + "fid": "https://tanukitunes.com/federation/music/tracks/444e4cc0-6ee1-4f00-b50f-5fa97ac4428b", + "mbid": "125c692c-e9da-45aa-afa1-e412b59c68df", + "title": "Her Foyer", + "creation_date": "2022-06-03T11:57:54.595158Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 37, + "copyright": null, + "license": "cc-by-sa-3.0", + "is_playable": true + }, + "creation_date": "2022-09-18T17:53:34.953178Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1884, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11634, + "fid": "https://tanukitunes.com/federation/music/albums/4e4c0a58-5381-4312-af77-615efa3a41b9", + "mbid": null, + "title": "We Drove All Night", + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": null, + "cover": null, + "creation_date": "2022-03-13T04:33:06.207344Z", + "is_local": true, + "tracks_count": 5 + }, + "uploads": [ + { + "uuid": "c315dba1-276a-42bc-9dc1-dee200a1f608", + "listen_url": "/api/v1/listen/72c6dcd6-c3f4-4c8f-b0d7-c9aa272ae584/?upload=c315dba1-276a-42bc-9dc1-dee200a1f608", + "size": 7030364, + "duration": 175, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/72c6dcd6-c3f4-4c8f-b0d7-c9aa272ae584/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + }, + "id": 97020, + "fid": "https://tanukitunes.com/federation/music/tracks/72c6dcd6-c3f4-4c8f-b0d7-c9aa272ae584", + "mbid": null, + "title": "City In The Rearview", + "creation_date": "2022-03-13T04:33:12.734012Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 94, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-18T16:31:59.327744Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1883, + "user": { + "id": 389, + "username": "tskaalgard", + "name": "", + "date_joined": "2020-08-19T17:49:36.338219Z", + "avatar": { + "uuid": "e4e56823-326d-44af-92b9-b91dc474268b", + "size": 2827, + "mimetype": "image/png", + "creation_date": "2020-08-19T17:56:23.268773Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7c/a1/cb/pixel_avatar_ultra_highres2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dc43c59e469e5266ba6a1b5f238f5d5b36f388f94b59ee8223ce1e7bfa972c2b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bd86692f41b4503c130527f5dd73c2ddf47df92ec37389007ec32403f5ac0614", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7c/a1/cb/pixel_avatar_ultra_highres2-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df06f7fee56abf002da047779020a29cd3ffb5dd196d6a9014e83a2629f6bdb2" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11633, + "fid": "https://tanukitunes.com/federation/music/albums/9305967b-e1a9-487d-9add-a4f934890a31", + "mbid": null, + "title": "Lo-fi And Chill", + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": null, + "cover": null, + "creation_date": "2022-03-13T04:31:12.039230Z", + "is_local": true, + "tracks_count": 7 + }, + "uploads": [ + { + "uuid": "27609bdf-76b7-46bc-a942-78d902822019", + "listen_url": "/api/v1/listen/0e0d9b0d-1b28-4722-bfe7-13b6b0a196ff/?upload=27609bdf-76b7-46bc-a942-78d902822019", + "size": 6964393, + "duration": 173, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/0e0d9b0d-1b28-4722-bfe7-13b6b0a196ff/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + }, + "id": 97018, + "fid": "https://tanukitunes.com/federation/music/tracks/0e0d9b0d-1b28-4722-bfe7-13b6b0a196ff", + "mbid": null, + "title": "Vintage", + "creation_date": "2022-03-13T04:31:30.333851Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 71, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-18T16:26:20.744916Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1882, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94d74038abc105d9b687914e55e9eee7b2ed6264eabeb8332fb656cae696faad", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4611d507efcf907f29191c9f464fb2a8052fadd484a438a1f78a770a674200", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f839d3c8ac2bca99e435ce2d6b59e2d18cdbc40a26c18278259223ce8b7343e6" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 82, + "fid": "https://tanukitunes.com/federation/music/artists/21c53633-5a7e-4968-bb76-f64193281307", + "mbid": "6b014cfd-4927-4187-a741-715998e6d785", + "name": "Lemon Demon", + "creation_date": "2018-12-16T20:25:14.515128Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "4b404074-2983-4359-9342-f92c1f4f9caa", + "size": 3482984, + "mimetype": "image/png", + "creation_date": "2020-01-19T17:11:29.432208Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/e0/04/67/lemon-demon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=42c1043b18c6686e737a49e8b777ed4d384de5aa3672e286f92e48aca68c03aa", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e0061dd96cb486a0f4a10f82b06977e7620278ce64532c925f355dc8676cd0df", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=afe385f0f09f6dc4c91b05385c0bfeae855599e68f328049ba4d7b02f6f39cf0" + } + }, + "channel": null + }, + "album": { + "id": 223, + "fid": "https://tanukitunes.com/federation/music/albums/a97dd889-f58f-4ff3-8e27-83607672852d", + "mbid": "1fbcf76f-1f4f-4d30-a472-1c4b449a82da", + "title": "Damn Skippy", + "artist": { + "id": 82, + "fid": "https://tanukitunes.com/federation/music/artists/21c53633-5a7e-4968-bb76-f64193281307", + "mbid": "6b014cfd-4927-4187-a741-715998e6d785", + "name": "Lemon Demon", + "creation_date": "2018-12-16T20:25:14.515128Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "4b404074-2983-4359-9342-f92c1f4f9caa", + "size": 3482984, + "mimetype": "image/png", + "creation_date": "2020-01-19T17:11:29.432208Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/e0/04/67/lemon-demon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=42c1043b18c6686e737a49e8b777ed4d384de5aa3672e286f92e48aca68c03aa", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e0061dd96cb486a0f4a10f82b06977e7620278ce64532c925f355dc8676cd0df", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=afe385f0f09f6dc4c91b05385c0bfeae855599e68f328049ba4d7b02f6f39cf0" + } + }, + "channel": null + }, + "release_date": "2005-03-21", + "cover": { + "uuid": "41698fc8-efcf-46d3-9bff-99f3b91a4cd7", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.498997Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/16/b1fbcf76f-1f4f-4d30-a472-1c4b449a82da.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b513cb47198638ba0c38a0967311bca0a2b37acb2f43878306ef33c669a698db", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/b1fbcf76f-1f4f-4d30-a472-1c4b449a82da-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6c4a7fbab2881607248f4757c656cc6fea07575105a73e51fddaf86157a4a358", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/b1fbcf76f-1f4f-4d30-a472-1c4b449a82da-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d5f824bfe1235067997e0f973460429f5b1bbceece4e4b406c15f447c49b63e" + } + }, + "creation_date": "2018-12-16T20:25:56.996741Z", + "is_local": true, + "tracks_count": 18 + }, + "uploads": [ + { + "uuid": "38919473-4e3f-4b8f-8315-d328fa940625", + "listen_url": "/api/v1/listen/c79a25ce-d247-4eff-93e0-cf3c31dea92e/?upload=38919473-4e3f-4b8f-8315-d328fa940625", + "size": 2320164, + "duration": 123, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/c79a25ce-d247-4eff-93e0-cf3c31dea92e/", + "tags": [], + "attributed_to": null, + "id": 2740, + "fid": "https://tanukitunes.com/federation/music/tracks/c79a25ce-d247-4eff-93e0-cf3c31dea92e", + "mbid": "e7d5d0b9-f957-4abe-ba66-841ef3a73db8", + "title": "Kitten Is Angry", + "creation_date": "2018-12-16T20:26:20.218065Z", + "is_local": true, + "position": 8, + "disc_number": null, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-13T18:22:27.800098Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1881, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94d74038abc105d9b687914e55e9eee7b2ed6264eabeb8332fb656cae696faad", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4611d507efcf907f29191c9f464fb2a8052fadd484a438a1f78a770a674200", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f839d3c8ac2bca99e435ce2d6b59e2d18cdbc40a26c18278259223ce8b7343e6" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 82, + "fid": "https://tanukitunes.com/federation/music/artists/21c53633-5a7e-4968-bb76-f64193281307", + "mbid": "6b014cfd-4927-4187-a741-715998e6d785", + "name": "Lemon Demon", + "creation_date": "2018-12-16T20:25:14.515128Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "4b404074-2983-4359-9342-f92c1f4f9caa", + "size": 3482984, + "mimetype": "image/png", + "creation_date": "2020-01-19T17:11:29.432208Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/e0/04/67/lemon-demon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=42c1043b18c6686e737a49e8b777ed4d384de5aa3672e286f92e48aca68c03aa", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e0061dd96cb486a0f4a10f82b06977e7620278ce64532c925f355dc8676cd0df", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=afe385f0f09f6dc4c91b05385c0bfeae855599e68f328049ba4d7b02f6f39cf0" + } + }, + "channel": null + }, + "album": { + "id": 223, + "fid": "https://tanukitunes.com/federation/music/albums/a97dd889-f58f-4ff3-8e27-83607672852d", + "mbid": "1fbcf76f-1f4f-4d30-a472-1c4b449a82da", + "title": "Damn Skippy", + "artist": { + "id": 82, + "fid": "https://tanukitunes.com/federation/music/artists/21c53633-5a7e-4968-bb76-f64193281307", + "mbid": "6b014cfd-4927-4187-a741-715998e6d785", + "name": "Lemon Demon", + "creation_date": "2018-12-16T20:25:14.515128Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "4b404074-2983-4359-9342-f92c1f4f9caa", + "size": 3482984, + "mimetype": "image/png", + "creation_date": "2020-01-19T17:11:29.432208Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/e0/04/67/lemon-demon.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=42c1043b18c6686e737a49e8b777ed4d384de5aa3672e286f92e48aca68c03aa", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e0061dd96cb486a0f4a10f82b06977e7620278ce64532c925f355dc8676cd0df", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e0/04/67/lemon-demon-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=afe385f0f09f6dc4c91b05385c0bfeae855599e68f328049ba4d7b02f6f39cf0" + } + }, + "channel": null + }, + "release_date": "2005-03-21", + "cover": { + "uuid": "41698fc8-efcf-46d3-9bff-99f3b91a4cd7", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.498997Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/16/b1fbcf76f-1f4f-4d30-a472-1c4b449a82da.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b513cb47198638ba0c38a0967311bca0a2b37acb2f43878306ef33c669a698db", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/b1fbcf76f-1f4f-4d30-a472-1c4b449a82da-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6c4a7fbab2881607248f4757c656cc6fea07575105a73e51fddaf86157a4a358", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/b1fbcf76f-1f4f-4d30-a472-1c4b449a82da-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d5f824bfe1235067997e0f973460429f5b1bbceece4e4b406c15f447c49b63e" + } + }, + "creation_date": "2018-12-16T20:25:56.996741Z", + "is_local": true, + "tracks_count": 18 + }, + "uploads": [ + { + "uuid": "e042f285-1bef-4695-99d8-c3bf8bf51ce4", + "listen_url": "/api/v1/listen/10c221b1-5fd5-430e-8749-ae5561915af9/?upload=e042f285-1bef-4695-99d8-c3bf8bf51ce4", + "size": 3275387, + "duration": 184, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/10c221b1-5fd5-430e-8749-ae5561915af9/", + "tags": [], + "attributed_to": null, + "id": 2735, + "fid": "https://tanukitunes.com/federation/music/tracks/10c221b1-5fd5-430e-8749-ae5561915af9", + "mbid": "04bfd8f5-086a-41a8-b7da-68a92bd4f312", + "title": "Pumpkin Pie", + "creation_date": "2018-12-16T20:26:04.212765Z", + "is_local": true, + "position": 3, + "disc_number": null, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-13T18:18:58.017276Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1880, + "user": { + "id": 626, + "username": "louqman", + "name": "", + "date_joined": "2022-09-01T16:13:59.328448Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11633, + "fid": "https://tanukitunes.com/federation/music/albums/9305967b-e1a9-487d-9add-a4f934890a31", + "mbid": null, + "title": "Lo-fi And Chill", + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": null, + "cover": null, + "creation_date": "2022-03-13T04:31:12.039230Z", + "is_local": true, + "tracks_count": 7 + }, + "uploads": [ + { + "uuid": "27609bdf-76b7-46bc-a942-78d902822019", + "listen_url": "/api/v1/listen/0e0d9b0d-1b28-4722-bfe7-13b6b0a196ff/?upload=27609bdf-76b7-46bc-a942-78d902822019", + "size": 6964393, + "duration": 173, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/0e0d9b0d-1b28-4722-bfe7-13b6b0a196ff/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + }, + "id": 97018, + "fid": "https://tanukitunes.com/federation/music/tracks/0e0d9b0d-1b28-4722-bfe7-13b6b0a196ff", + "mbid": null, + "title": "Vintage", + "creation_date": "2022-03-13T04:31:30.333851Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 71, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-02T13:18:47.319600Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/louqman", + "url": null, + "creation_date": "2022-09-01T16:13:59.709126Z", + "summary": null, + "preferred_username": "louqman", + "name": "louqman", + "last_fetch_date": "2022-09-01T16:13:59.709141Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "louqman@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1879, + "user": { + "id": 626, + "username": "louqman", + "name": "", + "date_joined": "2022-09-01T16:13:59.328448Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11634, + "fid": "https://tanukitunes.com/federation/music/albums/4e4c0a58-5381-4312-af77-615efa3a41b9", + "mbid": null, + "title": "We Drove All Night", + "artist": { + "id": 12146, + "fid": "https://tanukitunes.com/federation/music/artists/e95509b3-baed-4096-b388-18cdfda7d891", + "mbid": null, + "name": "HoliznaCC0", + "creation_date": "2022-03-13T04:29:58.659353Z", + "modification_date": "2022-03-13T04:29:58.659434Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": null, + "cover": null, + "creation_date": "2022-03-13T04:33:06.207344Z", + "is_local": true, + "tracks_count": 5 + }, + "uploads": [ + { + "uuid": "c315dba1-276a-42bc-9dc1-dee200a1f608", + "listen_url": "/api/v1/listen/72c6dcd6-c3f4-4c8f-b0d7-c9aa272ae584/?upload=c315dba1-276a-42bc-9dc1-dee200a1f608", + "size": 7030364, + "duration": 175, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/72c6dcd6-c3f4-4c8f-b0d7-c9aa272ae584/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + }, + "id": 97020, + "fid": "https://tanukitunes.com/federation/music/tracks/72c6dcd6-c3f4-4c8f-b0d7-c9aa272ae584", + "mbid": null, + "title": "City In The Rearview", + "creation_date": "2022-03-13T04:33:12.734012Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 94, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-02T13:18:22.468186Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/louqman", + "url": null, + "creation_date": "2022-09-01T16:13:59.709126Z", + "summary": null, + "preferred_username": "louqman", + "name": "louqman", + "last_fetch_date": "2022-09-01T16:13:59.709141Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "louqman@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1878, + "user": { + "id": 626, + "username": "louqman", + "name": "", + "date_joined": "2022-09-01T16:13:59.328448Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 12145, + "fid": "https://tanukitunes.com/federation/music/artists/8adc10c5-716e-4891-b4ba-fd5671d30f41", + "mbid": null, + "name": "Jazz One Beats", + "creation_date": "2022-03-13T04:15:28.588463Z", + "modification_date": "2022-03-13T04:15:28.588549Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11631, + "fid": "https://tanukitunes.com/federation/music/albums/4a59cca6-55eb-4136-b6de-eca0ad1558b9", + "mbid": null, + "title": "The MPC Files (LP)", + "artist": { + "id": 12145, + "fid": "https://tanukitunes.com/federation/music/artists/8adc10c5-716e-4891-b4ba-fd5671d30f41", + "mbid": null, + "name": "Jazz One Beats", + "creation_date": "2022-03-13T04:15:28.588463Z", + "modification_date": "2022-03-13T04:15:28.588549Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2021-01-01", + "cover": { + "uuid": "b26c7ae9-e4e6-4f34-9f0a-38bf29b2cbda", + "size": 144861, + "mimetype": "image/jpeg", + "creation_date": "2022-03-13T04:15:28.599264Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/08/8b/68/attachment_cover-4a59cca6-55eb-4136-b6de-eca0ad1558b9.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7af947bec5923318d3c7f0a89990f1374e174a3694094322364aa1fcdd6c0522", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/08/8b/68/attachment_cover-4a59cca6-55eb-4136-b6de-eca0ad1558b9-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=72e71bf5e204004bfd16e16413ab760f46200174283501111e3f3e7d3884f170", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/08/8b/68/attachment_cover-4a59cca6-55eb-4136-b6de-eca0ad1558b9-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4b5030845fd81a99dec5739db984bb72b2741dc826e4eca99033ae6edaeae8" + } + }, + "creation_date": "2022-03-13T04:15:28.595230Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [ + { + "uuid": "abcb1363-af96-4791-9c40-ca9b15cf00d7", + "listen_url": "/api/v1/listen/e201e35d-ec40-44c2-b12a-02c2e2e1c37b/?upload=abcb1363-af96-4791-9c40-ca9b15cf00d7", + "size": 10294445, + "duration": 253, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/e201e35d-ec40-44c2-b12a-02c2e2e1c37b/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + }, + "id": 97004, + "fid": "https://tanukitunes.com/federation/music/tracks/e201e35d-ec40-44c2-b12a-02c2e2e1c37b", + "mbid": null, + "title": "Sydney City", + "creation_date": "2022-03-13T04:15:28.865912Z", + "is_local": true, + "position": 15, + "disc_number": null, + "downloads_count": 124, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-01T23:21:34.505609Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/louqman", + "url": null, + "creation_date": "2022-09-01T16:13:59.709126Z", + "summary": null, + "preferred_username": "louqman", + "name": "louqman", + "last_fetch_date": "2022-09-01T16:13:59.709141Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "louqman@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1877, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94d74038abc105d9b687914e55e9eee7b2ed6264eabeb8332fb656cae696faad", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4611d507efcf907f29191c9f464fb2a8052fadd484a438a1f78a770a674200", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f839d3c8ac2bca99e435ce2d6b59e2d18cdbc40a26c18278259223ce8b7343e6" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 10068, + "fid": "https://tanukitunes.com/federation/music/artists/d962af6a-7647-43b9-914e-76048415a75d", + "mbid": "eba72c3c-47e5-4541-ae1c-c34b217d38c4", + "name": "Autoheart", + "creation_date": "2021-01-15T00:50:43.783779Z", + "modification_date": "2021-01-15T00:50:43.783844Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9902, + "fid": "https://tanukitunes.com/federation/music/albums/06304944-962b-4535-bfcb-6d1a6361cea4", + "mbid": "ff0cbb35-95e0-4905-bdcb-cc8b604e5cef", + "title": "I Can Build A Fire", + "artist": { + "id": 10068, + "fid": "https://tanukitunes.com/federation/music/artists/d962af6a-7647-43b9-914e-76048415a75d", + "mbid": "eba72c3c-47e5-4541-ae1c-c34b217d38c4", + "name": "Autoheart", + "creation_date": "2021-01-15T00:50:43.783779Z", + "modification_date": "2021-01-15T00:50:43.783844Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-08-26", + "cover": { + "uuid": "8607b1ed-dc11-4879-9e11-fe3d0b4effec", + "size": 57565, + "mimetype": "image/jpeg", + "creation_date": "2021-08-22T22:13:21.957625Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ee/64/5a/attachment_cover-06304944-962b-4535-bfcb-6d1a6361cea4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=081d10a06713497dcaf8f3fd9016bc9fe4fc8166d8844c878b3e5b68958af8f4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ee/64/5a/attachment_cover-06304944-962b-4535-bfcb-6d1a6361cea4-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bc8bdf44a021beea8d621228b3ec7ace89b6ab89f0c66404ee37075590a7d0bf", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ee/64/5a/attachment_cover-06304944-962b-4535-bfcb-6d1a6361cea4-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d9e270c081c895c6e6c7c40492e396ba7d83e894aa3f3039e93882262cd29a" + } + }, + "creation_date": "2021-08-22T22:13:21.953043Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "a4e9970f-431a-4643-9edd-dd5e8246e19c", + "listen_url": "/api/v1/listen/2658a3c5-d52f-47b8-95fb-d7b1b1c1d61c/?upload=a4e9970f-431a-4643-9edd-dd5e8246e19c", + "size": 7325044, + "duration": 339, + "bitrate": 0, + "mimetype": "audio/opus", + "extension": "opus", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/2658a3c5-d52f-47b8-95fb-d7b1b1c1d61c/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 89693, + "fid": "https://tanukitunes.com/federation/music/tracks/2658a3c5-d52f-47b8-95fb-d7b1b1c1d61c", + "mbid": "eff02c62-aa27-4a3e-a697-be57ba15dd4e", + "title": "Joseph", + "creation_date": "2021-08-22T22:14:01.592177Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-09-01T12:29:19.741686Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1876, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94d74038abc105d9b687914e55e9eee7b2ed6264eabeb8332fb656cae696faad", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4611d507efcf907f29191c9f464fb2a8052fadd484a438a1f78a770a674200", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f839d3c8ac2bca99e435ce2d6b59e2d18cdbc40a26c18278259223ce8b7343e6" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 10068, + "fid": "https://tanukitunes.com/federation/music/artists/d962af6a-7647-43b9-914e-76048415a75d", + "mbid": "eba72c3c-47e5-4541-ae1c-c34b217d38c4", + "name": "Autoheart", + "creation_date": "2021-01-15T00:50:43.783779Z", + "modification_date": "2021-01-15T00:50:43.783844Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9902, + "fid": "https://tanukitunes.com/federation/music/albums/06304944-962b-4535-bfcb-6d1a6361cea4", + "mbid": "ff0cbb35-95e0-4905-bdcb-cc8b604e5cef", + "title": "I Can Build A Fire", + "artist": { + "id": 10068, + "fid": "https://tanukitunes.com/federation/music/artists/d962af6a-7647-43b9-914e-76048415a75d", + "mbid": "eba72c3c-47e5-4541-ae1c-c34b217d38c4", + "name": "Autoheart", + "creation_date": "2021-01-15T00:50:43.783779Z", + "modification_date": "2021-01-15T00:50:43.783844Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-08-26", + "cover": { + "uuid": "8607b1ed-dc11-4879-9e11-fe3d0b4effec", + "size": 57565, + "mimetype": "image/jpeg", + "creation_date": "2021-08-22T22:13:21.957625Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ee/64/5a/attachment_cover-06304944-962b-4535-bfcb-6d1a6361cea4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=081d10a06713497dcaf8f3fd9016bc9fe4fc8166d8844c878b3e5b68958af8f4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ee/64/5a/attachment_cover-06304944-962b-4535-bfcb-6d1a6361cea4-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bc8bdf44a021beea8d621228b3ec7ace89b6ab89f0c66404ee37075590a7d0bf", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ee/64/5a/attachment_cover-06304944-962b-4535-bfcb-6d1a6361cea4-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d9e270c081c895c6e6c7c40492e396ba7d83e894aa3f3039e93882262cd29a" + } + }, + "creation_date": "2021-08-22T22:13:21.953043Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "75266a27-756b-40dc-9dc7-ac93ce88f870", + "listen_url": "/api/v1/listen/9edc94d7-ff9c-4e5f-84cb-d5d864727ca8/?upload=75266a27-756b-40dc-9dc7-ac93ce88f870", + "size": 5826031, + "duration": 279, + "bitrate": 0, + "mimetype": "audio/opus", + "extension": "opus", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/9edc94d7-ff9c-4e5f-84cb-d5d864727ca8/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 89691, + "fid": "https://tanukitunes.com/federation/music/tracks/9edc94d7-ff9c-4e5f-84cb-d5d864727ca8", + "mbid": "78da69ac-10d5-4c2e-9971-0c58a5bce8ba", + "title": "Murky Waters", + "creation_date": "2021-08-22T22:13:51.733617Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 2, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-31T15:11:17.423707Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1875, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94d74038abc105d9b687914e55e9eee7b2ed6264eabeb8332fb656cae696faad", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e4611d507efcf907f29191c9f464fb2a8052fadd484a438a1f78a770a674200", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220049Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f839d3c8ac2bca99e435ce2d6b59e2d18cdbc40a26c18278259223ce8b7343e6" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 72, + "fid": "https://tanukitunes.com/federation/music/artists/dfa5ed55-feef-4fda-9ccc-daa8710e4b8d", + "mbid": "dc936e53-749a-4414-a3a1-a7b58b693f09", + "name": "Bossfight", + "creation_date": "2018-12-13T22:07:03.723614Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 206, + "fid": "https://tanukitunes.com/federation/music/albums/d59549c7-1c20-42a7-b3eb-faefe33f006b", + "mbid": "9fa0989e-6440-49ee-b6f5-0896c8feae76", + "title": "Caps On, Hats Off", + "artist": { + "id": 72, + "fid": "https://tanukitunes.com/federation/music/artists/dfa5ed55-feef-4fda-9ccc-daa8710e4b8d", + "mbid": "dc936e53-749a-4414-a3a1-a7b58b693f09", + "name": "Bossfight", + "creation_date": "2018-12-13T22:07:03.723614Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2012-09-09", + "cover": { + "uuid": "0b55d252-f168-4da0-bda3-362342d14b46", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.500093Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/13/b9fa0989e-6440-49ee-b6f5-0896c8feae76.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a14e0afe69e10ef004d3355e6df2b555f44c339ecb577cfb411d04229f5ad24a", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b9fa0989e-6440-49ee-b6f5-0896c8feae76-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=21dad84a45d488de5761ba6c19dece77a576f87bf5c316e5f447b90d2121b456", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b9fa0989e-6440-49ee-b6f5-0896c8feae76-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=65c59ebd598b1fa4fd30a0262794410717f741eca288a99ea63d7433d12c43ec" + } + }, + "creation_date": "2018-12-13T22:07:03.727890Z", + "is_local": true, + "tracks_count": 16 + }, + "uploads": [ + { + "uuid": "0e45523e-054f-4a71-866e-8423cafe5d3c", + "listen_url": "/api/v1/listen/f2902fa9-2ed9-43c6-b95c-d29c9348e523/?upload=0e45523e-054f-4a71-866e-8423cafe5d3c", + "size": 4754346, + "duration": 204, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/f2902fa9-2ed9-43c6-b95c-d29c9348e523/", + "tags": [], + "attributed_to": null, + "id": 2472, + "fid": "https://tanukitunes.com/federation/music/tracks/f2902fa9-2ed9-43c6-b95c-d29c9348e523", + "mbid": "b42052b0-75c6-4271-9513-dd9c49a8aab8", + "title": "Leaving Leafwood Forest", + "creation_date": "2018-12-13T22:07:12.656337Z", + "is_local": true, + "position": 3, + "disc_number": null, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-27T17:33:14.814171Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1874, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4002e16aa5f7f572c5f344cde669ed06aaf386421978757ae6b5a09698db41", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7a955d50d17f845225a947466b53e78efee6010bbfce1de2db7b7fb57657941", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ecd20efec0afd97698548993f2e56cf7c40494fee2f166b908f27eef2a5222bf" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 25, + "fid": "https://tanukitunes.com/federation/music/artists/8abe0306-ed17-4442-989f-3c285f489271", + "mbid": "cb67438a-7f50-4f2b-a6f1-2bb2729fd538", + "name": "Air", + "creation_date": "2018-12-13T00:35:52.417661Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "c50a212c-bc49-42d4-9ace-0b7987887bca", + "size": 235353, + "mimetype": "image/jpeg", + "creation_date": "2020-07-14T11:37:47.725899Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/52/c4/8c/alstlilxumqzowylkhtw.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=81e67fec534992f6af2fa3c232ea92b1ea78a9fe582d5a472a34664b02d5882a", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a0139459a3f6729ca07cd602fcb5bb1def580bad6e211168122cb1e2211bf221", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e490e2d9c7b7f10554573788ee4efdabf72ac3c3742f55b0346ddf408426aa69" + } + }, + "channel": null + }, + "album": { + "id": 77, + "fid": "https://tanukitunes.com/federation/music/albums/9ee1ab54-6199-499c-8703-d64110f32842", + "mbid": "25d4d542-bbb8-4f8d-8572-692c6ceab44d", + "title": "Talkie Walkie", + "artist": { + "id": 25, + "fid": "https://tanukitunes.com/federation/music/artists/8abe0306-ed17-4442-989f-3c285f489271", + "mbid": "cb67438a-7f50-4f2b-a6f1-2bb2729fd538", + "name": "Air", + "creation_date": "2018-12-13T00:35:52.417661Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "c50a212c-bc49-42d4-9ace-0b7987887bca", + "size": 235353, + "mimetype": "image/jpeg", + "creation_date": "2020-07-14T11:37:47.725899Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/52/c4/8c/alstlilxumqzowylkhtw.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=81e67fec534992f6af2fa3c232ea92b1ea78a9fe582d5a472a34664b02d5882a", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a0139459a3f6729ca07cd602fcb5bb1def580bad6e211168122cb1e2211bf221", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e490e2d9c7b7f10554573788ee4efdabf72ac3c3742f55b0346ddf408426aa69" + } + }, + "channel": null + }, + "release_date": "2004-01-01", + "cover": { + "uuid": "89d4dfbc-26b7-4682-8ad8-00d218f944e9", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:48.100384Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/13/b25d4d542-bbb8-4f8d-8572-692c6ceab44d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=37e7e5a6d8bd60a5b18e37806f6f5ec1d6c841b7c19190108df047e3c466da20", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b25d4d542-bbb8-4f8d-8572-692c6ceab44d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6c32ce68eb35bec11106ef2f2496583c63f801537598a6413fa675061ce6863e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b25d4d542-bbb8-4f8d-8572-692c6ceab44d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=be20c8bc80ab45efaecdc847e012919aeb2166e2ffe59c0c636f80b526597bff" + } + }, + "creation_date": "2018-12-13T00:36:33.932556Z", + "is_local": true, + "tracks_count": 10 + }, + "uploads": [ + { + "uuid": "7a8aead5-a552-4638-8049-478e00cd512c", + "listen_url": "/api/v1/listen/a8312d3b-c6ce-4edd-a11f-2f1a5b8e4a1c/?upload=7a8aead5-a552-4638-8049-478e00cd512c", + "size": 7069502, + "duration": 291, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/a8312d3b-c6ce-4edd-a11f-2f1a5b8e4a1c/", + "tags": [], + "attributed_to": null, + "id": 1129, + "fid": "https://tanukitunes.com/federation/music/tracks/a8312d3b-c6ce-4edd-a11f-2f1a5b8e4a1c", + "mbid": "f900f8e2-7d49-4cca-a9a9-ee67dda88e6e", + "title": "Alone in Kyoto", + "creation_date": "2018-12-13T00:37:18.417005Z", + "is_local": true, + "position": 10, + "disc_number": null, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-26T14:06:47.605470Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1873, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4002e16aa5f7f572c5f344cde669ed06aaf386421978757ae6b5a09698db41", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7a955d50d17f845225a947466b53e78efee6010bbfce1de2db7b7fb57657941", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ecd20efec0afd97698548993f2e56cf7c40494fee2f166b908f27eef2a5222bf" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 43, + "fid": "https://tanukitunes.com/federation/music/artists/b4fc8ec0-0756-4dcc-aba3-d677eca7f327", + "mbid": "8e3fcd7d-bda1-4ca0-b987-b8528d2ee74e", + "name": "Genesis", + "creation_date": "2018-12-13T01:12:39.265477Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5719, + "fid": "https://tanukitunes.com/federation/music/albums/89abbdb8-7314-4c2b-b31c-a68ededd0ceb", + "mbid": "ee424022-ba47-46a9-b816-23f24701f455", + "title": "Abacab", + "artist": { + "id": 43, + "fid": "https://tanukitunes.com/federation/music/artists/b4fc8ec0-0756-4dcc-aba3-d677eca7f327", + "mbid": "8e3fcd7d-bda1-4ca0-b987-b8528d2ee74e", + "name": "Genesis", + "creation_date": "2018-12-13T01:12:39.265477Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1981-09-18", + "cover": { + "uuid": "e78786b5-7340-4d64-bc4e-d0522764dcce", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.475651Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/10/20/89abbdb8-7314-4c2b-b31c-a68ededd0ceb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=804e5939477279bd32d4ee6ccde86c07868645bbfbdedaeeafc212665dca28b1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/10/20/89abbdb8-7314-4c2b-b31c-a68ededd0ceb-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=76b83cfeae5f6685a5b71e1e72bb83823acd37a7c742c410ef2a26cbe50ed006", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/10/20/89abbdb8-7314-4c2b-b31c-a68ededd0ceb-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0fe89ba9c6f128739dca4efff107ed2da12bd4e7be033bed68e5715e80dd685b" + } + }, + "creation_date": "2019-10-20T10:40:22.406750Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [ + { + "uuid": "2245f5e7-82cb-41b8-a5ad-277b7f184398", + "listen_url": "/api/v1/listen/790a943e-41a3-479d-ad46-faa670c58eda/?upload=2245f5e7-82cb-41b8-a5ad-277b7f184398", + "size": 6865745, + "duration": 267, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/790a943e-41a3-479d-ad46-faa670c58eda/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 44890, + "fid": "https://tanukitunes.com/federation/music/tracks/790a943e-41a3-479d-ad46-faa670c58eda", + "mbid": "5bc53af2-5ca9-4863-839d-245f65e332ac", + "title": "Man on the Corner", + "creation_date": "2019-10-20T10:40:44.321099Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 11, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-13T23:28:29.281661Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1872, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4002e16aa5f7f572c5f344cde669ed06aaf386421978757ae6b5a09698db41", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7a955d50d17f845225a947466b53e78efee6010bbfce1de2db7b7fb57657941", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ecd20efec0afd97698548993f2e56cf7c40494fee2f166b908f27eef2a5222bf" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 25, + "fid": "https://tanukitunes.com/federation/music/artists/8abe0306-ed17-4442-989f-3c285f489271", + "mbid": "cb67438a-7f50-4f2b-a6f1-2bb2729fd538", + "name": "Air", + "creation_date": "2018-12-13T00:35:52.417661Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "c50a212c-bc49-42d4-9ace-0b7987887bca", + "size": 235353, + "mimetype": "image/jpeg", + "creation_date": "2020-07-14T11:37:47.725899Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/52/c4/8c/alstlilxumqzowylkhtw.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=81e67fec534992f6af2fa3c232ea92b1ea78a9fe582d5a472a34664b02d5882a", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a0139459a3f6729ca07cd602fcb5bb1def580bad6e211168122cb1e2211bf221", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e490e2d9c7b7f10554573788ee4efdabf72ac3c3742f55b0346ddf408426aa69" + } + }, + "channel": null + }, + "album": { + "id": 77, + "fid": "https://tanukitunes.com/federation/music/albums/9ee1ab54-6199-499c-8703-d64110f32842", + "mbid": "25d4d542-bbb8-4f8d-8572-692c6ceab44d", + "title": "Talkie Walkie", + "artist": { + "id": 25, + "fid": "https://tanukitunes.com/federation/music/artists/8abe0306-ed17-4442-989f-3c285f489271", + "mbid": "cb67438a-7f50-4f2b-a6f1-2bb2729fd538", + "name": "Air", + "creation_date": "2018-12-13T00:35:52.417661Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": { + "uuid": "c50a212c-bc49-42d4-9ace-0b7987887bca", + "size": 235353, + "mimetype": "image/jpeg", + "creation_date": "2020-07-14T11:37:47.725899Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/52/c4/8c/alstlilxumqzowylkhtw.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=81e67fec534992f6af2fa3c232ea92b1ea78a9fe582d5a472a34664b02d5882a", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a0139459a3f6729ca07cd602fcb5bb1def580bad6e211168122cb1e2211bf221", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/52/c4/8c/alstlilxumqzowylkhtw-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e490e2d9c7b7f10554573788ee4efdabf72ac3c3742f55b0346ddf408426aa69" + } + }, + "channel": null + }, + "release_date": "2004-01-01", + "cover": { + "uuid": "89d4dfbc-26b7-4682-8ad8-00d218f944e9", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:48.100384Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/13/b25d4d542-bbb8-4f8d-8572-692c6ceab44d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=37e7e5a6d8bd60a5b18e37806f6f5ec1d6c841b7c19190108df047e3c466da20", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b25d4d542-bbb8-4f8d-8572-692c6ceab44d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6c32ce68eb35bec11106ef2f2496583c63f801537598a6413fa675061ce6863e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b25d4d542-bbb8-4f8d-8572-692c6ceab44d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=be20c8bc80ab45efaecdc847e012919aeb2166e2ffe59c0c636f80b526597bff" + } + }, + "creation_date": "2018-12-13T00:36:33.932556Z", + "is_local": true, + "tracks_count": 10 + }, + "uploads": [ + { + "uuid": "2ce3dee9-cfe1-46cc-9490-27f3d714c7e7", + "listen_url": "/api/v1/listen/32411f07-bbd3-41d9-9d41-841a7c3857d9/?upload=2ce3dee9-cfe1-46cc-9490-27f3d714c7e7", + "size": 7034348, + "duration": 262, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/32411f07-bbd3-41d9-9d41-841a7c3857d9/", + "tags": [], + "attributed_to": null, + "id": 1123, + "fid": "https://tanukitunes.com/federation/music/tracks/32411f07-bbd3-41d9-9d41-841a7c3857d9", + "mbid": "2a4090df-cd3d-458e-884f-400e84004602", + "title": "Universal Traveler", + "creation_date": "2018-12-13T00:36:47.562123Z", + "is_local": true, + "position": 4, + "disc_number": null, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-10T12:09:42.021007Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1871, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 11936, + "fid": "https://tanukitunes.com/federation/music/artists/3841e3e1-8490-43b7-8bba-9c25188e7b6a", + "mbid": "abc58fa1-f1dd-418f-9e58-af74cc4596f3", + "name": "Kraken", + "creation_date": "2022-02-01T02:11:44.277084Z", + "modification_date": "2022-02-01T02:11:44.277183Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 10935, + "fid": "https://tanukitunes.com/federation/music/albums/68476a2a-74b3-46b1-8f78-f8717fd17ea3", + "mbid": "e4b92693-0feb-47ce-b5e0-166a01a9548c", + "title": "Kraken filarmónico", + "artist": { + "id": 11936, + "fid": "https://tanukitunes.com/federation/music/artists/3841e3e1-8490-43b7-8bba-9c25188e7b6a", + "mbid": "abc58fa1-f1dd-418f-9e58-af74cc4596f3", + "name": "Kraken", + "creation_date": "2022-02-01T02:11:44.277084Z", + "modification_date": "2022-02-01T02:11:44.277183Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2006-12-06", + "cover": { + "uuid": "38a80e60-5e6d-4517-bb85-455d4cd1dc1a", + "size": 64001, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T02:11:44.283068Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/34/f8/71/attachment_cover-68476a2a-74b3-46b1-8f78-f8717fd17ea3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ab0860b7ee3f6d833561ad7735466d69a9097a541a24ba2320197f79508d5680", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/34/f8/71/attachment_cover-68476a2a-74b3-46b1-8f78-f8717fd17ea3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7f5c524c6d718b69569f56228e6a216b4334f258d8d15b438b79a2a1571a33e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/34/f8/71/attachment_cover-68476a2a-74b3-46b1-8f78-f8717fd17ea3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=808a9d31912d60067296ad368bf94f66261c73924f21d5f3e35f15f8face4acc" + } + }, + "creation_date": "2022-02-01T02:11:44.280921Z", + "is_local": true, + "tracks_count": 8 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3cc877af-2ddb-41d5-ae53-15e494d711e9/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95570, + "fid": "https://tanukitunes.com/federation/music/tracks/3cc877af-2ddb-41d5-ae53-15e494d711e9", + "mbid": "3dc89bb5-bc42-480c-8d94-2f1e447bedff", + "title": "Sin miedo al dolor", + "creation_date": "2022-02-01T04:45:28.378975Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 9, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-08T14:57:15.696180Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1870, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4002e16aa5f7f572c5f344cde669ed06aaf386421978757ae6b5a09698db41", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7a955d50d17f845225a947466b53e78efee6010bbfce1de2db7b7fb57657941", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ecd20efec0afd97698548993f2e56cf7c40494fee2f166b908f27eef2a5222bf" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 26, + "fid": "https://tanukitunes.com/federation/music/artists/73458f3c-61b2-43c6-91e8-b78612f8232e", + "mbid": "e4d7cfe5-0bed-46cf-acad-ab9a4dcb7aa6", + "name": "Anamanaguchi", + "creation_date": "2018-12-13T00:37:22.485290Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Anamanaguchi is a digital band from New York and Los Angeles.\n\nhttps://anamanaguchi.com\n\nhttps://anamanaguchi.bandcamp.com/", + "content_type": "text/markdown", + "html": "<p>Anamanaguchi is a digital band from New York and Los Angeles.</p><p><a href=\"https://anamanaguchi.com\">https://anamanaguchi.com</a></p><p><a href=\"https://anamanaguchi.bandcamp.com/\">https://anamanaguchi.bandcamp.com/</a></p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 8484, + "fid": "https://tanukitunes.com/federation/music/albums/fb40be43-185e-4708-8536-bc7991b8b019", + "mbid": "93b38be4-4d51-4119-826d-31ee9cdbbe9e", + "title": "Miku", + "artist": { + "id": 26, + "fid": "https://tanukitunes.com/federation/music/artists/73458f3c-61b2-43c6-91e8-b78612f8232e", + "mbid": "e4d7cfe5-0bed-46cf-acad-ab9a4dcb7aa6", + "name": "Anamanaguchi", + "creation_date": "2018-12-13T00:37:22.485290Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Anamanaguchi is a digital band from New York and Los Angeles.\n\nhttps://anamanaguchi.com\n\nhttps://anamanaguchi.bandcamp.com/", + "content_type": "text/markdown", + "html": "<p>Anamanaguchi is a digital band from New York and Los Angeles.</p><p><a href=\"https://anamanaguchi.com\">https://anamanaguchi.com</a></p><p><a href=\"https://anamanaguchi.bandcamp.com/\">https://anamanaguchi.bandcamp.com/</a></p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-05-24", + "cover": { + "uuid": "497f1850-ba92-4731-a43f-bc876886d92e", + "size": 548106, + "mimetype": "image/jpeg", + "creation_date": "2020-07-28T00:55:02.176976Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/20/a0/a6/attachment_cover-fb40be43-185e-4708-8536-bc7991b8b019.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2a537f066208ef608dff9e4c1f4b9a3b663dfbe77a815ceaf7ae0fadfb148ab2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/20/a0/a6/attachment_cover-fb40be43-185e-4708-8536-bc7991b8b019-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8882284e7ac248b25887d29e6fef19426417f2a895835ac479e1a6d9ac996613", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/20/a0/a6/attachment_cover-fb40be43-185e-4708-8536-bc7991b8b019-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=32c5c95676764f4958879006182000a3a5c7cd35f7617a6327c01ed8b633431b" + } + }, + "creation_date": "2020-07-28T00:55:02.167971Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [ + { + "uuid": "a3da44ae-8516-4879-a5e4-5891184b1adf", + "listen_url": "/api/v1/listen/113dffe1-084e-47c0-a03d-59628254a58a/?upload=a3da44ae-8516-4879-a5e4-5891184b1adf", + "size": 5349116, + "duration": 223, + "bitrate": 0, + "mimetype": "audio/opus", + "extension": "opus", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/113dffe1-084e-47c0-a03d-59628254a58a/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 74926, + "fid": "https://tanukitunes.com/federation/music/tracks/113dffe1-084e-47c0-a03d-59628254a58a", + "mbid": "3378f8ee-878a-4863-a987-da04437f05a9", + "title": "Miku", + "creation_date": "2020-07-28T00:55:02.639744Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-04T15:06:13.655650Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1869, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4002e16aa5f7f572c5f344cde669ed06aaf386421978757ae6b5a09698db41", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7a955d50d17f845225a947466b53e78efee6010bbfce1de2db7b7fb57657941", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ecd20efec0afd97698548993f2e56cf7c40494fee2f166b908f27eef2a5222bf" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 26, + "fid": "https://tanukitunes.com/federation/music/artists/73458f3c-61b2-43c6-91e8-b78612f8232e", + "mbid": "e4d7cfe5-0bed-46cf-acad-ab9a4dcb7aa6", + "name": "Anamanaguchi", + "creation_date": "2018-12-13T00:37:22.485290Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Anamanaguchi is a digital band from New York and Los Angeles.\n\nhttps://anamanaguchi.com\n\nhttps://anamanaguchi.bandcamp.com/", + "content_type": "text/markdown", + "html": "<p>Anamanaguchi is a digital band from New York and Los Angeles.</p><p><a href=\"https://anamanaguchi.com\">https://anamanaguchi.com</a></p><p><a href=\"https://anamanaguchi.bandcamp.com/\">https://anamanaguchi.bandcamp.com/</a></p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 8483, + "fid": "https://tanukitunes.com/federation/music/albums/5be2b7c9-4474-4204-8fdf-f4eea9490df2", + "mbid": "cfc26164-9b4e-4adf-a9fb-79abe27b6855", + "title": "Airbrushed", + "artist": { + "id": 26, + "fid": "https://tanukitunes.com/federation/music/artists/73458f3c-61b2-43c6-91e8-b78612f8232e", + "mbid": "e4d7cfe5-0bed-46cf-acad-ab9a4dcb7aa6", + "name": "Anamanaguchi", + "creation_date": "2018-12-13T00:37:22.485290Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Anamanaguchi is a digital band from New York and Los Angeles.\n\nhttps://anamanaguchi.com\n\nhttps://anamanaguchi.bandcamp.com/", + "content_type": "text/markdown", + "html": "<p>Anamanaguchi is a digital band from New York and Los Angeles.</p><p><a href=\"https://anamanaguchi.com\">https://anamanaguchi.com</a></p><p><a href=\"https://anamanaguchi.bandcamp.com/\">https://anamanaguchi.bandcamp.com/</a></p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2011-01-01", + "cover": { + "uuid": "8bc2d835-d66e-4164-bfbc-4166e76b88a4", + "size": 312559, + "mimetype": "image/jpeg", + "creation_date": "2020-07-28T00:49:45.575433Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/fb/a3/6c/attachment_cover-5be2b7c9-4474-4204-8fdf-f4eea9490df2.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f02edfd2318430ec7f870d937343c70a12f50f8a8042343df6f95f771404826c", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/fb/a3/6c/attachment_cover-5be2b7c9-4474-4204-8fdf-f4eea9490df2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8c8dd1522d7e2ad132013fb6846057e28bfab3bd5fe312c8975c717fac2b23d2", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/fb/a3/6c/attachment_cover-5be2b7c9-4474-4204-8fdf-f4eea9490df2-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0e23c36e8b1719417bf9809c5ec75c3dfeca8fa9c2fc8ef386811af01ac4d157" + } + }, + "creation_date": "2020-07-28T00:49:45.490531Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [ + { + "uuid": "82e0b595-0590-4a36-946b-73402013fed4", + "listen_url": "/api/v1/listen/c103cdf4-eb57-419c-825e-50cfe8679a0d/?upload=82e0b595-0590-4a36-946b-73402013fed4", + "size": 5064972, + "duration": 240, + "bitrate": 0, + "mimetype": "audio/opus", + "extension": "opus", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/c103cdf4-eb57-419c-825e-50cfe8679a0d/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 74925, + "fid": "https://tanukitunes.com/federation/music/tracks/c103cdf4-eb57-419c-825e-50cfe8679a0d", + "mbid": "83c67a70-8b43-49c5-805a-fb4a12e73ba6", + "title": "Airbrushed", + "creation_date": "2020-07-28T00:49:45.748857Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-04T15:05:56.417306Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1868, + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fb4002e16aa5f7f572c5f344cde669ed06aaf386421978757ae6b5a09698db41", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7a955d50d17f845225a947466b53e78efee6010bbfce1de2db7b7fb57657941", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ecd20efec0afd97698548993f2e56cf7c40494fee2f166b908f27eef2a5222bf" + } + } + }, + "track": { + "cover": null, + "artist": { + "id": 8706, + "fid": "https://tanukitunes.com/federation/music/artists/6d097054-a799-48f2-abb3-711c022d681a", + "mbid": "395cc503-63b5-4a0b-a20a-604e3fcacea2", + "name": "Men at Work", + "creation_date": "2020-06-20T19:59:58.271533Z", + "modification_date": "2020-06-20T19:59:58.271599Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 7843, + "fid": "https://tanukitunes.com/federation/music/albums/3a27e7bc-1568-4f13-ab66-41a647460be5", + "mbid": "f43f6018-82e1-3b7a-b5ac-5594d40a0a63", + "title": "Business as Usual", + "artist": { + "id": 8706, + "fid": "https://tanukitunes.com/federation/music/artists/6d097054-a799-48f2-abb3-711c022d681a", + "mbid": "395cc503-63b5-4a0b-a20a-604e3fcacea2", + "name": "Men at Work", + "creation_date": "2020-06-20T19:59:58.271533Z", + "modification_date": "2020-06-20T19:59:58.271599Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2003-02-11", + "cover": { + "uuid": "010d48d6-97ef-4b5a-87e8-5a2556f6f6b6", + "size": 65536, + "mimetype": "image/jpeg", + "creation_date": "2020-06-20T20:01:36.907761Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7b/da/32/attachment_cover-3a27e7bc-1568-4f13-ab66-41a647460be5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=51d58552a05aecf75b59be04ddef1179dad2c1cea28a89f0b0dfd20c824ce6d4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7b/da/32/attachment_cover-3a27e7bc-1568-4f13-ab66-41a647460be5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=34d891cb569d7316cd09c5837068186ea01c7ad771c4fd859721232a66e82ae3", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7b/da/32/attachment_cover-3a27e7bc-1568-4f13-ab66-41a647460be5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=903e9d8500a9fb7f696ab3a987494ab74205a93670bc0ee70c0637c1908dd2a5" + } + }, + "creation_date": "2020-06-20T20:01:36.903994Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [ + { + "uuid": "f4e47933-2760-4b69-9586-b9091c2e662f", + "listen_url": "/api/v1/listen/e77915ad-5e3f-4fc5-a27d-a70ed2a0a445/?upload=f4e47933-2760-4b69-9586-b9091c2e662f", + "size": 4751593, + "duration": 212, + "bitrate": 0, + "mimetype": "audio/opus", + "extension": "opus", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/e77915ad-5e3f-4fc5-a27d-a70ed2a0a445/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 67728, + "fid": "https://tanukitunes.com/federation/music/tracks/e77915ad-5e3f-4fc5-a27d-a70ed2a0a445", + "mbid": "78013cf3-5498-4757-8f86-d7dacde23eb4", + "title": "People Just Love to Play With Words", + "creation_date": "2020-06-20T20:01:52.589663Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 10, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-04T14:03:58.060135Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1867, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 85, + "fid": "https://tanukitunes.com/federation/music/artists/89c67bf0-2121-403e-a422-0965e7cf74eb", + "mbid": "65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab", + "name": "Metallica", + "creation_date": "2018-12-16T20:35:19.007722Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12729, + "fid": "https://tanukitunes.com/federation/music/albums/be76a6ec-921e-4ca2-a610-bda6c07cc9f5", + "mbid": null, + "title": "Metallica (Remastered 2021)", + "artist": { + "id": 85, + "fid": "https://tanukitunes.com/federation/music/artists/89c67bf0-2121-403e-a422-0965e7cf74eb", + "mbid": "65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab", + "name": "Metallica", + "creation_date": "2018-12-16T20:35:19.007722Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2021-01-01", + "cover": { + "uuid": "602ee821-ee38-4e25-84bb-105e51303697", + "size": 13613, + "mimetype": "image/jpeg", + "creation_date": "2022-07-04T13:14:23.227211Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=72169b0bf7548663863a38b066cf38218a3ff9e8e13fcc9c70ec6f8029bde18b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d9c8aa2fd32b76bc7c68a487b407984c47cafd7c46f3b6a24351e151d013e9a7", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6a2eca1dc590545ebb05c679228d4ab34d7538ff06c6e6f7b68b9b8136555162" + } + }, + "creation_date": "2022-07-04T13:14:23.217914Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/7f36e276-8c64-4b4c-b83f-998e73392b79/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/Zarlak", + "url": null, + "creation_date": "2022-06-23T19:34:32.122078Z", + "summary": null, + "preferred_username": "Zarlak", + "name": "Zarlak", + "last_fetch_date": "2022-06-23T19:34:32.122096Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Zarlak@tanukitunes.com", + "is_local": true + }, + "id": 102275, + "fid": "https://tanukitunes.com/federation/music/tracks/7f36e276-8c64-4b4c-b83f-998e73392b79", + "mbid": null, + "title": "Nothing Else Matters - Remastered 2021", + "creation_date": "2022-07-04T13:14:29.103849Z", + "is_local": true, + "position": 8, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:49:43.328952Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1866, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 85, + "fid": "https://tanukitunes.com/federation/music/artists/89c67bf0-2121-403e-a422-0965e7cf74eb", + "mbid": "65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab", + "name": "Metallica", + "creation_date": "2018-12-16T20:35:19.007722Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12729, + "fid": "https://tanukitunes.com/federation/music/albums/be76a6ec-921e-4ca2-a610-bda6c07cc9f5", + "mbid": null, + "title": "Metallica (Remastered 2021)", + "artist": { + "id": 85, + "fid": "https://tanukitunes.com/federation/music/artists/89c67bf0-2121-403e-a422-0965e7cf74eb", + "mbid": "65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab", + "name": "Metallica", + "creation_date": "2018-12-16T20:35:19.007722Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2021-01-01", + "cover": { + "uuid": "602ee821-ee38-4e25-84bb-105e51303697", + "size": 13613, + "mimetype": "image/jpeg", + "creation_date": "2022-07-04T13:14:23.227211Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=72169b0bf7548663863a38b066cf38218a3ff9e8e13fcc9c70ec6f8029bde18b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d9c8aa2fd32b76bc7c68a487b407984c47cafd7c46f3b6a24351e151d013e9a7", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6a2eca1dc590545ebb05c679228d4ab34d7538ff06c6e6f7b68b9b8136555162" + } + }, + "creation_date": "2022-07-04T13:14:23.217914Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/52d019e8-18ce-4a9d-b443-fe33bdc12134/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/Zarlak", + "url": null, + "creation_date": "2022-06-23T19:34:32.122078Z", + "summary": null, + "preferred_username": "Zarlak", + "name": "Zarlak", + "last_fetch_date": "2022-06-23T19:34:32.122096Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Zarlak@tanukitunes.com", + "is_local": true + }, + "id": 102283, + "fid": "https://tanukitunes.com/federation/music/tracks/52d019e8-18ce-4a9d-b443-fe33bdc12134", + "mbid": null, + "title": "The Unforgiven - Remastered 2021", + "creation_date": "2022-07-04T13:14:45.763190Z", + "is_local": true, + "position": 4, + "disc_number": null, + "downloads_count": 2, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:49:41.121954Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1865, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 85, + "fid": "https://tanukitunes.com/federation/music/artists/89c67bf0-2121-403e-a422-0965e7cf74eb", + "mbid": "65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab", + "name": "Metallica", + "creation_date": "2018-12-16T20:35:19.007722Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12729, + "fid": "https://tanukitunes.com/federation/music/albums/be76a6ec-921e-4ca2-a610-bda6c07cc9f5", + "mbid": null, + "title": "Metallica (Remastered 2021)", + "artist": { + "id": 85, + "fid": "https://tanukitunes.com/federation/music/artists/89c67bf0-2121-403e-a422-0965e7cf74eb", + "mbid": "65f4f0c5-ef9e-490c-aee3-909e7ae6b2ab", + "name": "Metallica", + "creation_date": "2018-12-16T20:35:19.007722Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2021-01-01", + "cover": { + "uuid": "602ee821-ee38-4e25-84bb-105e51303697", + "size": 13613, + "mimetype": "image/jpeg", + "creation_date": "2022-07-04T13:14:23.227211Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=72169b0bf7548663863a38b066cf38218a3ff9e8e13fcc9c70ec6f8029bde18b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d9c8aa2fd32b76bc7c68a487b407984c47cafd7c46f3b6a24351e151d013e9a7", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/84/13/a4/attachment_cover-be76a6ec-921e-4ca2-a610-bda6c07cc9f5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6a2eca1dc590545ebb05c679228d4ab34d7538ff06c6e6f7b68b9b8136555162" + } + }, + "creation_date": "2022-07-04T13:14:23.217914Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/927ad740-324b-4618-9516-d5cb3e513748/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/Zarlak", + "url": null, + "creation_date": "2022-06-23T19:34:32.122078Z", + "summary": null, + "preferred_username": "Zarlak", + "name": "Zarlak", + "last_fetch_date": "2022-06-23T19:34:32.122096Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Zarlak@tanukitunes.com", + "is_local": true + }, + "id": 102280, + "fid": "https://tanukitunes.com/federation/music/tracks/927ad740-324b-4618-9516-d5cb3e513748", + "mbid": null, + "title": "Enter Sandman - Remastered 2021", + "creation_date": "2022-07-04T13:14:39.513676Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:49:39.106992Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1864, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 96, + "fid": "https://tanukitunes.com/federation/music/artists/06bfac44-33d6-42c4-b0c0-ce00f0f3a12c", + "mbid": "4f29ecd7-21a5-4c03-b9ba-d0cfe9488f8c", + "name": "Wyclef Jean feat. Pras Michel, Free, Queen", + "creation_date": "2018-12-16T21:16:31.732128Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 248, + "fid": "https://tanukitunes.com/federation/music/albums/0fa87cb8-b2e4-47c0-a7bf-2bbfa42857a6", + "mbid": "ca366625-6341-49fc-8bfa-ceb93281ee3f", + "title": "Greatest Hits III", + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1999-11-09", + "cover": { + "uuid": "f5d647e0-3ce7-4488-a357-cd16037b3f0f", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.497461Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=273f5ea398c9345ff387a3b453be2f2e7a3b06b66d15569c4e294d42db1cedfb", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0044f0a0d6a62ab019ae4917e300aed3d95247a8df85080b8d44cc0133fe61b4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0c1ffce36ba0fd51a12bc2bcef0f76d87ce5469dc25df5374fdec95839d8ee2c" + } + }, + "creation_date": "2018-12-16T21:15:29.121543Z", + "is_local": true, + "tracks_count": 17 + }, + "uploads": [ + { + "uuid": "4ab5194f-3d9a-45cd-8d3a-4e788ccff947", + "listen_url": "/api/v1/listen/064c7537-d23c-4b64-afad-5a9ae38e8132/?upload=4ab5194f-3d9a-45cd-8d3a-4e788ccff947", + "size": 5135342, + "duration": 260, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/064c7537-d23c-4b64-afad-5a9ae38e8132/", + "tags": [], + "attributed_to": null, + "id": 3088, + "fid": "https://tanukitunes.com/federation/music/tracks/064c7537-d23c-4b64-afad-5a9ae38e8132", + "mbid": "e07d72b9-417c-4b98-8fb6-8446d5817162", + "title": "Another One Bites the Dust", + "creation_date": "2018-12-16T21:16:31.738690Z", + "is_local": true, + "position": 14, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:49:26.055054Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1863, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 248, + "fid": "https://tanukitunes.com/federation/music/albums/0fa87cb8-b2e4-47c0-a7bf-2bbfa42857a6", + "mbid": "ca366625-6341-49fc-8bfa-ceb93281ee3f", + "title": "Greatest Hits III", + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1999-11-09", + "cover": { + "uuid": "f5d647e0-3ce7-4488-a357-cd16037b3f0f", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.497461Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=273f5ea398c9345ff387a3b453be2f2e7a3b06b66d15569c4e294d42db1cedfb", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0044f0a0d6a62ab019ae4917e300aed3d95247a8df85080b8d44cc0133fe61b4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0c1ffce36ba0fd51a12bc2bcef0f76d87ce5469dc25df5374fdec95839d8ee2c" + } + }, + "creation_date": "2018-12-16T21:15:29.121543Z", + "is_local": true, + "tracks_count": 17 + }, + "uploads": [ + { + "uuid": "e9856b86-a017-40a9-91f0-d400816818ac", + "listen_url": "/api/v1/listen/35647c1f-2999-48b1-8a17-7a5863b4df0b/?upload=e9856b86-a017-40a9-91f0-d400816818ac", + "size": 4723518, + "duration": 211, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/35647c1f-2999-48b1-8a17-7a5863b4df0b/", + "tags": [], + "attributed_to": null, + "id": 3087, + "fid": "https://tanukitunes.com/federation/music/tracks/35647c1f-2999-48b1-8a17-7a5863b4df0b", + "mbid": "8da2b888-3dc9-4652-b69b-aa09978988df", + "title": "Princes of the Universe", + "creation_date": "2018-12-16T21:16:28.031240Z", + "is_local": true, + "position": 13, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:49:25.050486Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1862, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 248, + "fid": "https://tanukitunes.com/federation/music/albums/0fa87cb8-b2e4-47c0-a7bf-2bbfa42857a6", + "mbid": "ca366625-6341-49fc-8bfa-ceb93281ee3f", + "title": "Greatest Hits III", + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1999-11-09", + "cover": { + "uuid": "f5d647e0-3ce7-4488-a357-cd16037b3f0f", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.497461Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=273f5ea398c9345ff387a3b453be2f2e7a3b06b66d15569c4e294d42db1cedfb", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0044f0a0d6a62ab019ae4917e300aed3d95247a8df85080b8d44cc0133fe61b4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/16/bca366625-6341-49fc-8bfa-ceb93281ee3f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0c1ffce36ba0fd51a12bc2bcef0f76d87ce5469dc25df5374fdec95839d8ee2c" + } + }, + "creation_date": "2018-12-16T21:15:29.121543Z", + "is_local": true, + "tracks_count": 17 + }, + "uploads": [ + { + "uuid": "8661f237-04e3-4e57-bf86-83638e92e8d7", + "listen_url": "/api/v1/listen/9676b6ef-ecae-494e-a54b-01ade3713b12/?upload=8661f237-04e3-4e57-bf86-83638e92e8d7", + "size": 6238769, + "duration": 269, + "bitrate": 192000, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/9676b6ef-ecae-494e-a54b-01ade3713b12/", + "tags": [], + "attributed_to": null, + "id": 3082, + "fid": "https://tanukitunes.com/federation/music/tracks/9676b6ef-ecae-494e-a54b-01ade3713b12", + "mbid": "450e2a51-7bef-4048-9e72-0b938a8ecb68", + "title": "Las Palabras de Amor (The Words of Love)", + "creation_date": "2018-12-16T21:16:05.192756Z", + "is_local": true, + "position": 8, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:49:21.937514Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1861, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11308, + "fid": "https://tanukitunes.com/federation/music/albums/4b30d754-a3a2-4883-87a8-830a5c6b72c1", + "mbid": "9ea74da6-8547-4171-9678-ab0e1267b6ec", + "title": "The Platinum Collection", + "artist": { + "id": 92, + "fid": "https://tanukitunes.com/federation/music/artists/05537856-20d4-4e8c-a0fa-878c7d8c33a6", + "mbid": "0383dadf-2a4e-4d10-a46a-e9e041da8eb3", + "name": "Queen", + "creation_date": "2018-12-16T21:12:19.209925Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2000-11-13", + "cover": { + "uuid": "f911ab08-c2d4-4e5b-bc24-bba6c01879c4", + "size": 59495, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T04:21:01.900734Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/c7/7d/0d/attachment_cover-4b30d754-a3a2-4883-87a8-830a5c6b72c1.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dfad8a181d2fe0abf1346bdb85103036240559d47bc94b54d4b854025d300988", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c7/7d/0d/attachment_cover-4b30d754-a3a2-4883-87a8-830a5c6b72c1-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=42d3037e6481e60a496b172e80afd7bee1c7f31c247601fcf0f3d02041b078ed", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c7/7d/0d/attachment_cover-4b30d754-a3a2-4883-87a8-830a5c6b72c1-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=3df0a04024864e27612531e3d2684eed31b9f7cdfe72250bb61c29f186c96ff1" + } + }, + "creation_date": "2022-02-01T04:21:01.898360Z", + "is_local": true, + "tracks_count": 2 + }, + "uploads": [], + "listen_url": "/api/v1/listen/374c6711-66dd-4958-8dec-1de8fc5c9bb5/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95474, + "fid": "https://tanukitunes.com/federation/music/tracks/374c6711-66dd-4958-8dec-1de8fc5c9bb5", + "mbid": "32c7e292-14f1-4080-bddf-ef852e0a4c59", + "title": "Under Pressure", + "creation_date": "2022-02-01T04:25:33.633061Z", + "is_local": true, + "position": 2, + "disc_number": 2, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:48:52.215081Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1860, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5530, + "fid": "https://tanukitunes.com/federation/music/albums/b61fd7b0-5de4-4947-88ee-2cd80627e226", + "mbid": "6fc150cc-7503-4b8c-8c26-9190387f8803", + "title": "Endless Forms Most Beautiful", + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2015-03-27", + "cover": { + "uuid": "6e0abe97-a212-49f0-bfb0-0f295a4b39e8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.488097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=908d36dac4e8d648c7afed80746d9e9cdebcd292c38d17f9153874ea997aa101", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08a02761edfd13a64637dd688e17bc5be83b96bdfc47db44a2f13540537575e8", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bba91399dfbcef516fb4daa1c76d2adc6b40c641e43d4916b0975e969f9f584" + } + }, + "creation_date": "2019-04-07T11:17:44.552687Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "8e1922f5-9a99-4917-a13e-00a580cdc465", + "listen_url": "/api/v1/listen/23462d74-d17e-495f-a8b2-7ab413dd1fef/?upload=8e1922f5-9a99-4917-a13e-00a580cdc465", + "size": 5947997, + "duration": 290, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/23462d74-d17e-495f-a8b2-7ab413dd1fef/", + "tags": [], + "attributed_to": null, + "id": 42783, + "fid": "https://tanukitunes.com/federation/music/tracks/23462d74-d17e-495f-a8b2-7ab413dd1fef", + "mbid": "5a3802a9-2831-438a-b49f-cc5f99fd8684", + "title": "Alpenglow", + "creation_date": "2019-04-07T11:18:23.909907Z", + "is_local": true, + "position": 3, + "disc_number": 2, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:48:35.484663Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1859, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5530, + "fid": "https://tanukitunes.com/federation/music/albums/b61fd7b0-5de4-4947-88ee-2cd80627e226", + "mbid": "6fc150cc-7503-4b8c-8c26-9190387f8803", + "title": "Endless Forms Most Beautiful", + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2015-03-27", + "cover": { + "uuid": "6e0abe97-a212-49f0-bfb0-0f295a4b39e8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.488097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=908d36dac4e8d648c7afed80746d9e9cdebcd292c38d17f9153874ea997aa101", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08a02761edfd13a64637dd688e17bc5be83b96bdfc47db44a2f13540537575e8", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bba91399dfbcef516fb4daa1c76d2adc6b40c641e43d4916b0975e969f9f584" + } + }, + "creation_date": "2019-04-07T11:17:44.552687Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "4a2f3041-1df5-46bb-95ed-5cced9e08c02", + "listen_url": "/api/v1/listen/7b68e14f-a5b5-40ce-ba14-143443f4fd8d/?upload=4a2f3041-1df5-46bb-95ed-5cced9e08c02", + "size": 6260605, + "duration": 312, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/7b68e14f-a5b5-40ce-ba14-143443f4fd8d/", + "tags": [], + "attributed_to": null, + "id": 42781, + "fid": "https://tanukitunes.com/federation/music/tracks/7b68e14f-a5b5-40ce-ba14-143443f4fd8d", + "mbid": "b0d99220-3cd3-4706-ac5b-6bf8745afa1f", + "title": "Endless Forms Most Beautiful", + "creation_date": "2019-04-07T11:18:14.527800Z", + "is_local": true, + "position": 1, + "disc_number": 2, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:48:34.044024Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1858, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5530, + "fid": "https://tanukitunes.com/federation/music/albums/b61fd7b0-5de4-4947-88ee-2cd80627e226", + "mbid": "6fc150cc-7503-4b8c-8c26-9190387f8803", + "title": "Endless Forms Most Beautiful", + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2015-03-27", + "cover": { + "uuid": "6e0abe97-a212-49f0-bfb0-0f295a4b39e8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.488097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=908d36dac4e8d648c7afed80746d9e9cdebcd292c38d17f9153874ea997aa101", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08a02761edfd13a64637dd688e17bc5be83b96bdfc47db44a2f13540537575e8", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bba91399dfbcef516fb4daa1c76d2adc6b40c641e43d4916b0975e969f9f584" + } + }, + "creation_date": "2019-04-07T11:17:44.552687Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "426532d8-3ad3-478f-a52d-efa662cdee28", + "listen_url": "/api/v1/listen/9df1f0a9-7e35-440c-a0af-d60b66533a1e/?upload=426532d8-3ad3-478f-a52d-efa662cdee28", + "size": 5835182, + "duration": 280, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/9df1f0a9-7e35-440c-a0af-d60b66533a1e/", + "tags": [], + "attributed_to": null, + "id": 42780, + "fid": "https://tanukitunes.com/federation/music/tracks/9df1f0a9-7e35-440c-a0af-d60b66533a1e", + "mbid": "0bd7f3be-e8a7-4e21-95bb-8cf9b89cbc72", + "title": "My Walden", + "creation_date": "2019-04-07T11:18:09.756893Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:48:32.279081Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1857, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5530, + "fid": "https://tanukitunes.com/federation/music/albums/b61fd7b0-5de4-4947-88ee-2cd80627e226", + "mbid": "6fc150cc-7503-4b8c-8c26-9190387f8803", + "title": "Endless Forms Most Beautiful", + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2015-03-27", + "cover": { + "uuid": "6e0abe97-a212-49f0-bfb0-0f295a4b39e8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.488097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=908d36dac4e8d648c7afed80746d9e9cdebcd292c38d17f9153874ea997aa101", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08a02761edfd13a64637dd688e17bc5be83b96bdfc47db44a2f13540537575e8", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bba91399dfbcef516fb4daa1c76d2adc6b40c641e43d4916b0975e969f9f584" + } + }, + "creation_date": "2019-04-07T11:17:44.552687Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "b8f4e1bc-964a-4270-bdaa-d4182d505645", + "listen_url": "/api/v1/listen/13cdc171-78ef-4ac2-b77e-c0e2fd144536/?upload=b8f4e1bc-964a-4270-bdaa-d4182d505645", + "size": 6630460, + "duration": 327, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/13cdc171-78ef-4ac2-b77e-c0e2fd144536/", + "tags": [], + "attributed_to": null, + "id": 42776, + "fid": "https://tanukitunes.com/federation/music/tracks/13cdc171-78ef-4ac2-b77e-c0e2fd144536", + "mbid": "03b8bb89-c30a-4e62-aaad-195d4984ce20", + "title": "Weak Fantasy", + "creation_date": "2019-04-07T11:17:49.488169Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:48:30.294182Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1856, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5530, + "fid": "https://tanukitunes.com/federation/music/albums/b61fd7b0-5de4-4947-88ee-2cd80627e226", + "mbid": "6fc150cc-7503-4b8c-8c26-9190387f8803", + "title": "Endless Forms Most Beautiful", + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2015-03-27", + "cover": { + "uuid": "6e0abe97-a212-49f0-bfb0-0f295a4b39e8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.488097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=908d36dac4e8d648c7afed80746d9e9cdebcd292c38d17f9153874ea997aa101", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08a02761edfd13a64637dd688e17bc5be83b96bdfc47db44a2f13540537575e8", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bba91399dfbcef516fb4daa1c76d2adc6b40c641e43d4916b0975e969f9f584" + } + }, + "creation_date": "2019-04-07T11:17:44.552687Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "d7e8b11b-e2f8-4875-89f0-0e14a134c9af", + "listen_url": "/api/v1/listen/8a5cf428-f7c1-40eb-b315-11b0f4b23886/?upload=d7e8b11b-e2f8-4875-89f0-0e14a134c9af", + "size": 6124886, + "duration": 288, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/8a5cf428-f7c1-40eb-b315-11b0f4b23886/", + "tags": [], + "attributed_to": null, + "id": 42777, + "fid": "https://tanukitunes.com/federation/music/tracks/8a5cf428-f7c1-40eb-b315-11b0f4b23886", + "mbid": "ed049194-3c58-4c10-9526-35f3d149071f", + "title": "Élan", + "creation_date": "2019-04-07T11:17:54.054747Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:48:28.868872Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1855, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 5530, + "fid": "https://tanukitunes.com/federation/music/albums/b61fd7b0-5de4-4947-88ee-2cd80627e226", + "mbid": "6fc150cc-7503-4b8c-8c26-9190387f8803", + "title": "Endless Forms Most Beautiful", + "artist": { + "id": 6445, + "fid": "https://tanukitunes.com/federation/music/artists/458c5a07-c4ca-4218-9934-5d15725c5c65", + "mbid": "00a9f935-ba93-4fc8-a33a-993abe9c936b", + "name": "Nightwish", + "creation_date": "2019-04-07T11:08:10.779624Z", + "modification_date": "2020-03-19T15:05:32.179932Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2015-03-27", + "cover": { + "uuid": "6e0abe97-a212-49f0-bfb0-0f295a4b39e8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2019-11-27T17:08:47.488097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=908d36dac4e8d648c7afed80746d9e9cdebcd292c38d17f9153874ea997aa101", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08a02761edfd13a64637dd688e17bc5be83b96bdfc47db44a2f13540537575e8", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/04/07/b6fc150cc-7503-4b8c-8c26-9190387f8803-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bba91399dfbcef516fb4daa1c76d2adc6b40c641e43d4916b0975e969f9f584" + } + }, + "creation_date": "2019-04-07T11:17:44.552687Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [ + { + "uuid": "7d82bd1b-5a88-4f7f-af9e-b76ab885ed7f", + "listen_url": "/api/v1/listen/5dcb2521-e2cd-43b0-b9ec-4118191e8ae4/?upload=7d82bd1b-5a88-4f7f-af9e-b76ab885ed7f", + "size": 7890767, + "duration": 396, + "bitrate": 0, + "mimetype": "audio/ogg", + "extension": "ogg", + "is_local": true + } + ], + "listen_url": "/api/v1/listen/5dcb2521-e2cd-43b0-b9ec-4118191e8ae4/", + "tags": [], + "attributed_to": null, + "id": 42775, + "fid": "https://tanukitunes.com/federation/music/tracks/5dcb2521-e2cd-43b0-b9ec-4118191e8ae4", + "mbid": "2296799e-3f78-45ce-91bf-dba8af9404fc", + "title": "Shudder Before the Beautiful", + "creation_date": "2019-04-07T11:17:44.557226Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + "creation_date": "2022-08-03T22:48:27.825979Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1854, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 7104, + "fid": "https://audio.konsumsyndik.at/federation/music/artists/5d31469a-e74a-4423-bb32-9b115b6c35bd", + "mbid": "76c9a186-75bd-436a-85c0-823e3efddb7f", + "name": "Janis Joplin", + "creation_date": "2020-03-25T21:24:07.693912Z", + "modification_date": "2020-03-26T17:42:13.808806Z", + "is_local": false, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11042, + "fid": "https://tanukitunes.com/federation/music/albums/6934c7ef-6642-4da1-8464-0930a3be7bba", + "mbid": "53c3ba9a-483d-4f0d-923b-a4d90940d513", + "title": "Anthology", + "artist": { + "id": 7104, + "fid": "https://audio.konsumsyndik.at/federation/music/artists/5d31469a-e74a-4423-bb32-9b115b6c35bd", + "mbid": "76c9a186-75bd-436a-85c0-823e3efddb7f", + "name": "Janis Joplin", + "creation_date": "2020-03-25T21:24:07.693912Z", + "modification_date": "2020-03-26T17:42:13.808806Z", + "is_local": false, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1980-01-01", + "cover": { + "uuid": "67395415-2046-4234-80e8-9472a37ee1c4", + "size": 57719, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T02:42:55.999968Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/02/39/96/attachment_cover-6934c7ef-6642-4da1-8464-0930a3be7bba.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a6876492856c31df28688c650a2def65f8dfa89353f757a2da2c284482d6e0cf", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/02/39/96/attachment_cover-6934c7ef-6642-4da1-8464-0930a3be7bba-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=266ac16619a92a343f77cf46e105b192ad4fecd005564f4be342dc9938bdfb53", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/02/39/96/attachment_cover-6934c7ef-6642-4da1-8464-0930a3be7bba-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=be4eea3359bdab3b215b250d7856edbaefd18635b1356316319b14e80a8e40ea" + } + }, + "creation_date": "2022-02-01T02:42:55.997455Z", + "is_local": true, + "tracks_count": 3 + }, + "uploads": [], + "listen_url": "/api/v1/listen/33888b58-5919-4e79-8b3a-b0ca9a4b9ac0/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95345, + "fid": "https://tanukitunes.com/federation/music/tracks/33888b58-5919-4e79-8b3a-b0ca9a4b9ac0", + "mbid": "b7450002-ca11-4854-883d-0282acaa2bc3", + "title": "Mercedes Benz", + "creation_date": "2022-02-01T04:00:06.716511Z", + "is_local": true, + "position": 5, + "disc_number": 2, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:48:11.599555Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1853, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9638, + "fid": "https://tanukitunes.com/federation/music/artists/4d3ac9c8-5715-4619-9881-d636b14ca824", + "mbid": "8aa5b65a-5b3c-4029-92bf-47a544356934", + "name": "Ozzy Osbourne", + "creation_date": "2020-10-10T08:33:33.318735Z", + "modification_date": "2020-10-10T08:33:33.318800Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11299, + "fid": "https://tanukitunes.com/federation/music/albums/498da5a1-be3a-492b-82cf-98629a4895b0", + "mbid": "490ee453-a452-4f05-b2b6-cd38c96d60de", + "title": "Knuffelrock 16", + "artist": { + "id": 9638, + "fid": "https://tanukitunes.com/federation/music/artists/4d3ac9c8-5715-4619-9881-d636b14ca824", + "mbid": "8aa5b65a-5b3c-4029-92bf-47a544356934", + "name": "Ozzy Osbourne", + "creation_date": "2020-10-10T08:33:33.318735Z", + "modification_date": "2020-10-10T08:33:33.318800Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2007-11-23", + "cover": null, + "creation_date": "2022-02-01T04:17:20.783738Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [], + "listen_url": "/api/v1/listen/80c248d1-c773-4099-a619-8a72a4ccda7e/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95433, + "fid": "https://tanukitunes.com/federation/music/tracks/80c248d1-c773-4099-a619-8a72a4ccda7e", + "mbid": "3e387227-8bf9-49ce-abe6-01e95ba02987", + "title": "Dreamer", + "creation_date": "2022-02-01T04:17:20.789510Z", + "is_local": true, + "position": 8, + "disc_number": 2, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:50.203641Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1852, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9638, + "fid": "https://tanukitunes.com/federation/music/artists/4d3ac9c8-5715-4619-9881-d636b14ca824", + "mbid": "8aa5b65a-5b3c-4029-92bf-47a544356934", + "name": "Ozzy Osbourne", + "creation_date": "2020-10-10T08:33:33.318735Z", + "modification_date": "2020-10-10T08:33:33.318800Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 8906, + "fid": "https://tanukitunes.com/federation/music/albums/c676949c-10ce-4036-9c5d-cba66c11042b", + "mbid": "ff482a9c-2c58-423b-9b9d-178d3b58db04", + "title": "Memoirs of a Madman", + "artist": { + "id": 9638, + "fid": "https://tanukitunes.com/federation/music/artists/4d3ac9c8-5715-4619-9881-d636b14ca824", + "mbid": "8aa5b65a-5b3c-4029-92bf-47a544356934", + "name": "Ozzy Osbourne", + "creation_date": "2020-10-10T08:33:33.318735Z", + "modification_date": "2020-10-10T08:33:33.318800Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2014-01-01", + "cover": { + "uuid": "fc1c9bd0-acb2-442a-9054-c18139ffb659", + "size": 97376, + "mimetype": "image/jpeg", + "creation_date": "2020-11-02T14:21:54.555280Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/29/ea/5e/attachment_cover-c676949c-10ce-4036-9c5d-cba66c11042b.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a78fa6a0572f255abf5aa19832d0f59dd706e25e694063d8b4b96c62aaac3599", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/29/ea/5e/attachment_cover-c676949c-10ce-4036-9c5d-cba66c11042b-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0efe66e11fd9df89725fc54a081d82462aa833858c747ee66b0ddfb234e273a", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/29/ea/5e/attachment_cover-c676949c-10ce-4036-9c5d-cba66c11042b-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79c1b6e7dc21d7547e1c056b33895051b2d4f60731673a742bf20e4c2c6397fd" + } + }, + "creation_date": "2020-11-02T14:21:54.550847Z", + "is_local": true, + "tracks_count": 4 + }, + "uploads": [], + "listen_url": "/api/v1/listen/492a80e7-e57a-490d-8fc0-83bba08b095a/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95434, + "fid": "https://tanukitunes.com/federation/music/tracks/492a80e7-e57a-490d-8fc0-83bba08b095a", + "mbid": "a3e376a2-21bd-4f42-b9a6-77ea1b010bcb", + "title": "I Just Want You", + "creation_date": "2022-02-01T04:17:30.684564Z", + "is_local": true, + "position": 12, + "disc_number": 1, + "downloads_count": 8, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:47.867549Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1851, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9644, + "fid": "https://tanukitunes.com/federation/music/artists/fb2e61ac-7a05-4636-b569-2c5cfe2186a5", + "mbid": "c3cceeed-3332-4cf0-8c4c-bbde425147b6", + "name": "Scorpions", + "creation_date": "2020-10-10T08:34:35.850627Z", + "modification_date": "2020-10-10T08:34:35.850691Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11401, + "fid": "https://tanukitunes.com/federation/music/albums/96884bff-c4df-48b6-9939-639b666a8218", + "mbid": "df2ab26a-db91-40c0-b751-97b5e6233ace", + "title": "Best: Rhythm of Love", + "artist": { + "id": 9644, + "fid": "https://tanukitunes.com/federation/music/artists/fb2e61ac-7a05-4636-b569-2c5cfe2186a5", + "mbid": "c3cceeed-3332-4cf0-8c4c-bbde425147b6", + "name": "Scorpions", + "creation_date": "2020-10-10T08:34:35.850627Z", + "modification_date": "2020-10-10T08:34:35.850691Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1991-01-01", + "cover": { + "uuid": "b2e87755-92ec-49e8-b98e-75d08412ecbe", + "size": 77850, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T04:51:09.705408Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/43/de/6e/attachment_cover-96884bff-c4df-48b6-9939-639b666a8218.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9df2696e2d5779c83178017a90f443bc1ec802c170eec7ffd4d9c30e116e005f", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/43/de/6e/attachment_cover-96884bff-c4df-48b6-9939-639b666a8218-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=00efe8d4b236777dafb8d9ade9d6017210777dfd6b58933b364767849d4a89d0", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/43/de/6e/attachment_cover-96884bff-c4df-48b6-9939-639b666a8218-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5c58407f8ff089919240eec991c4c2e743ca194d3fc1620b19ab9729f6145fd4" + } + }, + "creation_date": "2022-02-01T04:51:09.703261Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [], + "listen_url": "/api/v1/listen/55dc2f93-bd50-4721-8158-7bb2682e5d22/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95604, + "fid": "https://tanukitunes.com/federation/music/tracks/55dc2f93-bd50-4721-8158-7bb2682e5d22", + "mbid": "feb9904f-7e60-4d52-9731-d6e3567a0e27", + "title": "Still Loving You", + "creation_date": "2022-02-01T04:51:10.009728Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:40.207964Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1850, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9644, + "fid": "https://tanukitunes.com/federation/music/artists/fb2e61ac-7a05-4636-b569-2c5cfe2186a5", + "mbid": "c3cceeed-3332-4cf0-8c4c-bbde425147b6", + "name": "Scorpions", + "creation_date": "2020-10-10T08:34:35.850627Z", + "modification_date": "2020-10-10T08:34:35.850691Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11548, + "fid": "https://tanukitunes.com/federation/music/albums/53217ba3-718a-45cd-bcc2-6651dca0daba", + "mbid": "9e6dadbb-a86c-47ae-86cb-4073fe0c11e1", + "title": "Born to Touch Your Feelings - Best of Rock Ballads", + "artist": { + "id": 9644, + "fid": "https://tanukitunes.com/federation/music/artists/fb2e61ac-7a05-4636-b569-2c5cfe2186a5", + "mbid": "c3cceeed-3332-4cf0-8c4c-bbde425147b6", + "name": "Scorpions", + "creation_date": "2020-10-10T08:34:35.850627Z", + "modification_date": "2020-10-10T08:34:35.850691Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2017-11-24", + "cover": { + "uuid": "2d39645c-c240-4459-a938-e3cddf84f6b5", + "size": 82635, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T05:43:53.974408Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5a/41/57/attachment_cover-53217ba3-718a-45cd-bcc2-6651dca0daba.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=de75bf0d26333e136459828b12bb8168d640e8e2c07489ea94d9938eb77ad79f", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5a/41/57/attachment_cover-53217ba3-718a-45cd-bcc2-6651dca0daba-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a9ca22cbe888d126708e2b2a71439f99d465e20d0c29a48fc9e6ea9345cbd93d", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5a/41/57/attachment_cover-53217ba3-718a-45cd-bcc2-6651dca0daba-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5f19efa66af3ea55a5f68254fa964a6533228ce72b664b42104d3f344c96f72d" + } + }, + "creation_date": "2022-02-01T05:43:53.971949Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [], + "listen_url": "/api/v1/listen/05052332-43cc-42f5-8875-b646686caa92/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95889, + "fid": "https://tanukitunes.com/federation/music/tracks/05052332-43cc-42f5-8875-b646686caa92", + "mbid": "6fbb9035-27e7-49d7-8c20-d226510f0cdd", + "title": "Wind of Change", + "creation_date": "2022-02-01T05:43:54.175981Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:39.373718Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1849, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9649, + "fid": "https://tanukitunes.com/federation/music/artists/c05e9f40-5922-4396-b404-a6503e034d8c", + "mbid": "c55193fb-f5d2-4839-a263-4c044fca1456", + "name": "Dio", + "creation_date": "2020-10-10T08:35:21.795382Z", + "modification_date": "2020-10-10T08:35:21.795447Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 8895, + "fid": "https://tanukitunes.com/federation/music/albums/d3b56da2-c408-4e7f-b391-551bf70b0665", + "mbid": "0c62f4ac-a490-4bb5-ba53-e921a2a4644f", + "title": "Ultimate Metal Classics, Volume 1", + "artist": { + "id": 9649, + "fid": "https://tanukitunes.com/federation/music/artists/c05e9f40-5922-4396-b404-a6503e034d8c", + "mbid": "c55193fb-f5d2-4839-a263-4c044fca1456", + "name": "Dio", + "creation_date": "2020-10-10T08:35:21.795382Z", + "modification_date": "2020-10-10T08:35:21.795447Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2001-01-01", + "cover": { + "uuid": "84af3cdc-92cc-4854-b4ee-502ce415d37b", + "size": 24917, + "mimetype": "image/jpeg", + "creation_date": "2020-11-02T14:14:43.472644Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/81/c5/50/attachment_cover-d3b56da2-c408-4e7f-b391-551bf70b0665.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7dc5a8ee9c6582a3b81bce0f21e594ceb54aa9055d4e9cfe30d40fd7fe67a82", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/81/c5/50/attachment_cover-d3b56da2-c408-4e7f-b391-551bf70b0665-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=3dcdfdabc2b7ce0d3d0e5f3495c47ac46b8d422eef0d5fb72baa42e5c9fe6dde", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/81/c5/50/attachment_cover-d3b56da2-c408-4e7f-b391-551bf70b0665-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0ffc870e83800c0b0500d50fe241f4910d15e555b4c266c2d52bf30965c2c552" + } + }, + "creation_date": "2020-11-02T14:14:43.469158Z", + "is_local": true, + "tracks_count": 2 + }, + "uploads": [], + "listen_url": "/api/v1/listen/9faf4bc2-5847-44c9-8759-cd9e205352c3/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/andreigolemsky", + "url": "https://tanukitunes.com/@andreigolemsky", + "creation_date": "2020-10-23T22:23:37.283456Z", + "summary": null, + "preferred_username": "andreigolemsky", + "name": "andreigolemsky", + "last_fetch_date": "2021-11-13T01:08:30.058523Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "andreigolemsky@tanukitunes.com", + "is_local": true + }, + "id": 79625, + "fid": "https://tanukitunes.com/federation/music/tracks/9faf4bc2-5847-44c9-8759-cd9e205352c3", + "mbid": "391f3ec2-c84c-4871-81c1-d52796a9e5c1", + "title": "Rainbow in the Dark", + "creation_date": "2020-11-02T14:14:44.195606Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:30.693051Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1848, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9649, + "fid": "https://tanukitunes.com/federation/music/artists/c05e9f40-5922-4396-b404-a6503e034d8c", + "mbid": "c55193fb-f5d2-4839-a263-4c044fca1456", + "name": "Dio", + "creation_date": "2020-10-10T08:35:21.795382Z", + "modification_date": "2020-10-10T08:35:21.795447Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11069, + "fid": "https://tanukitunes.com/federation/music/albums/61e8cc4b-9109-40cb-aa00-322402cd5112", + "mbid": "a8fa45b6-47ac-44f6-a6c1-46a91b91ef05", + "title": "The Last in Line", + "artist": { + "id": 9649, + "fid": "https://tanukitunes.com/federation/music/artists/c05e9f40-5922-4396-b404-a6503e034d8c", + "mbid": "c55193fb-f5d2-4839-a263-4c044fca1456", + "name": "Dio", + "creation_date": "2020-10-10T08:35:21.795382Z", + "modification_date": "2020-10-10T08:35:21.795447Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1984-01-01", + "cover": { + "uuid": "75ce5cc9-4f38-43bc-b49e-80b723fac968", + "size": 46322, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T02:51:14.215194Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/04/2c/3b/attachment_cover-61e8cc4b-9109-40cb-aa00-322402cd5112.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1bbcddd0722bcb9b1bcd4a7436bf1beddf41ce47c44351f25d80f1772a70c803", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/04/2c/3b/attachment_cover-61e8cc4b-9109-40cb-aa00-322402cd5112-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d4834c5d39a24914b86e39c7e453331c22423d37e076e4a5b5b1fb00061de730", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/04/2c/3b/attachment_cover-61e8cc4b-9109-40cb-aa00-322402cd5112-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e656e322e42df5ae92f12c55d93a5474ecc035d95b99f9a3f80290c35f6f69a0" + } + }, + "creation_date": "2022-02-01T02:51:14.213035Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [], + "listen_url": "/api/v1/listen/92d9dbc1-4b97-42b7-af16-0cf639b979da/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95010, + "fid": "https://tanukitunes.com/federation/music/tracks/92d9dbc1-4b97-42b7-af16-0cf639b979da", + "mbid": "912c1757-b694-4d42-a1cb-4d2f6c3dbf6d", + "title": "We Rock", + "creation_date": "2022-02-01T02:51:14.403407Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:26.787835Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1847, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9663, + "fid": "https://tanukitunes.com/federation/music/artists/de695a79-fe43-4e30-ba03-3516091692ce", + "mbid": "39a31de6-763d-48b6-a45c-f7cfad58ffd8", + "name": "Sabaton", + "creation_date": "2020-10-10T08:38:30.958348Z", + "modification_date": "2020-10-10T08:38:30.958430Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11343, + "fid": "https://tanukitunes.com/federation/music/albums/402fb065-4ad1-46cf-ab23-6b90895292cc", + "mbid": "9fb7f904-1d72-49e8-bab4-16e50d49d4f3", + "title": "Primo Victoria", + "artist": { + "id": 9663, + "fid": "https://tanukitunes.com/federation/music/artists/de695a79-fe43-4e30-ba03-3516091692ce", + "mbid": "39a31de6-763d-48b6-a45c-f7cfad58ffd8", + "name": "Sabaton", + "creation_date": "2020-10-10T08:38:30.958348Z", + "modification_date": "2020-10-10T08:38:30.958430Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2005-03-04", + "cover": { + "uuid": "624f2eb3-df71-4fff-a984-f7d7452ed969", + "size": 112951, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T04:33:41.341333Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/6e/a4/95/attachment_cover-402fb065-4ad1-46cf-ab23-6b90895292cc.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ca681b85d2b9cfea1c2ea8b78604d67f8fb0e09b10730a44da785131b903b589", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/6e/a4/95/attachment_cover-402fb065-4ad1-46cf-ab23-6b90895292cc-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=725f33284f88224b7cf6bd0c6b744e7474aa14bd9219ac456ff42bd46abea6a7", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/6e/a4/95/attachment_cover-402fb065-4ad1-46cf-ab23-6b90895292cc-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9e175318d871e5830dbd63706fe705fbaefb56b6a7ad7e6da28a3ac8183730ad" + } + }, + "creation_date": "2022-02-01T04:33:41.338369Z", + "is_local": true, + "tracks_count": 2 + }, + "uploads": [], + "listen_url": "/api/v1/listen/ad03a33c-c222-4939-9166-769d0366df07/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95513, + "fid": "https://tanukitunes.com/federation/music/tracks/ad03a33c-c222-4939-9166-769d0366df07", + "mbid": "d59cc9f2-62a1-4190-8544-89ba903c5d55", + "title": "Primo Victoria", + "creation_date": "2022-02-01T04:33:41.540189Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:47:19.627606Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1846, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9663, + "fid": "https://tanukitunes.com/federation/music/artists/de695a79-fe43-4e30-ba03-3516091692ce", + "mbid": "39a31de6-763d-48b6-a45c-f7cfad58ffd8", + "name": "Sabaton", + "creation_date": "2020-10-10T08:38:30.958348Z", + "modification_date": "2020-10-10T08:38:30.958430Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11345, + "fid": "https://tanukitunes.com/federation/music/albums/c6c145b9-611a-4445-9abb-274490545c8f", + "mbid": "8f2c2323-a6b7-48d2-b3f8-ed4f26579315", + "title": "The Last Stand", + "artist": { + "id": 9663, + "fid": "https://tanukitunes.com/federation/music/artists/de695a79-fe43-4e30-ba03-3516091692ce", + "mbid": "39a31de6-763d-48b6-a45c-f7cfad58ffd8", + "name": "Sabaton", + "creation_date": "2020-10-10T08:38:30.958348Z", + "modification_date": "2020-10-10T08:38:30.958430Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-08-19", + "cover": { + "uuid": "b88a9ad6-a562-4aa4-88ca-045e539e840f", + "size": 93589, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T04:34:10.225279Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/de/6e/88/attachment_cover-c6c145b9-611a-4445-9abb-274490545c8f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2045a51ab48730de5d5b8529f974fb5a7e7e548e1090a8984f7986519422a974", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/de/6e/88/attachment_cover-c6c145b9-611a-4445-9abb-274490545c8f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8326351091700bf57afe5cc19d5542a2d8af22131d663ed0818268a39694b1ca", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/de/6e/88/attachment_cover-c6c145b9-611a-4445-9abb-274490545c8f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=41ce9eef0e22aec72ac21d2eb469c86f422f7101c3d59926e2fce86fd0cbafed" + } + }, + "creation_date": "2022-02-01T04:34:10.223118Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/dcc2dc6c-5a08-4273-bf94-b57b1dd2a4fb/", + "tags": [], + "attributed_to": { + "fid": "https://audio.gafamfree.party/federation/actors/ferritin", + "url": "https://audio.gafamfree.party/@ferritin", + "creation_date": "2022-06-16T06:05:40.243525Z", + "summary": null, + "preferred_username": "ferritin", + "name": "ferritin", + "last_fetch_date": "2022-09-05T13:30:01.495488Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ferritin@audio.gafamfree.party", + "is_local": false + }, + "id": 102209, + "fid": "https://audio.gafamfree.party/federation/music/tracks/5b4cd091-b1f2-4b01-8977-5c708bfa08d0", + "mbid": "d885dc6f-cfa7-407f-b284-10fc5c6fb829", + "title": "All Guns Blazing", + "creation_date": "2022-06-30T20:22:05.779059Z", + "is_local": false, + "position": 13, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:46:50.529264Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1845, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9663, + "fid": "https://tanukitunes.com/federation/music/artists/de695a79-fe43-4e30-ba03-3516091692ce", + "mbid": "39a31de6-763d-48b6-a45c-f7cfad58ffd8", + "name": "Sabaton", + "creation_date": "2020-10-10T08:38:30.958348Z", + "modification_date": "2020-10-10T08:38:30.958430Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11341, + "fid": "https://tanukitunes.com/federation/music/albums/64fb1837-b0c9-4c88-9831-7710a16a468f", + "mbid": "237ddce0-f219-4850-91d7-b84bbaaca24f", + "title": "Fields of Verdun", + "artist": { + "id": 9663, + "fid": "https://tanukitunes.com/federation/music/artists/de695a79-fe43-4e30-ba03-3516091692ce", + "mbid": "39a31de6-763d-48b6-a45c-f7cfad58ffd8", + "name": "Sabaton", + "creation_date": "2020-10-10T08:38:30.958348Z", + "modification_date": "2020-10-10T08:38:30.958430Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2019-05-03", + "cover": { + "uuid": "566126da-3a94-4095-b286-7298f30fc6e0", + "size": 91221, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T04:33:16.082796Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/17/86/21/attachment_cover-64fb1837-b0c9-4c88-9831-7710a16a468f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=dbbbb498cd093aa6b1ed678cf96602008a4809d43db5ff20017e198f9cba371f", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/17/86/21/attachment_cover-64fb1837-b0c9-4c88-9831-7710a16a468f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=44bc89f6f00325a8d1f953b8bc2a77eb00865b813e00029839ef4f7b3b979048", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/17/86/21/attachment_cover-64fb1837-b0c9-4c88-9831-7710a16a468f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=50fa1bb76b8cafa687bfa85a815c15c55f74dd3e16d6699bc8ed678767991ebf" + } + }, + "creation_date": "2022-02-01T04:33:16.080628Z", + "is_local": true, + "tracks_count": 1 + }, + "uploads": [], + "listen_url": "/api/v1/listen/28d17d38-9816-4f92-a9e4-a414c1a125f3/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95511, + "fid": "https://tanukitunes.com/federation/music/tracks/28d17d38-9816-4f92-a9e4-a414c1a125f3", + "mbid": "7708d97b-25b1-4d68-838f-8681e54bae3d", + "title": "Fields of Verdun", + "creation_date": "2022-02-01T04:33:16.348945Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:46:30.075591Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1844, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9698, + "fid": "https://tanukitunes.com/federation/music/artists/b86e6b95-55fe-4a62-899d-c4d61ed7fb3d", + "mbid": "5182c1d9-c7d2-4dad-afa0-ccfeada921a8", + "name": "Black Sabbath", + "creation_date": "2020-10-28T12:04:53.327225Z", + "modification_date": "2020-10-28T12:04:53.327306Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 10994, + "fid": "https://tanukitunes.com/federation/music/albums/0c53b925-c115-4530-9db9-dafc1d164361", + "mbid": "069dc077-63e4-3ee8-903b-0dd53cf555bf", + "title": "Black Sabbath", + "artist": { + "id": 9698, + "fid": "https://tanukitunes.com/federation/music/artists/b86e6b95-55fe-4a62-899d-c4d61ed7fb3d", + "mbid": "5182c1d9-c7d2-4dad-afa0-ccfeada921a8", + "name": "Black Sabbath", + "creation_date": "2020-10-28T12:04:53.327225Z", + "modification_date": "2020-10-28T12:04:53.327306Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1970-06-01", + "cover": { + "uuid": "1c339699-90bc-4d96-926d-b9d286e4a0e6", + "size": 94481, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T02:31:26.766610Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/38/88/bc/attachment_cover-0c53b925-c115-4530-9db9-dafc1d164361.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d1ac7b3460b3de3564cd6a334d0fed94754da23ba7b8d9b5fd9de147d7fb30a3", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/38/88/bc/attachment_cover-0c53b925-c115-4530-9db9-dafc1d164361-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79e40a742c9552980b2487d3ff09ded380e0cfa63fd55e11cce216ca3e92ed57", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/38/88/bc/attachment_cover-0c53b925-c115-4530-9db9-dafc1d164361-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1be3beefbb30cf063492ac1f078624a52079a0c165dd6e75c044380d27ec6414" + } + }, + "creation_date": "2022-02-01T02:31:26.764501Z", + "is_local": true, + "tracks_count": 3 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a28fc735-e628-4326-a02c-0b2aac1e6119/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 94903, + "fid": "https://tanukitunes.com/federation/music/tracks/a28fc735-e628-4326-a02c-0b2aac1e6119", + "mbid": "533d5cbb-3ec6-4226-994b-844bc2173ac3", + "title": "Black Sabbath", + "creation_date": "2022-02-01T02:31:34.089998Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:46:13.610973Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + }, + { + "id": 1843, + "user": { + "id": 545, + "username": "difero", + "name": "", + "date_joined": "2022-01-31T20:17:15Z", + "avatar": null + }, + "track": { + "cover": null, + "artist": { + "id": 9698, + "fid": "https://tanukitunes.com/federation/music/artists/b86e6b95-55fe-4a62-899d-c4d61ed7fb3d", + "mbid": "5182c1d9-c7d2-4dad-afa0-ccfeada921a8", + "name": "Black Sabbath", + "creation_date": "2020-10-28T12:04:53.327225Z", + "modification_date": "2020-10-28T12:04:53.327306Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 10994, + "fid": "https://tanukitunes.com/federation/music/albums/0c53b925-c115-4530-9db9-dafc1d164361", + "mbid": "069dc077-63e4-3ee8-903b-0dd53cf555bf", + "title": "Black Sabbath", + "artist": { + "id": 9698, + "fid": "https://tanukitunes.com/federation/music/artists/b86e6b95-55fe-4a62-899d-c4d61ed7fb3d", + "mbid": "5182c1d9-c7d2-4dad-afa0-ccfeada921a8", + "name": "Black Sabbath", + "creation_date": "2020-10-28T12:04:53.327225Z", + "modification_date": "2020-10-28T12:04:53.327306Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "1970-06-01", + "cover": { + "uuid": "1c339699-90bc-4d96-926d-b9d286e4a0e6", + "size": 94481, + "mimetype": "image/jpeg", + "creation_date": "2022-02-01T02:31:26.766610Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/38/88/bc/attachment_cover-0c53b925-c115-4530-9db9-dafc1d164361.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d1ac7b3460b3de3564cd6a334d0fed94754da23ba7b8d9b5fd9de147d7fb30a3", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/38/88/bc/attachment_cover-0c53b925-c115-4530-9db9-dafc1d164361-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79e40a742c9552980b2487d3ff09ded380e0cfa63fd55e11cce216ca3e92ed57", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/38/88/bc/attachment_cover-0c53b925-c115-4530-9db9-dafc1d164361-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220050Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1be3beefbb30cf063492ac1f078624a52079a0c165dd6e75c044380d27ec6414" + } + }, + "creation_date": "2022-02-01T02:31:26.764501Z", + "is_local": true, + "tracks_count": 3 + }, + "uploads": [], + "listen_url": "/api/v1/listen/7b4aae54-7adc-42bc-b8bc-d1d4d1daa329/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + }, + "id": 95752, + "fid": "https://tanukitunes.com/federation/music/tracks/7b4aae54-7adc-42bc-b8bc-d1d4d1daa329", + "mbid": "b6912b63-297b-4023-8ec9-0b3d8d2d31b3", + "title": "The Wizard", + "creation_date": "2022-02-01T05:15:09.167298Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-08-03T22:46:11.590511Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/difero", + "url": "https://tanukitunes.com/@difero", + "creation_date": "2022-01-31T20:17:15Z", + "summary": null, + "preferred_username": "difero", + "name": "difero", + "last_fetch_date": "2022-06-21T15:00:03Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "difero@tanukitunes.com", + "is_local": true + } + } + ] +} \ No newline at end of file diff --git a/tests/data/favorites/track_favorite_write.json b/tests/data/favorites/track_favorite_write.json new file mode 100644 index 0000000000000000000000000000000000000000..8cf1918243f007061921f54c907888a4c90da232 --- /dev/null +++ b/tests/data/favorites/track_favorite_write.json @@ -0,0 +1,5 @@ +{ + "id": 1893, + "track": 43055, + "creation_date": "2022-09-25T15:15:26.380828Z" +} \ No newline at end of file diff --git a/tests/data/favorites/track_favorite_write_request.json b/tests/data/favorites/track_favorite_write_request.json new file mode 100644 index 0000000000000000000000000000000000000000..ec5b7e1c42ac6d5adb088b38daf6cbc2fd1c6f49 --- /dev/null +++ b/tests/data/favorites/track_favorite_write_request.json @@ -0,0 +1,3 @@ +{ + "track": 43055 +} \ No newline at end of file diff --git a/tests/data/federation/federation_inbox_item.json b/tests/data/federation/federation_inbox_item.json new file mode 100644 index 0000000000000000000000000000000000000000..5a2114e4fbe4e9e46fd86ba236d938b13ece3e80 --- /dev/null +++ b/tests/data/federation/federation_inbox_item.json @@ -0,0 +1,66 @@ +{ + "id": 47713, + "type": "to", + "activity": { + "uuid": "a1ad7945-72b0-43e7-b29b-28e2bd7cd555", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/b498123e-007f-4c93-8005-ad2e5396e484/accept", + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "url": "https://am.pirateradio.social/channels/hardmenworkinghard", + "creation_date": "2022-07-29T11:24:41.919153Z", + "summary": null, + "preferred_username": "hardmenworkinghard", + "name": "Hard Men Working Hard", + "last_fetch_date": "2022-08-08T00:21:34.141046Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hardmenworkinghard@am.pirateradio.social", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/b498123e-007f-4c93-8005-ad2e5396e484/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/b498123e-007f-4c93-8005-ad2e5396e484", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "federation.Follow", + "uuid": "9d00123f-2253-4732-b9dc-4ad6937cecd9" + }, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "hardmenworkinghard@am.pirateradio.social" + }, + "creation_date": "2022-07-29T11:25:07.307003Z", + "type": "Accept" + }, + "is_read": true +} \ No newline at end of file diff --git a/tests/data/federation/federation_inbox_item_list.json b/tests/data/federation/federation_inbox_item_list.json new file mode 100644 index 0000000000000000000000000000000000000000..98b01eb56cc317d8d7fa59a0a86d80b5594f7aa1 --- /dev/null +++ b/tests/data/federation/federation_inbox_item_list.json @@ -0,0 +1,2770 @@ +{ + "count": 123, + "next": "https://tanukitunes.com/api/v1/federation/inbox?page=2", + "previous": null, + "results": [ + { + "id": 47713, + "type": "to", + "activity": { + "uuid": "a1ad7945-72b0-43e7-b29b-28e2bd7cd555", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/b498123e-007f-4c93-8005-ad2e5396e484/accept", + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "url": "https://am.pirateradio.social/channels/hardmenworkinghard", + "creation_date": "2022-07-29T11:24:41.919153Z", + "summary": null, + "preferred_username": "hardmenworkinghard", + "name": "Hard Men Working Hard", + "last_fetch_date": "2022-08-08T00:21:34.141046Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hardmenworkinghard@am.pirateradio.social", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/b498123e-007f-4c93-8005-ad2e5396e484/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/b498123e-007f-4c93-8005-ad2e5396e484", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "federation.Follow", + "uuid": "9d00123f-2253-4732-b9dc-4ad6937cecd9" + }, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "hardmenworkinghard@am.pirateradio.social" + }, + "creation_date": "2022-07-29T11:25:07.307003Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 47232, + "type": "to", + "activity": { + "uuid": "68c83fae-b9c3-484e-9037-3d471b69c0bd", + "fid": "https://funkwhale.exp.farm/federation/actors/vagabond#follows/9b213909-9451-45f4-b640-242dd047eaa7", + "actor": { + "fid": "https://funkwhale.exp.farm/federation/actors/vagabond", + "url": "https://funkwhale.exp.farm/@vagabond", + "creation_date": "2022-05-21T02:14:30.057395Z", + "summary": null, + "preferred_username": "vagabond", + "name": "vagabond", + "last_fetch_date": "2022-06-30T19:28:42.666680Z", + "domain": "funkwhale.exp.farm", + "type": "Person", + "manually_approves_followers": false, + "full_username": "vagabond@funkwhale.exp.farm", + "is_local": false + }, + "payload": { + "id": "https://funkwhale.exp.farm/federation/actors/vagabond#follows/9b213909-9451-45f4-b640-242dd047eaa7", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://funkwhale.exp.farm/federation/actors/vagabond", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "abbb5d1e-7456-4bf1-9938-c5bf7cf2ee32", + "approved": true + }, + "creation_date": "2022-05-21T02:15:10.154878Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 47231, + "type": "to", + "activity": { + "uuid": "f1cbb58d-2cec-4070-a078-7a70ff7cf365", + "fid": "https://funkwhale.mygaia.org/federation/actors/binerf#follows/90d6f6b4-0def-4350-8992-1fb55ce28c5d", + "actor": { + "fid": "https://funkwhale.mygaia.org/federation/actors/binerf", + "url": "https://funkwhale.mygaia.org/@binerf", + "creation_date": "2022-05-20T06:53:23.353928Z", + "summary": null, + "preferred_username": "binerf", + "name": "binerf", + "last_fetch_date": "2022-05-20T06:53:23.350282Z", + "domain": "funkwhale.mygaia.org", + "type": "Person", + "manually_approves_followers": false, + "full_username": "binerf@funkwhale.mygaia.org", + "is_local": false + }, + "payload": { + "id": "https://funkwhale.mygaia.org/federation/actors/binerf#follows/90d6f6b4-0def-4350-8992-1fb55ce28c5d", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://funkwhale.mygaia.org/federation/actors/binerf", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "b4df85f6-4ee6-4b16-89bb-3d3f1b82a8b8", + "approved": true + }, + "creation_date": "2022-05-20T06:53:30.707190Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 47125, + "type": "to", + "activity": { + "uuid": "0b7fd538-562c-4c81-93c2-507eefc25189", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/ff2d58ca-9180-4bd1-9884-9ff3d22e2052/accept", + "actor": { + "fid": "https://open.audio/federation/actors/jugendrechtspodcast", + "url": "https://open.audio/channels/jugendrechtspodcast", + "creation_date": "2022-04-02T08:47:56.887920Z", + "summary": null, + "preferred_username": "jugendrechtspodcast", + "name": "Jugendrechtspodcast", + "last_fetch_date": "2022-04-26T09:21:33.347789Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "jugendrechtspodcast@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/ff2d58ca-9180-4bd1-9884-9ff3d22e2052/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/jugendrechtspodcast", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/ff2d58ca-9180-4bd1-9884-9ff3d22e2052", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/jugendrechtspodcast", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": null, + "creation_date": "2022-04-02T10:43:25.968786Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 46973, + "type": "to", + "activity": { + "uuid": "66a3bc96-6a6c-47bc-bd1e-47f65bf169f6", + "fid": "https://am.pirateradio.social/federation/actors/g#follows/a3f63a03-0c5a-4ba8-99f6-52a0a9b436e2", + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/g", + "url": "https://am.pirateradio.social/@g", + "creation_date": "2022-01-27T12:19:43.880978Z", + "summary": null, + "preferred_username": "g", + "name": "g", + "last_fetch_date": "2022-01-31T23:59:13.381611Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "g@am.pirateradio.social", + "is_local": false + }, + "payload": { + "id": "https://am.pirateradio.social/federation/actors/g#follows/a3f63a03-0c5a-4ba8-99f6-52a0a9b436e2", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://am.pirateradio.social/federation/actors/g", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "ed6b77d4-209f-466b-bbf8-f922ecac2a1f", + "approved": true + }, + "creation_date": "2022-01-27T12:24:35.550815Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 46856, + "type": "to", + "activity": { + "uuid": "fb400d38-fa3d-4a51-b92b-bf907c2ea9be", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/cc2af506-9344-46eb-9f70-455a3f1b412c/accept", + "actor": { + "fid": "https://open.audio/federation/actors/lyrikvertonungen", + "url": "https://open.audio/channels/lyrikvertonungen", + "creation_date": "2022-01-14T17:01:31.089272Z", + "summary": null, + "preferred_username": "lyrikvertonungen", + "name": "Lyrikvertonungen", + "last_fetch_date": "2022-01-16T08:39:38.677993Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "lyrikvertonungen@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/cc2af506-9344-46eb-9f70-455a3f1b412c/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/lyrikvertonungen", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/cc2af506-9344-46eb-9f70-455a3f1b412c", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/lyrikvertonungen", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "lyrikvertonungen@open.audio" + }, + "creation_date": "2022-01-16T08:39:38.926441Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 46804, + "type": "to", + "activity": { + "uuid": "9ce63c16-f339-4891-a5f6-dbf755332409", + "fid": "https://music.novak.network/federation/actors/interfect#follows/3bd8a426-e5e6-45fa-b66a-eba56c72a087", + "actor": { + "fid": "https://music.novak.network/federation/actors/interfect", + "url": "https://music.novak.network/@interfect", + "creation_date": "2020-07-30T23:22:08.030260Z", + "summary": null, + "preferred_username": "interfect", + "name": "interfect", + "last_fetch_date": "2022-09-22T15:30:04.284194Z", + "domain": "music.novak.network", + "type": "Person", + "manually_approves_followers": false, + "full_username": "interfect@music.novak.network", + "is_local": false + }, + "payload": { + "id": "https://music.novak.network/federation/actors/interfect#follows/3bd8a426-e5e6-45fa-b66a-eba56c72a087", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://music.novak.network/federation/actors/interfect", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "a675f462-73b9-4854-a722-003c6747799c", + "approved": true + }, + "creation_date": "2021-10-28T15:40:35.084952Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 46792, + "type": "to", + "activity": { + "uuid": "959db515-3f4d-4914-92ed-191ecab1f6a8", + "fid": "https://am.pirateradio.social/federation/actors/maks#follows/4268fa10-4788-4aa1-a760-aadb3d049302", + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/maks", + "url": "https://am.pirateradio.social/@maks", + "creation_date": "2021-08-25T00:26:57.841020Z", + "summary": null, + "preferred_username": "maks", + "name": "maks", + "last_fetch_date": "2022-01-20T00:18:38.186016Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "maks@am.pirateradio.social", + "is_local": false + }, + "payload": { + "id": "https://am.pirateradio.social/federation/actors/maks#follows/4268fa10-4788-4aa1-a760-aadb3d049302", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://am.pirateradio.social/federation/actors/maks", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "962dcb5f-217a-4d9d-9798-7955b0ed556e", + "approved": true + }, + "creation_date": "2021-08-25T00:28:14.961713Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 46790, + "type": "to", + "activity": { + "uuid": "27bac11e-4a7a-499f-89a0-04e01f7b0868", + "fid": "https://am.pirateradio.social/federation/actors/maks#follows/0141bce7-8cbd-45da-91b2-48ae4f40111d", + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/maks", + "url": "https://am.pirateradio.social/@maks", + "creation_date": "2021-08-25T00:26:57.841020Z", + "summary": null, + "preferred_username": "maks", + "name": "maks", + "last_fetch_date": "2022-01-20T00:18:38.186016Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "maks@am.pirateradio.social", + "is_local": false + }, + "payload": { + "id": "https://am.pirateradio.social/federation/actors/maks#follows/0141bce7-8cbd-45da-91b2-48ae4f40111d", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://am.pirateradio.social/federation/actors/maks", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": null, + "creation_date": "2021-08-25T00:27:45.388927Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 46649, + "type": "to", + "activity": { + "uuid": "d1738031-8178-46cf-8ca6-36b41dcaaf4e", + "fid": null, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/gcrkrause", + "url": null, + "creation_date": "2021-07-24T12:42:25.112923Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-07-24T12:42:25.112964Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@tanukitunes.com", + "is_local": true + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/gcrkrause#follows/d16b5add-89b7-4869-919a-cea2183b34b0", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/gcrkrause", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "844d83d9-fc2b-44ce-ab66-69507c365dcd", + "approved": true + }, + "creation_date": "2021-07-24T12:58:16.638794Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 46648, + "type": "to", + "activity": { + "uuid": "74c1660a-b5a3-4807-b6f8-b36087cec964", + "fid": "https://funkwhale.projecttac.com/federation/actors/guest#follows/1e159a6d-b47d-42a5-8c77-8cf3d3b91c40", + "actor": { + "fid": "https://funkwhale.projecttac.com/federation/actors/guest", + "url": "https://funkwhale.projecttac.com/@guest", + "creation_date": "2021-07-24T05:33:32.594825Z", + "summary": null, + "preferred_username": "guest", + "name": "guest", + "last_fetch_date": "2021-07-25T20:39:14.793991Z", + "domain": "funkwhale.projecttac.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "guest@funkwhale.projecttac.com", + "is_local": false + }, + "payload": { + "id": "https://funkwhale.projecttac.com/federation/actors/guest#follows/1e159a6d-b47d-42a5-8c77-8cf3d3b91c40", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://funkwhale.projecttac.com/federation/actors/guest", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": null, + "creation_date": "2021-07-24T05:33:42.767430Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38894, + "type": "to", + "activity": { + "uuid": "0e74d24f-29f5-4f6f-b3fa-9824a6f840bb", + "fid": "https://klingtwie.derhof.eu/federation/actors/Tobi#follows/96005034-ca42-4875-936f-3e3a886c3dc8", + "actor": { + "fid": "https://klingtwie.derhof.eu/federation/actors/Tobi", + "url": "https://klingtwie.derhof.eu/@Tobi", + "creation_date": "2021-06-11T14:43:16.206497Z", + "summary": null, + "preferred_username": "Tobi", + "name": "Tobi", + "last_fetch_date": "2022-09-20T21:51:54.887535Z", + "domain": "klingtwie.derhof.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Tobi@klingtwie.derhof.eu", + "is_local": false + }, + "payload": { + "id": "https://klingtwie.derhof.eu/federation/actors/Tobi#follows/96005034-ca42-4875-936f-3e3a886c3dc8", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://klingtwie.derhof.eu/federation/actors/Tobi", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "799d2071-9894-4293-96e4-0a3c5c7bbaf5", + "approved": true + }, + "creation_date": "2021-06-12T06:18:45.510589Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38851, + "type": "to", + "activity": { + "uuid": "5d175bb9-9197-40a1-983d-d05180e07785", + "fid": "https://funk.firobe.fr/federation/actors/polpetta#follows/f5c4fdcb-93d8-4c27-be54-0c75e3d15d3d", + "actor": { + "fid": "https://funk.firobe.fr/federation/actors/polpetta", + "url": "https://funk.firobe.fr/@polpetta", + "creation_date": "2021-05-11T17:10:28.832493Z", + "summary": null, + "preferred_username": "polpetta", + "name": "polpetta", + "last_fetch_date": "2021-05-24T20:27:03.169256Z", + "domain": "funk.firobe.fr", + "type": "Person", + "manually_approves_followers": false, + "full_username": "polpetta@funk.firobe.fr", + "is_local": false + }, + "payload": { + "id": "https://funk.firobe.fr/federation/actors/polpetta#follows/f5c4fdcb-93d8-4c27-be54-0c75e3d15d3d", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://funk.firobe.fr/federation/actors/polpetta", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "06fb4351-f29f-4e38-be96-a11199881d4e", + "approved": true + }, + "creation_date": "2021-05-11T17:14:43.884980Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38843, + "type": "to", + "activity": { + "uuid": "9c30ad91-b9d2-452c-bf88-64bd9eb9300a", + "fid": null, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/mjourdan", + "url": null, + "creation_date": "2020-09-15T17:29:18.843051Z", + "summary": null, + "preferred_username": "mjourdan", + "name": "mjourdan", + "last_fetch_date": "2020-09-15T17:29:18.843067Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "mjourdan@tanukitunes.com", + "is_local": true + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/mjourdan#follows/af8e3b66-89e1-4fc3-ae3e-88dcf22f0194", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/mjourdan", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "28d481a5-8d84-4bae-87ab-d32f789bfb43", + "approved": true + }, + "creation_date": "2021-05-01T16:28:55.008241Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38838, + "type": "to", + "activity": { + "uuid": "62df0e65-1a32-4a13-8ced-4924ac615928", + "fid": "https://music.novak.network/federation/actors/interfect#follows/e31fcdfa-cc27-4435-a170-cc00650e036d", + "actor": { + "fid": "https://music.novak.network/federation/actors/interfect", + "url": "https://music.novak.network/@interfect", + "creation_date": "2020-07-30T23:22:08.030260Z", + "summary": null, + "preferred_username": "interfect", + "name": "interfect", + "last_fetch_date": "2022-09-22T15:30:04.284194Z", + "domain": "music.novak.network", + "type": "Person", + "manually_approves_followers": false, + "full_username": "interfect@music.novak.network", + "is_local": false + }, + "payload": { + "id": "https://music.novak.network/federation/actors/interfect#follows/e31fcdfa-cc27-4435-a170-cc00650e036d", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://music.novak.network/federation/actors/interfect", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": null, + "creation_date": "2021-04-15T22:47:01.919057Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38828, + "type": "to", + "activity": { + "uuid": "7df8e0f3-d864-40ab-82ec-9713fce20fb8", + "fid": "https://audio.gafamfree.party/federation/actors/megaboss#follows/afce1dfc-eaf6-4087-bbef-848351d62f1c", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/megaboss", + "url": "https://audio.gafamfree.party/@megaboss", + "creation_date": "2020-12-25T11:28:39.522723Z", + "summary": null, + "preferred_username": "megaboss", + "name": "megaboss", + "last_fetch_date": "2022-02-24T15:34:10.240527Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "megaboss@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/megaboss#follows/afce1dfc-eaf6-4087-bbef-848351d62f1c", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/megaboss", + "object": "https://tanukitunes.com/federation/music/libraries/4cebd148-ef54-4882-b486-f05e7fe5a78c", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "4cebd148-ef54-4882-b486-f05e7fe5a78c", + "name": "Tracks by me" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "743935e5-a2c3-4e14-b4f8-11ef84458aac", + "approved": true + }, + "creation_date": "2021-04-14T17:54:28.854314Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38825, + "type": "to", + "activity": { + "uuid": "dea4ba0c-e8c5-40bd-96be-1ed8904fa984", + "fid": "https://audio.gafamfree.party/federation/actors/megaboss#follows/6955b923-db62-40c6-b972-f83bf40a0d89", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/megaboss", + "url": "https://audio.gafamfree.party/@megaboss", + "creation_date": "2020-12-25T11:28:39.522723Z", + "summary": null, + "preferred_username": "megaboss", + "name": "megaboss", + "last_fetch_date": "2022-02-24T15:34:10.240527Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "megaboss@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/megaboss#follows/6955b923-db62-40c6-b972-f83bf40a0d89", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/megaboss", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "c5058949-962d-4450-9583-852de71525b7", + "approved": true + }, + "creation_date": "2021-04-14T17:53:59.942095Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38817, + "type": "to", + "activity": { + "uuid": "92dff7bd-4aaa-4f60-ba11-48db56484610", + "fid": "https://audio.gafamfree.party/federation/actors/ItsDropBears#follows/dda4ae03-19fc-4e97-8b4d-762f421cc833", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/ItsDropBears", + "url": "https://audio.gafamfree.party/@ItsDropBears", + "creation_date": "2021-04-12T13:21:53.701617Z", + "summary": null, + "preferred_username": "ItsDropBears", + "name": "ItsDropBears", + "last_fetch_date": "2021-04-12T13:21:53.696801Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ItsDropBears@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/ItsDropBears#follows/dda4ae03-19fc-4e97-8b4d-762f421cc833", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/ItsDropBears", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "319b1adc-9d0b-44de-a0e9-2a9a5fde8bc9", + "approved": true + }, + "creation_date": "2021-04-12T13:21:53.718418Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38768, + "type": "to", + "activity": { + "uuid": "0e4a9a01-4b1b-405e-9f46-1f9769b4b0cb", + "fid": "https://soundship.de/federation/actors/gcrkrause#follows/0f357f99-4f6a-4789-8590-91e430c8ef59", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2021-03-11T06:08:54.284140Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": false + }, + "payload": { + "id": "https://soundship.de/federation/actors/gcrkrause#follows/0f357f99-4f6a-4789-8590-91e430c8ef59", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://soundship.de/federation/actors/gcrkrause", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "d9a4f65f-79d0-42b9-af1e-eded4b47df2b", + "approved": true + }, + "creation_date": "2021-04-02T09:11:12.341658Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38723, + "type": "to", + "activity": { + "uuid": "45a02e9a-fbec-47b9-94cd-9f8d451e8798", + "fid": "https://test.audio.gafamfree.party/federation/actors/megaboss#follows/994d14f9-d0e1-4325-b2f5-c07c737a9179", + "actor": { + "fid": "https://test.audio.gafamfree.party/federation/actors/megaboss", + "url": "https://test.audio.gafamfree.party/@megaboss", + "creation_date": "2021-03-22T20:21:03.210526Z", + "summary": null, + "preferred_username": "megaboss", + "name": "megaboss", + "last_fetch_date": "2021-03-31T14:16:19.552483Z", + "domain": "test.audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "megaboss@test.audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://test.audio.gafamfree.party/federation/actors/megaboss#follows/994d14f9-d0e1-4325-b2f5-c07c737a9179", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://test.audio.gafamfree.party/federation/actors/megaboss", + "object": "https://tanukitunes.com/federation/music/libraries/4cebd148-ef54-4882-b486-f05e7fe5a78c", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "4cebd148-ef54-4882-b486-f05e7fe5a78c", + "name": "Tracks by me" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "e5a6236b-f262-423f-9e3d-0cb241bbe120", + "approved": true + }, + "creation_date": "2021-03-22T20:22:00.474276Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38720, + "type": "to", + "activity": { + "uuid": "5024e528-208c-4a01-a40e-5f5f1b5da8cf", + "fid": "https://test.audio.gafamfree.party/federation/actors/megaboss#follows/037d677f-1fdf-45ef-a9da-528822f25d8b", + "actor": { + "fid": "https://test.audio.gafamfree.party/federation/actors/megaboss", + "url": "https://test.audio.gafamfree.party/@megaboss", + "creation_date": "2021-03-22T20:21:03.210526Z", + "summary": null, + "preferred_username": "megaboss", + "name": "megaboss", + "last_fetch_date": "2021-03-31T14:16:19.552483Z", + "domain": "test.audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "megaboss@test.audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://test.audio.gafamfree.party/federation/actors/megaboss#follows/037d677f-1fdf-45ef-a9da-528822f25d8b", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://test.audio.gafamfree.party/federation/actors/megaboss", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "115dc06a-9488-400d-8c75-e58270d47430", + "approved": true + }, + "creation_date": "2021-03-22T20:21:23.135978Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38683, + "type": "to", + "activity": { + "uuid": "f33408e9-73eb-48dd-9a03-cde19349ce56", + "fid": "https://am.pirateradio.social/federation/actors/captain#follows/a1931c63-0033-4eb6-b150-3e49a4011b22", + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/captain", + "url": "https://am.pirateradio.social/@captain", + "creation_date": "2021-03-03T22:21:26.634240Z", + "summary": null, + "preferred_username": "captain", + "name": "captain", + "last_fetch_date": "2021-03-26T14:22:54.552625Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "captain@am.pirateradio.social", + "is_local": false + }, + "payload": { + "id": "https://am.pirateradio.social/federation/actors/captain#follows/a1931c63-0033-4eb6-b150-3e49a4011b22", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://am.pirateradio.social/federation/actors/captain", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "372e9bfa-f1df-4e94-85b9-fcaa05767f8a", + "approved": true + }, + "creation_date": "2021-03-03T22:22:15.844926Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38620, + "type": "to", + "activity": { + "uuid": "52d64d76-e2dd-4f46-95eb-e1cd8cb25bf1", + "fid": "https://test.audio.gafamfree.party/federation/actors/QLF#follows/ffe85865-3387-401e-8a48-5a5ceac7cf18", + "actor": { + "fid": "https://test.audio.gafamfree.party/federation/actors/QLF", + "url": "https://test.audio.gafamfree.party/@QLF", + "creation_date": "2021-01-27T20:16:09.985201Z", + "summary": null, + "preferred_username": "QLF", + "name": "QLF", + "last_fetch_date": "2022-07-25T03:25:19.059715Z", + "domain": "test.audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "QLF@test.audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://test.audio.gafamfree.party/federation/actors/QLF#follows/ffe85865-3387-401e-8a48-5a5ceac7cf18", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://test.audio.gafamfree.party/federation/actors/QLF", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "6cac38b3-5a22-4ac6-9202-eed77bba5f8d", + "approved": true + }, + "creation_date": "2021-01-27T20:18:23.143219Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38589, + "type": "to", + "activity": { + "uuid": "ddc15804-11b3-41d9-b9c5-a1493fb2d31b", + "fid": "https://audio.gafamfree.party/federation/actors/QLF#follows/cda1e285-be94-4c75-8aa5-20964582df1f", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/QLF", + "url": "https://audio.gafamfree.party/@QLF", + "creation_date": "2020-01-18T12:57:36.448178Z", + "summary": null, + "preferred_username": "QLF", + "name": "QLF", + "last_fetch_date": "2021-09-05T13:51:56.057741Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "QLF@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/QLF#follows/cda1e285-be94-4c75-8aa5-20964582df1f", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/QLF", + "object": "https://tanukitunes.com/federation/music/libraries/4cebd148-ef54-4882-b486-f05e7fe5a78c", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "4cebd148-ef54-4882-b486-f05e7fe5a78c", + "name": "Tracks by me" + }, + "target": null, + "related_object": null, + "creation_date": "2021-01-22T17:32:22.277906Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38586, + "type": "to", + "activity": { + "uuid": "645a04ca-2fd9-4bd5-8e1b-edf118390fbf", + "fid": "https://audio.gafamfree.party/federation/actors/QLF#follows/4276ca49-1bf7-4655-9c7e-a44700040f2c", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/QLF", + "url": "https://audio.gafamfree.party/@QLF", + "creation_date": "2020-01-18T12:57:36.448178Z", + "summary": null, + "preferred_username": "QLF", + "name": "QLF", + "last_fetch_date": "2021-09-05T13:51:56.057741Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "QLF@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/QLF#follows/4276ca49-1bf7-4655-9c7e-a44700040f2c", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/QLF", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": null, + "creation_date": "2021-01-22T17:31:57.837787Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38364, + "type": "to", + "activity": { + "uuid": "8da46fd4-86ed-4e0a-a275-65da1bf87415", + "fid": null, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Lar", + "url": null, + "creation_date": "2020-12-01T22:22:54.059735Z", + "summary": null, + "preferred_username": "Lar", + "name": "Lar", + "last_fetch_date": "2020-12-01T22:22:54.059751Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Lar@tanukitunes.com", + "is_local": true + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/Lar#follows/02d240f4-7414-4dba-a1d4-21122899155c", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/Lar", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "6db2e785-d557-422f-9a57-8c4e8a92ee89", + "approved": true + }, + "creation_date": "2021-01-15T22:57:30.416855Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38356, + "type": "to", + "activity": { + "uuid": "5880fce0-f6a1-44da-a304-41d8c97f2f32", + "fid": "https://mas.to/5aa8b0dc-2083-4b58-9948-f9c6225881c4", + "actor": { + "fid": "https://mas.to/users/Unown256", + "url": "https://mas.to/@Unown256", + "creation_date": "2021-01-11T18:16:03.844029Z", + "summary": null, + "preferred_username": "Unown256", + "name": "", + "last_fetch_date": "2021-01-11T18:16:03.838963Z", + "domain": "mas.to", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Unown256@mas.to", + "is_local": false + }, + "payload": { + "id": "https://mas.to/5aa8b0dc-2083-4b58-9948-f9c6225881c4", + "type": "Follow", + "actor": "https://mas.to/users/Unown256", + "object": "https://tanukitunes.com/federation/actors/doctorworm", + "@context": "https://www.w3.org/ns/activitystreams" + }, + "object": { + "type": "federation.Actor", + "full_username": "doctorworm@tanukitunes.com" + }, + "target": null, + "related_object": null, + "creation_date": "2021-01-11T18:16:03.872995Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38355, + "type": "to", + "activity": { + "uuid": "5880fce0-f6a1-44da-a304-41d8c97f2f32", + "fid": "https://mas.to/5aa8b0dc-2083-4b58-9948-f9c6225881c4", + "actor": { + "fid": "https://mas.to/users/Unown256", + "url": "https://mas.to/@Unown256", + "creation_date": "2021-01-11T18:16:03.844029Z", + "summary": null, + "preferred_username": "Unown256", + "name": "", + "last_fetch_date": "2021-01-11T18:16:03.838963Z", + "domain": "mas.to", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Unown256@mas.to", + "is_local": false + }, + "payload": { + "id": "https://mas.to/5aa8b0dc-2083-4b58-9948-f9c6225881c4", + "type": "Follow", + "actor": "https://mas.to/users/Unown256", + "object": "https://tanukitunes.com/federation/actors/doctorworm", + "@context": "https://www.w3.org/ns/activitystreams" + }, + "object": { + "type": "federation.Actor", + "full_username": "doctorworm@tanukitunes.com" + }, + "target": null, + "related_object": null, + "creation_date": "2021-01-11T18:16:03.872995Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38352, + "type": "to", + "activity": { + "uuid": "b779df56-7c88-418f-8e62-b064d012f200", + "fid": "https://open.audio/federation/actors/PT_Alfred#follows/015f3489-e933-46c9-93dd-48e6a6c3187f", + "actor": { + "fid": "https://open.audio/federation/actors/PT_Alfred", + "url": "https://open.audio/@PT_Alfred", + "creation_date": "2020-05-29T02:31:29.006554Z", + "summary": null, + "preferred_username": "PT_Alfred", + "name": "PT_Alfred", + "last_fetch_date": "2021-01-08T11:45:00.620427Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "PT_Alfred@open.audio", + "is_local": false + }, + "payload": { + "id": "https://open.audio/federation/actors/PT_Alfred#follows/015f3489-e933-46c9-93dd-48e6a6c3187f", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://open.audio/federation/actors/PT_Alfred", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "7df97bd9-ac1a-4863-9155-3fc88b18195c", + "approved": true + }, + "creation_date": "2021-01-08T11:45:09.217760Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38344, + "type": "to", + "activity": { + "uuid": "8c1cce34-85fc-447a-9f38-3599c8a705c6", + "fid": null, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/hay", + "url": null, + "creation_date": "2020-01-26T00:26:05.614180Z", + "summary": null, + "preferred_username": "hay", + "name": "hay", + "last_fetch_date": "2020-01-26T00:26:05.614194Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hay@tanukitunes.com", + "is_local": true + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/hay#follows/759f9b4c-ecf7-4051-ba53-0d6462cdd0d2", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/hay", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "ee02922f-ae60-46d7-9384-b41c04cc5769", + "approved": true + }, + "creation_date": "2020-12-31T14:56:51.008740Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38316, + "type": "to", + "activity": { + "uuid": "e78df2a5-344d-4f93-84dd-2ee9970f5ee4", + "fid": "https://audio.gafamfree.party/federation/actors/nulachi2#follows/a667bfe9-7eca-4651-965c-913f155ff6a5", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/nulachi2", + "url": "https://audio.gafamfree.party/@nulachi2", + "creation_date": "2020-12-25T17:25:29.433324Z", + "summary": null, + "preferred_username": "nulachi2", + "name": "nulachi2", + "last_fetch_date": "2021-01-21T22:24:48.150240Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "nulachi2@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/nulachi2#follows/a667bfe9-7eca-4651-965c-913f155ff6a5", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/nulachi2", + "object": "https://tanukitunes.com/federation/music/libraries/4cebd148-ef54-4882-b486-f05e7fe5a78c", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "4cebd148-ef54-4882-b486-f05e7fe5a78c", + "name": "Tracks by me" + }, + "target": null, + "related_object": null, + "creation_date": "2020-12-26T10:32:19.341010Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38311, + "type": "to", + "activity": { + "uuid": "0fa56fce-86e8-46ea-8353-6a619537718d", + "fid": "https://audio.gafamfree.party/federation/actors/nulachi2#follows/d7c36c3c-7a21-4c40-ad32-1cb9e0eb30cb", + "actor": { + "fid": "https://audio.gafamfree.party/federation/actors/nulachi2", + "url": "https://audio.gafamfree.party/@nulachi2", + "creation_date": "2020-12-25T17:25:29.433324Z", + "summary": null, + "preferred_username": "nulachi2", + "name": "nulachi2", + "last_fetch_date": "2021-01-21T22:24:48.150240Z", + "domain": "audio.gafamfree.party", + "type": "Person", + "manually_approves_followers": false, + "full_username": "nulachi2@audio.gafamfree.party", + "is_local": false + }, + "payload": { + "id": "https://audio.gafamfree.party/federation/actors/nulachi2#follows/d7c36c3c-7a21-4c40-ad32-1cb9e0eb30cb", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://audio.gafamfree.party/federation/actors/nulachi2", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": null, + "creation_date": "2020-12-26T10:31:48.726450Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38304, + "type": "to", + "activity": { + "uuid": "0d6044c6-e439-49b3-8140-8cdd68f254b4", + "fid": null, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/tskaalgard", + "url": null, + "creation_date": "2020-08-19T17:49:36.525922Z", + "summary": null, + "preferred_username": "tskaalgard", + "name": "tskaalgard", + "last_fetch_date": "2020-08-19T17:49:36.525941Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "tskaalgard@tanukitunes.com", + "is_local": true + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/tskaalgard#follows/de9e515b-e3a5-4fa7-aae2-6ec7cc7f6427", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/tskaalgard", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "c00701f8-8b5d-4e72-a136-9a89138a93ca", + "approved": true + }, + "creation_date": "2020-12-23T06:48:10.647763Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38302, + "type": "to", + "activity": { + "uuid": "72aaf6d6-d8b3-44ed-b681-8a9a70cc8f30", + "fid": "https://mamot.fr/f247b1c4-d620-477b-8cfb-0d34619e8e2b", + "actor": { + "fid": "https://mamot.fr/users/Qanno", + "url": "https://mamot.fr/@Qanno", + "creation_date": "2020-12-14T05:53:04.003101Z", + "summary": null, + "preferred_username": "Qanno", + "name": "> Qanno", + "last_fetch_date": "2020-12-14T05:53:03.997989Z", + "domain": "mamot.fr", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Qanno@mamot.fr", + "is_local": false + }, + "payload": { + "id": "https://mamot.fr/f247b1c4-d620-477b-8cfb-0d34619e8e2b", + "type": "Follow", + "actor": "https://mamot.fr/users/Qanno", + "object": "https://tanukitunes.com/federation/actors/doctorworm", + "@context": "https://www.w3.org/ns/activitystreams" + }, + "object": { + "type": "federation.Actor", + "full_username": "doctorworm@tanukitunes.com" + }, + "target": null, + "related_object": { + "type": "federation.Follow", + "uuid": "23b5ba88-45d1-435b-aa86-7e75514a435f" + }, + "creation_date": "2020-12-14T05:53:04.023842Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38303, + "type": "to", + "activity": { + "uuid": "72aaf6d6-d8b3-44ed-b681-8a9a70cc8f30", + "fid": "https://mamot.fr/f247b1c4-d620-477b-8cfb-0d34619e8e2b", + "actor": { + "fid": "https://mamot.fr/users/Qanno", + "url": "https://mamot.fr/@Qanno", + "creation_date": "2020-12-14T05:53:04.003101Z", + "summary": null, + "preferred_username": "Qanno", + "name": "> Qanno", + "last_fetch_date": "2020-12-14T05:53:03.997989Z", + "domain": "mamot.fr", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Qanno@mamot.fr", + "is_local": false + }, + "payload": { + "id": "https://mamot.fr/f247b1c4-d620-477b-8cfb-0d34619e8e2b", + "type": "Follow", + "actor": "https://mamot.fr/users/Qanno", + "object": "https://tanukitunes.com/federation/actors/doctorworm", + "@context": "https://www.w3.org/ns/activitystreams" + }, + "object": { + "type": "federation.Actor", + "full_username": "doctorworm@tanukitunes.com" + }, + "target": null, + "related_object": { + "type": "federation.Follow", + "uuid": "23b5ba88-45d1-435b-aa86-7e75514a435f" + }, + "creation_date": "2020-12-14T05:53:04.023842Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 38276, + "type": "to", + "activity": { + "uuid": "a571fefd-acc9-42b7-a6c9-ff99cdeb5f27", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/edd6539a-63a9-4a0a-a1e8-6e075f086987/accept", + "actor": { + "fid": "https://open.audio/federation/actors/gutsud", + "url": "https://open.audio/channels/gutsud", + "creation_date": "2020-11-21T18:54:18.204955Z", + "summary": null, + "preferred_username": "gutsud", + "name": "Gut Sud - Hobbybrau Schnack", + "last_fetch_date": "2021-01-04T06:58:05.876482Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gutsud@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/edd6539a-63a9-4a0a-a1e8-6e075f086987/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/gutsud", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/edd6539a-63a9-4a0a-a1e8-6e075f086987", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/gutsud", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": null, + "creation_date": "2020-12-06T20:02:46.028555Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37787, + "type": "to", + "activity": { + "uuid": "133dfc63-3fda-4397-81be-f2a0aab02880", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/6cf0672e-3ec1-4004-9a19-0be9aa0f4273/accept", + "actor": { + "fid": "https://pigsty.silksow.com/federation/actors/kylebronsdon", + "url": "https://pigsty.silksow.com/@kylebronsdon", + "creation_date": "2019-10-29T16:41:50.322108Z", + "summary": null, + "preferred_username": "kylebronsdon", + "name": "kylebronsdon", + "last_fetch_date": "2021-06-01T20:51:22.371615Z", + "domain": "pigsty.silksow.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "kylebronsdon@pigsty.silksow.com", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/6cf0672e-3ec1-4004-9a19-0be9aa0f4273/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://pigsty.silksow.com/federation/actors/kylebronsdon", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/6cf0672e-3ec1-4004-9a19-0be9aa0f4273", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://pigsty.silksow.com/federation/music/libraries/ba4dbaf4-d277-4b3e-8223-f258dac97538", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "federation.LibraryFollow", + "uuid": "e7bd7818-19a5-4326-ad20-29b07674131c", + "approved": true + }, + "target": null, + "related_object": { + "type": "music.Library", + "uuid": "70d09949-6d10-4ce8-b4d1-d3e2da9e7472", + "name": "Kyle Bronsdon" + }, + "creation_date": "2020-12-04T20:32:15.811869Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37782, + "type": "to", + "activity": { + "uuid": "add27654-4d8c-47f7-9c14-9fc365773885", + "fid": "https://ziltoidian.space/federation/actors/gordon#follows/b17af0ed-03ef-4cdc-bf78-387f6c74fb87", + "actor": { + "fid": "https://ziltoidian.space/federation/actors/gordon", + "url": "https://ziltoidian.space/@gordon", + "creation_date": "2020-12-04T19:16:56.214162Z", + "summary": null, + "preferred_username": "gordon", + "name": "gordon", + "last_fetch_date": "2022-02-20T18:25:39.694107Z", + "domain": "ziltoidian.space", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gordon@ziltoidian.space", + "is_local": false + }, + "payload": { + "id": "https://ziltoidian.space/federation/actors/gordon#follows/b17af0ed-03ef-4cdc-bf78-387f6c74fb87", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://ziltoidian.space/federation/actors/gordon", + "object": "https://tanukitunes.com/federation/music/libraries/86e128d2-6aac-4055-a9f3-6c69add23eaf", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "86e128d2-6aac-4055-a9f3-6c69add23eaf", + "name": "Test Library" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "7b3899e5-0743-4cbc-98c0-8d88eee03ea4", + "approved": true + }, + "creation_date": "2020-12-04T20:15:24.437582Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 37781, + "type": "to", + "activity": { + "uuid": "d8c42bcd-b5b5-4835-8c6d-b5a8db3156dc", + "fid": "https://ziltoidian.space/federation/actors/gordon#follows/3972930c-7d7c-4523-bade-38ec38f3d25a", + "actor": { + "fid": "https://ziltoidian.space/federation/actors/gordon", + "url": "https://ziltoidian.space/@gordon", + "creation_date": "2020-12-04T19:16:56.214162Z", + "summary": null, + "preferred_username": "gordon", + "name": "gordon", + "last_fetch_date": "2022-02-20T18:25:39.694107Z", + "domain": "ziltoidian.space", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gordon@ziltoidian.space", + "is_local": false + }, + "payload": { + "id": "https://ziltoidian.space/federation/actors/gordon#follows/3972930c-7d7c-4523-bade-38ec38f3d25a", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Follow", + "actor": "https://ziltoidian.space/federation/actors/gordon", + "object": "https://tanukitunes.com/federation/music/libraries/34b758c5-0136-4fb9-924b-8e3863fe70e6", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "music.Library", + "uuid": "34b758c5-0136-4fb9-924b-8e3863fe70e6", + "name": "Creative Commons Music" + }, + "target": null, + "related_object": { + "type": "federation.LibraryFollow", + "uuid": "50f9ac61-231e-4c72-aa0e-6bd07ecbcc77", + "approved": true + }, + "creation_date": "2020-12-04T20:05:30.341393Z", + "type": "Follow" + }, + "is_read": true + }, + { + "id": 37780, + "type": "to", + "activity": { + "uuid": "e1a88084-a9e6-4381-8799-a502edd27a4f", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/6339f401-f712-4a6c-9396-56abbaa344a3/accept", + "actor": { + "fid": "https://open.audio/federation/actors/goodvibesforendtimes", + "url": "https://open.audio/channels/goodvibesforendtimes", + "creation_date": "2020-12-04T15:45:19.016502Z", + "summary": null, + "preferred_username": "goodvibesforendtimes", + "name": "Good Vibes for End Times", + "last_fetch_date": "2020-12-04T15:45:19.016513Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "goodvibesforendtimes@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/6339f401-f712-4a6c-9396-56abbaa344a3/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/goodvibesforendtimes", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/6339f401-f712-4a6c-9396-56abbaa344a3", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/goodvibesforendtimes", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": { + "type": "federation.Follow", + "uuid": "67458e01-6225-4156-a155-705b42128778" + }, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "goodvibesforendtimes@open.audio" + }, + "creation_date": "2020-12-04T15:49:14.255781Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37779, + "type": "to", + "activity": { + "uuid": "f5e4fa95-ba52-42bf-9b09-ac0a39dff702", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/65566f86-4750-4f13-8ec3-ace686be8538/accept", + "actor": { + "fid": "https://open.audio/federation/actors/goodvibesforendtimes", + "url": "https://open.audio/channels/goodvibesforendtimes", + "creation_date": "2020-12-04T15:45:19.016502Z", + "summary": null, + "preferred_username": "goodvibesforendtimes", + "name": "Good Vibes for End Times", + "last_fetch_date": "2020-12-04T15:45:19.016513Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "goodvibesforendtimes@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/65566f86-4750-4f13-8ec3-ace686be8538/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/goodvibesforendtimes", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/65566f86-4750-4f13-8ec3-ace686be8538", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/goodvibesforendtimes", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "goodvibesforendtimes@open.audio" + }, + "creation_date": "2020-12-04T15:48:59.259392Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37778, + "type": "to", + "activity": { + "uuid": "e28c9273-400c-455e-a3b2-52616ce2e941", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/7f3b03bf-62f5-4bff-af18-13f01428627b/accept", + "actor": { + "fid": "https://open.audio/federation/actors/softwaresoundchecks", + "url": "https://open.audio/channels/softwaresoundchecks", + "creation_date": "2020-12-04T15:30:46.132581Z", + "summary": null, + "preferred_username": "softwaresoundchecks", + "name": "Software & Soundchecks", + "last_fetch_date": "2020-12-04T15:30:46.132591Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "softwaresoundchecks@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/7f3b03bf-62f5-4bff-af18-13f01428627b/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/softwaresoundchecks", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/7f3b03bf-62f5-4bff-af18-13f01428627b", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/softwaresoundchecks", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "softwaresoundchecks@open.audio" + }, + "creation_date": "2020-12-04T15:30:59.133693Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37777, + "type": "to", + "activity": { + "uuid": "99315893-eb73-47f3-80f8-9174a7df8e8e", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/03ff2d2b-f5ee-4750-99dc-26fc84070881/accept", + "actor": { + "fid": "https://open.audio/federation/actors/decentralizetoday", + "url": "https://open.audio/channels/decentralizetoday", + "creation_date": "2020-12-04T15:28:31.372969Z", + "summary": null, + "preferred_username": "decentralizetoday", + "name": "Decentralize Today", + "last_fetch_date": "2022-08-29T01:59:11.277159Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "decentralizetoday@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/03ff2d2b-f5ee-4750-99dc-26fc84070881/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/decentralizetoday", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/03ff2d2b-f5ee-4750-99dc-26fc84070881", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/decentralizetoday", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "decentralizetoday@open.audio" + }, + "creation_date": "2020-12-04T15:29:17.341717Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37776, + "type": "to", + "activity": { + "uuid": "6b6ecefa-467e-4851-a14d-69f20752c7a3", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/46010a57-76ed-475a-a5dc-764dd90f2e66/accept", + "actor": { + "fid": "https://open.audio/federation/actors/decentralizetoday", + "url": "https://open.audio/channels/decentralizetoday", + "creation_date": "2020-12-04T15:28:31.372969Z", + "summary": null, + "preferred_username": "decentralizetoday", + "name": "Decentralize Today", + "last_fetch_date": "2022-08-29T01:59:11.277159Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "decentralizetoday@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/46010a57-76ed-475a-a5dc-764dd90f2e66/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/decentralizetoday", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/46010a57-76ed-475a-a5dc-764dd90f2e66", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/decentralizetoday", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "decentralizetoday@open.audio" + }, + "creation_date": "2020-12-04T15:28:42.332388Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37775, + "type": "to", + "activity": { + "uuid": "7ffc4945-94ce-4926-b0f8-4e5a6e1aeb27", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/3a2baf3b-5bd2-495a-a9fd-518318c7d122/accept", + "actor": { + "fid": "https://open.audio/federation/actors/polosdecinema", + "url": "https://open.audio/channels/polosdecinema", + "creation_date": "2020-12-04T15:26:48.867744Z", + "summary": null, + "preferred_username": "polosdecinema", + "name": "Polos de Cinema", + "last_fetch_date": "2020-12-04T15:26:48.867756Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "polosdecinema@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/3a2baf3b-5bd2-495a-a9fd-518318c7d122/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/polosdecinema", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/3a2baf3b-5bd2-495a-a9fd-518318c7d122", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/polosdecinema", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "polosdecinema@open.audio" + }, + "creation_date": "2020-12-04T15:27:00.027421Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37774, + "type": "to", + "activity": { + "uuid": "6ce25518-4833-46da-98d8-c59719f3f56f", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/62774539-856f-4f6f-a389-a8e9bbcf0421/accept", + "actor": { + "fid": "https://open.audio/federation/actors/gutsud", + "url": "https://open.audio/channels/gutsud", + "creation_date": "2020-11-21T18:54:18.204955Z", + "summary": null, + "preferred_username": "gutsud", + "name": "Gut Sud - Hobbybrau Schnack", + "last_fetch_date": "2021-01-04T06:58:05.876482Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gutsud@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/62774539-856f-4f6f-a389-a8e9bbcf0421/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/gutsud", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/62774539-856f-4f6f-a389-a8e9bbcf0421", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/gutsud", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "gutsud@open.audio" + }, + "creation_date": "2020-12-04T15:20:54.455727Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37773, + "type": "to", + "activity": { + "uuid": "2690714b-da70-48c9-87ea-e74479c9faf6", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/4834c22f-504e-4a7e-a518-e46f10dd506a/accept", + "actor": { + "fid": "https://open.audio/federation/actors/gutsud", + "url": "https://open.audio/channels/gutsud", + "creation_date": "2020-11-21T18:54:18.204955Z", + "summary": null, + "preferred_username": "gutsud", + "name": "Gut Sud - Hobbybrau Schnack", + "last_fetch_date": "2021-01-04T06:58:05.876482Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gutsud@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/4834c22f-504e-4a7e-a518-e46f10dd506a/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/gutsud", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/4834c22f-504e-4a7e-a518-e46f10dd506a", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/gutsud", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "gutsud@open.audio" + }, + "creation_date": "2020-12-04T15:20:27.116311Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37772, + "type": "to", + "activity": { + "uuid": "d6578408-6ec9-462b-98fc-587aa2de24f2", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/55703b1d-a5c5-47f8-bcfb-a40327fe8a8e/accept", + "actor": { + "fid": "https://open.audio/federation/actors/gutsud", + "url": "https://open.audio/channels/gutsud", + "creation_date": "2020-11-21T18:54:18.204955Z", + "summary": null, + "preferred_username": "gutsud", + "name": "Gut Sud - Hobbybrau Schnack", + "last_fetch_date": "2021-01-04T06:58:05.876482Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gutsud@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/55703b1d-a5c5-47f8-bcfb-a40327fe8a8e/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/gutsud", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/55703b1d-a5c5-47f8-bcfb-a40327fe8a8e", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/gutsud", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "gutsud@open.audio" + }, + "creation_date": "2020-12-04T15:19:51.099539Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37771, + "type": "to", + "activity": { + "uuid": "29e7925e-a66a-428b-b132-ce309c092565", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/925b4c18-8ff8-471e-b876-2f8d70758161/accept", + "actor": { + "fid": "https://open.audio/federation/actors/gutsud", + "url": "https://open.audio/channels/gutsud", + "creation_date": "2020-11-21T18:54:18.204955Z", + "summary": null, + "preferred_username": "gutsud", + "name": "Gut Sud - Hobbybrau Schnack", + "last_fetch_date": "2021-01-04T06:58:05.876482Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gutsud@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/925b4c18-8ff8-471e-b876-2f8d70758161/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/gutsud", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/925b4c18-8ff8-471e-b876-2f8d70758161", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/gutsud", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "gutsud@open.audio" + }, + "creation_date": "2020-12-04T12:50:39.489983Z", + "type": "Accept" + }, + "is_read": true + }, + { + "id": 37770, + "type": "to", + "activity": { + "uuid": "e8d8ec30-5d1b-4831-ab65-10b1c5537029", + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/36514184-7be6-4366-80ad-bdfaade1fb23/accept", + "actor": { + "fid": "https://open.audio/federation/actors/ethiqueetsociete", + "url": "https://open.audio/channels/ethiqueetsociete", + "creation_date": "2020-12-02T14:03:59.591702Z", + "summary": null, + "preferred_username": "ethiqueetsociete", + "name": "Ethique et Société", + "last_fetch_date": "2020-12-06T12:01:43.994826Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ethiqueetsociete@open.audio", + "is_local": false + }, + "payload": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/36514184-7be6-4366-80ad-bdfaade1fb23/accept", + "to": [ + "https://tanukitunes.com/federation/actors/doctorworm" + ], + "type": "Accept", + "actor": "https://open.audio/federation/actors/ethiqueetsociete", + "object": { + "id": "https://tanukitunes.com/federation/actors/doctorworm#follows/36514184-7be6-4366-80ad-bdfaade1fb23", + "type": "Follow", + "actor": "https://tanukitunes.com/federation/actors/doctorworm", + "object": "https://open.audio/federation/actors/ethiqueetsociete", + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + "https://funkwhale.audio/ns", + { + "Hashtag": "as:Hashtag", + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers" + } + ] + }, + "object": null, + "target": null, + "related_object": { + "type": "federation.Actor", + "full_username": "ethiqueetsociete@open.audio" + }, + "creation_date": "2020-12-04T11:19:23.826220Z", + "type": "Accept" + }, + "is_read": true + } + ] +} \ No newline at end of file diff --git a/tests/data/federation/library_follow.json b/tests/data/federation/library_follow.json new file mode 100644 index 0000000000000000000000000000000000000000..69dff320da946ccc305a92c46f3aa105c9ccf45f --- /dev/null +++ b/tests/data/federation/library_follow.json @@ -0,0 +1,44 @@ +{ + "creation_date": "2020-06-12T18:39:40.855970Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "a40adfef-ad8c-4a91-9340-868b83f45ef5", + "target": { + "fid": "https://tanukitunes.com/federation/music/libraries/368f2663-a893-48a7-9964-fa16e9dfe686", + "uuid": "368f2663-a893-48a7-9964-fa16e9dfe686", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/eggminster", + "url": null, + "creation_date": "2020-06-12T13:01:47.882522Z", + "summary": null, + "preferred_username": "eggminster", + "name": "eggminster", + "last_fetch_date": "2020-06-12T13:01:47.882539Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "eggminster@tanukitunes.com", + "is_local": true + }, + "name": "Funkopops are a sign of the ongoing decline of humanity", + "description": "", + "creation_date": "2020-06-12T17:48:27.761358Z", + "uploads_count": 5, + "privacy_level": "me", + "follow": null, + "latest_scan": null + }, + "approved": true +} \ No newline at end of file diff --git a/tests/data/federation/library_follow_all.json b/tests/data/federation/library_follow_all.json new file mode 100644 index 0000000000000000000000000000000000000000..bbaf061e7d1f843bde7561a8f159cd3ac8dc0ea8 --- /dev/null +++ b/tests/data/federation/library_follow_all.json @@ -0,0 +1,35 @@ +{ + "results": [ + { + "uuid": "e7bd7818-19a5-4326-ad20-29b07674131c", + "library": "70d09949-6d10-4ce8-b4d1-d3e2da9e7472", + "approved": true + }, + { + "uuid": "a40adfef-ad8c-4a91-9340-868b83f45ef5", + "library": "368f2663-a893-48a7-9964-fa16e9dfe686", + "approved": true + }, + { + "uuid": "d4aaa8a2-4ea4-4587-bdb4-7ee1ba156e1f", + "library": "1dd5e09b-d11a-4fd9-a530-65dd5e4685d9", + "approved": true + }, + { + "uuid": "76f3ded9-8778-462b-b89d-759c00d3cbe5", + "library": "77503fa6-705c-4cb1-bbbd-acb5e8f46a2a", + "approved": true + }, + { + "uuid": "290d87c1-802b-450a-b6b1-98395a4e1df8", + "library": "ef0db658-9f0a-4fa2-8292-688abd38726a", + "approved": true + }, + { + "uuid": "d1d6590b-e754-46c2-8801-99a9eb08184f", + "library": "9328bc68-1ac1-409a-b1e3-d69a470bc7bf", + "approved": null + } + ], + "count": 6 +} \ No newline at end of file diff --git a/tests/data/federation/library_follow_request.json b/tests/data/federation/library_follow_request.json new file mode 100644 index 0000000000000000000000000000000000000000..3d44fa1bc587948175e8be60cdaa484139ce84c0 --- /dev/null +++ b/tests/data/federation/library_follow_request.json @@ -0,0 +1,3 @@ +{ + "target": "a713f619-6a62-4aff-ad73-66c791920108" +} \ No newline at end of file diff --git a/tests/data/federation/paginated_library_follow_list.json b/tests/data/federation/paginated_library_follow_list.json new file mode 100644 index 0000000000000000000000000000000000000000..00a4ff88a757738f49c31b67aeb28b8ad0cc9724 --- /dev/null +++ b/tests/data/federation/paginated_library_follow_list.json @@ -0,0 +1,299 @@ +{ + "count": 6, + "next": null, + "previous": null, + "results": [ + { + "creation_date": "2020-12-04T20:32:13.794532Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "e7bd7818-19a5-4326-ad20-29b07674131c", + "target": { + "fid": "https://pigsty.silksow.com/federation/music/libraries/ba4dbaf4-d277-4b3e-8223-f258dac97538", + "uuid": "70d09949-6d10-4ce8-b4d1-d3e2da9e7472", + "actor": { + "fid": "https://pigsty.silksow.com/federation/actors/kylebronsdon", + "url": "https://pigsty.silksow.com/@kylebronsdon", + "creation_date": "2019-10-29T16:41:50.322108Z", + "summary": null, + "preferred_username": "kylebronsdon", + "name": "kylebronsdon", + "last_fetch_date": "2021-06-01T20:51:22.371615Z", + "domain": "pigsty.silksow.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "kylebronsdon@pigsty.silksow.com", + "is_local": false + }, + "name": "Kyle Bronsdon", + "description": "These works by Kyle Bronsdon are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License unless otherwise stated. \n\nFLAC format available free as in speech and free as in beer at kylebronsdon.com, as well as 130g vinyl and compact disc.\n\nAdditional licensing info at kylebronsdon.com/licensing.", + "creation_date": "2019-10-29T16:41:50.336976Z", + "uploads_count": 52, + "privacy_level": "everyone", + "follow": null, + "latest_scan": { + "total_files": 67, + "processed_files": 67, + "errored_files": 0, + "status": "finished", + "creation_date": "2020-12-04T20:32:15.907381Z", + "modification_date": "2020-12-04T20:32:21.866796Z" + } + }, + "approved": true + }, + { + "creation_date": "2020-06-12T18:39:40.855970Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "a40adfef-ad8c-4a91-9340-868b83f45ef5", + "target": { + "fid": "https://tanukitunes.com/federation/music/libraries/368f2663-a893-48a7-9964-fa16e9dfe686", + "uuid": "368f2663-a893-48a7-9964-fa16e9dfe686", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/eggminster", + "url": null, + "creation_date": "2020-06-12T13:01:47.882522Z", + "summary": null, + "preferred_username": "eggminster", + "name": "eggminster", + "last_fetch_date": "2020-06-12T13:01:47.882539Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "eggminster@tanukitunes.com", + "is_local": true + }, + "name": "Funkopops are a sign of the ongoing decline of humanity", + "description": "", + "creation_date": "2020-06-12T17:48:27.761358Z", + "uploads_count": 5, + "privacy_level": "me", + "follow": null, + "latest_scan": null + }, + "approved": true + }, + { + "creation_date": "2020-06-06T02:30:34.567111Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "d4aaa8a2-4ea4-4587-bdb4-7ee1ba156e1f", + "target": { + "fid": "https://tanukitunes.com/federation/music/libraries/1dd5e09b-d11a-4fd9-a530-65dd5e4685d9", + "uuid": "1dd5e09b-d11a-4fd9-a530-65dd5e4685d9", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/vim", + "url": null, + "creation_date": "2020-02-08T19:27:41.832556Z", + "summary": null, + "preferred_username": "vim", + "name": "vim", + "last_fetch_date": "2020-02-08T19:27:41.832576Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "vim@tanukitunes.com", + "is_local": true + }, + "name": "Stuff", + "description": "", + "creation_date": "2020-02-13T21:00:26.326033Z", + "uploads_count": 0, + "privacy_level": "me", + "follow": null, + "latest_scan": null + }, + "approved": true + }, + { + "creation_date": "2020-04-07T15:43:47.473366Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "76f3ded9-8778-462b-b89d-759c00d3cbe5", + "target": { + "fid": "https://audio.konsumsyndik.at/federation/music/libraries/0a1e2605-a549-4f3f-907e-5cc0acdbc248", + "uuid": "77503fa6-705c-4cb1-bbbd-acb5e8f46a2a", + "actor": { + "fid": "https://audio.konsumsyndik.at/federation/actors/funkmin", + "url": "https://audio.konsumsyndik.at/@funkmin", + "creation_date": "2020-03-23T15:23:18.818866Z", + "summary": null, + "preferred_username": "funkmin", + "name": "funkmin", + "last_fetch_date": "2021-06-10T09:47:07.577837Z", + "domain": "audio.konsumsyndik.at", + "type": "Person", + "manually_approves_followers": false, + "full_username": "funkmin@audio.konsumsyndik.at", + "is_local": false + }, + "name": "12rec", + "description": "Mirror of the Archive.Org / Bandcamp Site of the netlabel \"12rec\". Visit them here:\n\nhttp://www.12rec.net/\nhttps://12rec.bandcamp.com/", + "creation_date": "2020-04-05T07:12:53.727825Z", + "uploads_count": 389, + "privacy_level": "everyone", + "follow": null, + "latest_scan": { + "total_files": 389, + "processed_files": 389, + "errored_files": 0, + "status": "finished", + "creation_date": "2020-04-07T15:43:50.152898Z", + "modification_date": "2020-04-07T15:44:17.190598Z" + } + }, + "approved": true + }, + { + "creation_date": "2020-01-10T10:28:19.136666Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "290d87c1-802b-450a-b6b1-98395a4e1df8", + "target": { + "fid": "https://open.audio/federation/music/libraries/8d564e89-223e-4ed6-bda6-66eb7d157015", + "uuid": "ef0db658-9f0a-4fa2-8292-688abd38726a", + "actor": { + "fid": "https://open.audio/federation/actors/norwin", + "url": null, + "creation_date": "2020-01-10T10:28:17.994083Z", + "summary": null, + "preferred_username": "norwin", + "name": "norwin", + "last_fetch_date": "2020-01-16T17:36:47.430786Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "norwin@open.audio", + "is_local": false + }, + "name": "Smiletron", + "description": "I'm not affiliated; uploading here thanks to CC-BY-NC-SA/3.0 licensing.\n\nSupport the artist on https://smiletron.bandcamp.com/", + "creation_date": "2020-01-10T10:28:18.002581Z", + "uploads_count": 22, + "privacy_level": "everyone", + "follow": null, + "latest_scan": { + "total_files": 22, + "processed_files": 22, + "errored_files": 0, + "status": "finished", + "creation_date": "2021-05-09T12:40:20.175827Z", + "modification_date": "2021-05-09T12:40:22.568035Z" + } + }, + "approved": true + }, + { + "creation_date": "2019-03-09T22:05:39.710732Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "uuid": "d1d6590b-e754-46c2-8801-99a9eb08184f", + "target": { + "fid": "https://open.audio/federation/music/libraries/ce1fb6d4-fae6-464a-a34a-bdd46209ee82", + "uuid": "9328bc68-1ac1-409a-b1e3-d69a470bc7bf", + "actor": { + "fid": "https://open.audio/federation/actors/eliotberriot", + "url": "https://open.audio/@eliotberriot", + "creation_date": "2018-12-19T19:04:00.582750Z", + "summary": null, + "preferred_username": "eliotberriot", + "name": "eliotberriot", + "last_fetch_date": "2022-03-11T01:36:46.040291Z", + "domain": "open.audio", + "type": "Person", + "manually_approves_followers": false, + "full_username": "eliotberriot@open.audio", + "is_local": false + }, + "name": "Free Music Archive", + "description": "Content from this library comes from the http://freemusicarchive.org/ (mirrored from http://archive.org/details/freemusicarchive using https://dev.funkwhale.audio/funkwhale/archiveorg-dl)", + "creation_date": "2019-03-09T22:05:38.861082Z", + "uploads_count": 37959, + "privacy_level": "everyone", + "follow": null, + "latest_scan": { + "total_files": 37849, + "processed_files": 36732, + "errored_files": 0, + "status": "finished", + "creation_date": "2022-03-11T01:36:50.280090Z", + "modification_date": "2022-03-11T02:05:40.637087Z" + } + }, + "approved": null + } + ] +} \ No newline at end of file diff --git a/tests/data/history/listening.json b/tests/data/history/listening.json new file mode 100644 index 0000000000000000000000000000000000000000..13591a7e9d8e2103325641039ed6061cce9bf7d9 --- /dev/null +++ b/tests/data/history/listening.json @@ -0,0 +1,100 @@ +{ + "id": 16833, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5503, + "fid": "https://soundship.de/federation/music/albums/eebc9952-3d57-4d90-8719-16984c59669a", + "mbid": "b9573274-4d43-481b-bec6-17730a43cc7d", + "title": "Horehound", + "artist": { + "id": 6365, + "fid": "https://soundship.de/federation/music/artists/157cc06b-21c1-4980-ae1a-3d7711ecd210", + "mbid": "334bd887-9044-4c38-aebd-4baab851efb4", + "name": "The Dead Weather", + "creation_date": "2020-08-06T16:53:08.058248Z", + "modification_date": "2020-08-06T16:53:08.058348Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2009-07-14", + "cover": { + "uuid": "7fef6db8-bc14-4565-a0cf-ac9549692cfe", + "size": 58298, + "mimetype": "image/jpeg", + "creation_date": "2020-08-06T16:53:08.072452Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/2e/19/f8/attachment_cover-eebc9952-3d57-4d90-8719-16984c59669a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133632Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=78770533950e22e0b8d477798e451c7d54b762a71325e77fe3c6e7eae3001241", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2e/19/f8/attachment_cover-eebc9952-3d57-4d90-8719-16984c59669a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133632Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1ed50df6a89acb803533cb239176865986f299eab41056a032a7bc28a0b03a1a", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2e/19/f8/attachment_cover-eebc9952-3d57-4d90-8719-16984c59669a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133632Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=29a78a653461e7ad0a6d86173cac5ef5f6d57b77ca89b566cb50ecabbce76af0" + } + }, + "creation_date": "2020-08-06T16:53:08.066056Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e9784945-a51c-4c5a-93e4-662c97da2a73/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 46580, + "fid": "https://soundship.de/federation/music/tracks/e9784945-a51c-4c5a-93e4-662c97da2a73", + "mbid": "b1e8febc-e687-4487-881c-8b7b6a1e115c", + "title": "Bone House", + "artist": { + "id": 6365, + "fid": "https://soundship.de/federation/music/artists/157cc06b-21c1-4980-ae1a-3d7711ecd210", + "mbid": "334bd887-9044-4c38-aebd-4baab851efb4", + "name": "The Dead Weather", + "creation_date": "2020-08-06T16:53:08.058248Z", + "modification_date": "2020-08-06T16:53:08.058348Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-06T16:53:52.131889Z", + "is_local": true, + "position": 8, + "disc_number": 2, + "downloads_count": 11, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:31:18.508631Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } +} \ No newline at end of file diff --git a/tests/data/history/listening_write.json b/tests/data/history/listening_write.json new file mode 100644 index 0000000000000000000000000000000000000000..babe73d10a7796cfe354992643872d01a7933c57 --- /dev/null +++ b/tests/data/history/listening_write.json @@ -0,0 +1,6 @@ +{ + "id": 39662, + "user": 1, + "track": 43086, + "creation_date": "2022-09-25T15:26:09.314965Z" +} \ No newline at end of file diff --git a/tests/data/history/listening_write_request.json b/tests/data/history/listening_write_request.json new file mode 100644 index 0000000000000000000000000000000000000000..159dfe6006d0635f04040743fea1cc9d9735166a --- /dev/null +++ b/tests/data/history/listening_write_request.json @@ -0,0 +1,3 @@ +{ + "track": 43086 +} \ No newline at end of file diff --git a/tests/data/history/paginated_listening_list.json b/tests/data/history/paginated_listening_list.json new file mode 100644 index 0000000000000000000000000000000000000000..3045143e4c7da79b2bca4836e725ac2598a6e4e7 --- /dev/null +++ b/tests/data/history/paginated_listening_list.json @@ -0,0 +1,4985 @@ +{ + "count": 15260, + "next": "https://soundship.de/api/v1/history/listenings?page=2", + "previous": null, + "results": [ + { + "id": 16833, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5503, + "fid": "https://soundship.de/federation/music/albums/eebc9952-3d57-4d90-8719-16984c59669a", + "mbid": "b9573274-4d43-481b-bec6-17730a43cc7d", + "title": "Horehound", + "artist": { + "id": 6365, + "fid": "https://soundship.de/federation/music/artists/157cc06b-21c1-4980-ae1a-3d7711ecd210", + "mbid": "334bd887-9044-4c38-aebd-4baab851efb4", + "name": "The Dead Weather", + "creation_date": "2020-08-06T16:53:08.058248Z", + "modification_date": "2020-08-06T16:53:08.058348Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2009-07-14", + "cover": { + "uuid": "7fef6db8-bc14-4565-a0cf-ac9549692cfe", + "size": 58298, + "mimetype": "image/jpeg", + "creation_date": "2020-08-06T16:53:08.072452Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/2e/19/f8/attachment_cover-eebc9952-3d57-4d90-8719-16984c59669a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a83c5d852f3b4424d5bdf4978c58dc15f0360a7339b24c7f80e611d9e9f6a29", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2e/19/f8/attachment_cover-eebc9952-3d57-4d90-8719-16984c59669a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b77160456b00a4bb5526f6f29e13b2620455f2beeeec030f3a43e9ecb18ad3c", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2e/19/f8/attachment_cover-eebc9952-3d57-4d90-8719-16984c59669a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1d6e0261a97f0bf1c304f12506b65184572cdafc28ff0508b2a5088a2b2283d" + } + }, + "creation_date": "2020-08-06T16:53:08.066056Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e9784945-a51c-4c5a-93e4-662c97da2a73/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 46580, + "fid": "https://soundship.de/federation/music/tracks/e9784945-a51c-4c5a-93e4-662c97da2a73", + "mbid": "b1e8febc-e687-4487-881c-8b7b6a1e115c", + "title": "Bone House", + "artist": { + "id": 6365, + "fid": "https://soundship.de/federation/music/artists/157cc06b-21c1-4980-ae1a-3d7711ecd210", + "mbid": "334bd887-9044-4c38-aebd-4baab851efb4", + "name": "The Dead Weather", + "creation_date": "2020-08-06T16:53:08.058248Z", + "modification_date": "2020-08-06T16:53:08.058348Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-06T16:53:52.131889Z", + "is_local": true, + "position": 8, + "disc_number": 2, + "downloads_count": 11, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:31:18.508631Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16832, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 16, + "fid": "https://soundship.de/federation/music/albums/7ac4166a-4416-40a3-9c23-d976400310fa", + "mbid": "4f16eef9-a048-39d9-ae7f-f8359f657a2a", + "title": "Audioslave", + "artist": { + "id": 10, + "fid": "https://soundship.de/federation/music/artists/baa78eba-9351-4d6c-b2a7-b5131fa72f0d", + "mbid": "020bfbb4-05c3-4c86-b372-17825c262094", + "name": "Audioslave", + "creation_date": "2020-05-07T10:05:24.262138Z", + "modification_date": "2020-05-07T10:05:24.262212Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2002-11-20", + "cover": { + "uuid": "1fdc43e5-5704-482f-bff3-1e261a474735", + "size": 19992, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T10:05:24.273024Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/25/6d/bf/attachment_cover-7ac4166a-4416-40a3-9c23-d976400310fa.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e0f6e316f0efef20089c7f33e4f6503514e02700ecd9ae22b182ce7c3cc8479b", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/25/6d/bf/attachment_cover-7ac4166a-4416-40a3-9c23-d976400310fa-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2b1a6bcbebe1b88d6592812eb520fd97ca4c5eb6e9121f96bc5653c928efb101", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/25/6d/bf/attachment_cover-7ac4166a-4416-40a3-9c23-d976400310fa-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c8ef3a9a12f9532d2ea880142cfee66bc8948d382135ab5b2070261df2fc1ea1" + } + }, + "creation_date": "2020-05-07T10:05:24.269610Z", + "is_local": true, + "tracks_count": 28 + }, + "uploads": [], + "listen_url": "/api/v1/listen/8718cd58-368e-4751-a2e4-bc57c7940de8/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48727, + "fid": "https://soundship.de/federation/music/tracks/8718cd58-368e-4751-a2e4-bc57c7940de8", + "mbid": null, + "title": "Light My Way", + "artist": { + "id": 10, + "fid": "https://soundship.de/federation/music/artists/baa78eba-9351-4d6c-b2a7-b5131fa72f0d", + "mbid": "020bfbb4-05c3-4c86-b372-17825c262094", + "name": "Audioslave", + "creation_date": "2020-05-07T10:05:24.262138Z", + "modification_date": "2020-05-07T10:05:24.262212Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-08T12:31:15.656058Z", + "is_local": true, + "position": 12, + "disc_number": null, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:27:01.779364Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16831, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 37, + "fid": "https://soundship.de/federation/music/albums/5614acf7-855e-4ba5-a273-042ebcf0045e", + "mbid": "2a9863ea-4c24-4a30-ad12-9e3f081af3b7", + "title": "Die Ärzte", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1986-01-01", + "cover": { + "uuid": "4ae59789-1cbc-4b96-bb68-a4e4fe201b19", + "size": 63051, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T12:31:47.308067Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/1f/e6/39/attachment_cover-5614acf7-855e-4ba5-a273-042ebcf0045e.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a386f6066b06891253563e3b505165f81b5539872f73123a5851f72dd1596e0", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1f/e6/39/attachment_cover-5614acf7-855e-4ba5-a273-042ebcf0045e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d10b69f562ce6854d7e194116e1e88040ca8ee354bb365b07ffa206c2c91318e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1f/e6/39/attachment_cover-5614acf7-855e-4ba5-a273-042ebcf0045e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8836464170e1732ff75ec440802db4fe048829ea806d4850e079c922ac7c4ef0" + } + }, + "creation_date": "2020-05-07T12:31:47.302581Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/1d2ae4fa-a85c-4785-9f25-b9e0204e9970/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 468, + "fid": "https://soundship.de/federation/music/tracks/1d2ae4fa-a85c-4785-9f25-b9e0204e9970", + "mbid": "61ae29dd-588d-4426-b81f-82037de20328", + "title": "Geschwisterliebe", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T12:33:13.309885Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:23:33.692743Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16830, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5637, + "fid": "https://soundship.de/federation/music/albums/16f85dc1-2ef7-44b9-9889-c0769264e1b0", + "mbid": "cd4d5a1a-25fc-3393-afed-d0ca85d10ff2", + "title": "Billy Talent III", + "artist": { + "id": 6437, + "fid": "https://soundship.de/federation/music/artists/cc0cb7de-8e38-4506-a5a4-7c515e4f1246", + "mbid": "fd429857-5ace-4609-ae54-1502c3bdac11", + "name": "Billy Talent", + "creation_date": "2020-12-08T11:48:24.048839Z", + "modification_date": "2020-12-08T11:48:24.048978Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2009-07-10", + "cover": { + "uuid": "bd7b097b-b124-4f05-82cf-d168df9ce6f1", + "size": 35558, + "mimetype": "image/jpeg", + "creation_date": "2020-12-08T11:51:37.527636Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a6/38/bb/attachment_cover-16f85dc1-2ef7-44b9-9889-c0769264e1b0.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=91cc99e5b4411597522980b9162aa9db03470898d8d460515ec682ba6b178439", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a6/38/bb/attachment_cover-16f85dc1-2ef7-44b9-9889-c0769264e1b0-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4d53b5dc7f9b9fbe89d7e8aa431fa877dd94b18d8e40b63ce38380006c08ae8e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a6/38/bb/attachment_cover-16f85dc1-2ef7-44b9-9889-c0769264e1b0-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8f526a0af6ea202117084fc0f882fe3f486f32595320174d07750f8315f85d0f" + } + }, + "creation_date": "2020-12-08T11:51:37.517881Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/cbf2c0fa-7ed4-48cd-9d54-f03e2f286411/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48516, + "fid": "https://soundship.de/federation/music/tracks/cbf2c0fa-7ed4-48cd-9d54-f03e2f286411", + "mbid": "5b80ebb5-0eb4-48e3-aea1-290a28914de4", + "title": "Turn Your Back", + "artist": { + "id": 6437, + "fid": "https://soundship.de/federation/music/artists/cc0cb7de-8e38-4506-a5a4-7c515e4f1246", + "mbid": "fd429857-5ace-4609-ae54-1502c3bdac11", + "name": "Billy Talent", + "creation_date": "2020-12-08T11:48:24.048839Z", + "modification_date": "2020-12-08T11:48:24.048978Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-08T11:52:54.156728Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 10, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:19:46.937132Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16829, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5654, + "fid": "https://soundship.de/federation/music/albums/7020cb63-110f-485a-9163-a6506a0a2235", + "mbid": "8a5c31a8-fda6-43c2-ba9b-fcfbd7a13864", + "title": "Expedition ins O", + "artist": { + "id": 5, + "fid": "https://soundship.de/federation/music/artists/9e5da1f0-0890-4bcb-a03b-38364f092ce4", + "mbid": "ee0d1ef4-876b-49cd-a8fe-a48725c128af", + "name": "Käptn Peng & Die Tentakel von Delphi", + "creation_date": "2020-05-07T08:15:43.018929Z", + "modification_date": "2020-05-07T08:15:43.019201Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2013-04-12", + "cover": { + "uuid": "34ec3764-4f97-4128-821b-a220f509fae3", + "size": 1321915, + "mimetype": "image/jpeg", + "creation_date": "2020-12-09T09:38:42.008640Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/77/04/38/attachment_cover-7020cb63-110f-485a-9163-a6506a0a2235.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e7e14ba92af505a50efcd3710bc7645f5ea17d7c0df788ed071eaa07b0838c83", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/77/04/38/attachment_cover-7020cb63-110f-485a-9163-a6506a0a2235-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d165c863e31c74c9aae85b03d03544e9b42b713df0d1bc0f3d2649633d5687e2", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/77/04/38/attachment_cover-7020cb63-110f-485a-9163-a6506a0a2235-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=46c3be17909bd9a173d1eec0e0ff4c9a6f7c5d180520b59222c94c84a2cd17e6" + } + }, + "creation_date": "2020-12-09T09:38:36.721692Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/27b263d4-33e9-4e1f-8a21-02d66cd61507/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48749, + "fid": "https://soundship.de/federation/music/tracks/27b263d4-33e9-4e1f-8a21-02d66cd61507", + "mbid": "0adc9459-edc4-4e36-9564-c50a501c73b5", + "title": "Es ist", + "artist": { + "id": 5, + "fid": "https://soundship.de/federation/music/artists/9e5da1f0-0890-4bcb-a03b-38364f092ce4", + "mbid": "ee0d1ef4-876b-49cd-a8fe-a48725c128af", + "name": "Käptn Peng & Die Tentakel von Delphi", + "creation_date": "2020-05-07T08:15:43.018929Z", + "modification_date": "2020-05-07T08:15:43.019201Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T09:39:09.168085Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:16:28.608578Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16828, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5505, + "fid": "https://soundship.de/federation/music/albums/73a06989-600e-4820-a588-11fe28c9d8f7", + "mbid": "d9e1a28a-1e4c-47bb-b2ca-d6b568b612a9", + "title": "El Camino", + "artist": { + "id": 6366, + "fid": "https://soundship.de/federation/music/artists/342bc240-9955-44d4-92a4-7f5909803878", + "mbid": "d15721d8-56b4-453d-b506-fc915b14cba2", + "name": "The Black Keys", + "creation_date": "2020-08-06T16:54:23.012571Z", + "modification_date": "2020-08-06T16:54:23.012676Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2011-12-06", + "cover": { + "uuid": "7ebe1c55-81c7-4ae8-ae3e-dd6b85fdf9af", + "size": 59644, + "mimetype": "image/jpeg", + "creation_date": "2020-08-06T16:56:15.670401Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/3a/ec/7a/attachment_cover-73a06989-600e-4820-a588-11fe28c9d8f7.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6a03612e1892a55db20135f44f08823d8af951fc024bd33aa6c652a9f7c6eb91", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3a/ec/7a/attachment_cover-73a06989-600e-4820-a588-11fe28c9d8f7-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=59d8030a85237bade6a27894d159d6eaf9c09e378705e28a62539e0ddb11964f", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/3a/ec/7a/attachment_cover-73a06989-600e-4820-a588-11fe28c9d8f7-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f44d0b1a0ad881b6997680ea8adc66bc91759373338932d86066d14c1f089f3d" + } + }, + "creation_date": "2020-08-06T16:56:15.665054Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/5cdc8199-4548-49e0-bf44-06550a7599ac/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 46605, + "fid": "https://soundship.de/federation/music/tracks/5cdc8199-4548-49e0-bf44-06550a7599ac", + "mbid": "6b64a82d-0aa8-430e-bf25-26aa4c569af0", + "title": "Sister", + "artist": { + "id": 6366, + "fid": "https://soundship.de/federation/music/artists/342bc240-9955-44d4-92a4-7f5909803878", + "mbid": "d15721d8-56b4-453d-b506-fc915b14cba2", + "name": "The Black Keys", + "creation_date": "2020-08-06T16:54:23.012571Z", + "modification_date": "2020-08-06T16:54:23.012676Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-06T16:57:12.701926Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 17, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:13:09.876027Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16827, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5623, + "fid": "https://soundship.de/federation/music/albums/e73abb0e-d16a-4f99-8911-f6062466624e", + "mbid": "894a3aff-2a83-404d-b195-46bc0ca71a43", + "title": "Eins A", + "artist": { + "id": 6432, + "fid": "https://soundship.de/federation/music/artists/1b5816f8-aad4-4450-bb46-e5966de5b76f", + "mbid": "3eab4de9-a578-4327-8909-f90ffc1b8ae5", + "name": "Blumentopf", + "creation_date": "2020-12-07T13:09:01.467377Z", + "modification_date": "2020-12-07T13:09:01.467608Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2001-10-01", + "cover": { + "uuid": "96c96385-684d-4e59-b9f6-f052ed8202c3", + "size": 25722, + "mimetype": "image/jpeg", + "creation_date": "2020-12-07T13:09:01.500710Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/34/61/80/attachment_cover-e73abb0e-d16a-4f99-8911-f6062466624e.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6b495837004b606418f2a2759939f0bf6ea69080edac20ac77520a83032fa013", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/34/61/80/attachment_cover-e73abb0e-d16a-4f99-8911-f6062466624e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=83f09ca09869c6740953e4c99368659a87265221177884680e12b5c8b2219fc6", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/34/61/80/attachment_cover-e73abb0e-d16a-4f99-8911-f6062466624e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ea61be040cd388d0962b4df69a0f0e5349c187550bc8cd245e5889ac811df05c" + } + }, + "creation_date": "2020-12-07T13:09:01.488460Z", + "is_local": true, + "tracks_count": 19 + }, + "uploads": [], + "listen_url": "/api/v1/listen/fa1bc233-8572-496e-913a-4418907fca9d/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48313, + "fid": "https://soundship.de/federation/music/tracks/fa1bc233-8572-496e-913a-4418907fca9d", + "mbid": "77056318-0205-4e91-a8b0-744b8ba9af2f", + "title": "Danke", + "artist": { + "id": 6432, + "fid": "https://soundship.de/federation/music/artists/1b5816f8-aad4-4450-bb46-e5966de5b76f", + "mbid": "3eab4de9-a578-4327-8909-f90ffc1b8ae5", + "name": "Blumentopf", + "creation_date": "2020-12-07T13:09:01.467377Z", + "modification_date": "2020-12-07T13:09:01.467608Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-07T13:11:17.236008Z", + "is_local": true, + "position": 19, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:09:14.279667Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16826, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 17, + "fid": "https://soundship.de/federation/music/albums/e209015f-462d-4fb2-a3a4-cd8f13351136", + "mbid": "0a85b305-3d31-4cf0-87a4-3511370d2770", + "title": "Best of Jimi Hendrix", + "artist": { + "id": 11, + "fid": "https://soundship.de/federation/music/artists/13800713-5f90-41f9-a089-21a61cd28c1a", + "mbid": "06fb1c8b-566e-4cb2-985b-b467c90781d4", + "name": "Jimi Hendrix", + "creation_date": "2020-05-07T10:05:51.314796Z", + "modification_date": "2020-05-07T10:05:51.314866Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1999-01-01", + "cover": { + "uuid": "bbbcc976-080a-4270-a406-1321b7800265", + "size": 24994, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T10:05:52.577594Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/79/14/6b/attachment_cover-e209015f-462d-4fb2-a3a4-cd8f13351136.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=37f10e2b5aa735f2dcc2eab82ec03f785af3bc4bb60153c709d697cce69276ec", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/79/14/6b/attachment_cover-e209015f-462d-4fb2-a3a4-cd8f13351136-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4720255402b3b8d93ad1f645b1884c3a7c8f024245b4f63f13e7de51e29257c0", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/79/14/6b/attachment_cover-e209015f-462d-4fb2-a3a4-cd8f13351136-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=996867fcad2267fd3909ba2ff89127ea7bcef78880db18635ed57171997f62f5" + } + }, + "creation_date": "2020-05-07T10:05:51.323299Z", + "is_local": true, + "tracks_count": 23 + }, + "uploads": [], + "listen_url": "/api/v1/listen/89614632-fef3-4cf2-a198-d1bd0c38b238/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 147, + "fid": "https://soundship.de/federation/music/tracks/89614632-fef3-4cf2-a198-d1bd0c38b238", + "mbid": "6146cf8f-f348-4370-8230-ed0e26d3a068", + "title": "Purple Haze", + "artist": { + "id": 11, + "fid": "https://soundship.de/federation/music/artists/13800713-5f90-41f9-a089-21a61cd28c1a", + "mbid": "06fb1c8b-566e-4cb2-985b-b467c90781d4", + "name": "Jimi Hendrix", + "creation_date": "2020-05-07T10:05:51.314796Z", + "modification_date": "2020-05-07T10:05:51.314866Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T10:05:56.947075Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 9, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T13:05:38.142639Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16825, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5576, + "fid": "https://soundship.de/federation/music/albums/83d20f0d-ce68-4090-9810-8eea8aafc2a8", + "mbid": "21dce63d-5213-4138-bc28-5b9dc55efe33", + "title": "Das Island Manöver", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2010-04-09", + "cover": { + "uuid": "ecc44817-81f7-440d-8e7b-cbb2140d959c", + "size": 59215, + "mimetype": "image/jpeg", + "creation_date": "2020-08-27T18:53:18.219045Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/8c/76/ef/attachment_cover-83d20f0d-ce68-4090-9810-8eea8aafc2a8.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=90fef11f5524278722622e159f47236f986a2f7d02b2714f57a9473469d64c25", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/76/ef/attachment_cover-83d20f0d-ce68-4090-9810-8eea8aafc2a8-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ec38165b1856bc533959ec4878ced6dfe9d2e241387d6286d4ea6646e505e74e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/76/ef/attachment_cover-83d20f0d-ce68-4090-9810-8eea8aafc2a8-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ed8073428c5eee2ec1a0452b93501157861c085f7f9348dd786f62eaaaca6902" + } + }, + "creation_date": "2020-08-27T18:53:18.198114Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/6877e853-1a82-4680-9bfb-1db3dca75693/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 47724, + "fid": "https://soundship.de/federation/music/tracks/6877e853-1a82-4680-9bfb-1db3dca75693", + "mbid": "5c166242-615e-4376-b8df-70057ff9ba1d", + "title": "Fraukes Ende", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-28T06:28:06.482212Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 9, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T12:53:19.202004Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16824, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5145, + "fid": "https://soundship.de/federation/music/albums/6c5b06d2-879b-4eb7-b093-abfb654f1a62", + "mbid": "1aec03bf-ee85-4ad9-a54b-8b286f2d5577", + "title": "The Battle of Los Angeles", + "artist": { + "id": 6235, + "fid": "https://soundship.de/federation/music/artists/405f03e4-bec2-4d89-83cf-7ed2d4b99647", + "mbid": "3798b104-01cb-484c-a3b0-56adc6399b80", + "name": "Rage Against the Machine", + "creation_date": "2020-05-10T16:14:29.403117Z", + "modification_date": "2020-05-10T16:14:29.403277Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1999-11-02", + "cover": { + "uuid": "8dcd5916-fe80-416e-b93a-c1cbad57ed5d", + "size": 64904, + "mimetype": "image/jpeg", + "creation_date": "2020-05-10T17:15:06.639698Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/77/75/84/attachment_cover-6c5b06d2-879b-4eb7-b093-abfb654f1a62.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3eb07e7d4a6263636297c59bbfb8daa7375fd7cab83680e06f12dc9d4f7d3d60", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/77/75/84/attachment_cover-6c5b06d2-879b-4eb7-b093-abfb654f1a62-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fb253f8b990e01c6069a83c580a19793050475e8137400c3348186762eace01d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/77/75/84/attachment_cover-6c5b06d2-879b-4eb7-b093-abfb654f1a62-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9afd7d0d69f4871daa0745115ddd489561c85659aff1bd41232b8f200c78b691" + } + }, + "creation_date": "2020-05-10T17:15:06.636002Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/25655423-85a6-42b5-9a83-ccefd28eaa7e/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 38378, + "fid": "https://soundship.de/federation/music/tracks/25655423-85a6-42b5-9a83-ccefd28eaa7e", + "mbid": "82c1b8e7-d28b-4c1d-8d50-25ad57215a2e", + "title": "Calm Like a Bomb", + "artist": { + "id": 6235, + "fid": "https://soundship.de/federation/music/artists/405f03e4-bec2-4d89-83cf-7ed2d4b99647", + "mbid": "3798b104-01cb-484c-a3b0-56adc6399b80", + "name": "Rage Against the Machine", + "creation_date": "2020-05-10T16:14:29.403117Z", + "modification_date": "2020-05-10T16:14:29.403277Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-10T17:17:48.978728Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 8, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-24T12:50:48.798824Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16823, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 62, + "fid": "https://soundship.de/federation/music/albums/0cc8d9dc-5eac-41ae-bca4-d82599978b62", + "mbid": "20f24b56-4e53-45ac-91f9-6c8dbd0bd3dc", + "title": "Bleiben oder Gehen", + "artist": { + "id": 20, + "fid": "https://soundship.de/federation/music/artists/475b137a-c420-4521-95d7-f2eb7bedb66c", + "mbid": "18fd16ff-1807-4951-bfcf-700018019edb", + "name": "Feine Sahne Fischfilet", + "creation_date": "2020-05-07T15:30:35.446806Z", + "modification_date": "2020-05-07T15:30:35.446887Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2015-01-23", + "cover": { + "uuid": "440f4472-4f1e-4a6b-85d3-1c5e7b22adb6", + "size": 114518, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T15:30:35.456059Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/ea/5e/b7/attachment_cover-0cc8d9dc-5eac-41ae-bca4-d82599978b62.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c9b96a4d63bae24004a031b7dddf335d55b2a8769977a6a62abe52fd192de933", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ea/5e/b7/attachment_cover-0cc8d9dc-5eac-41ae-bca4-d82599978b62-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=89d966122d3dc83f689dd2b91d47d58377fc332a278b22d19f12d8c4da61123c", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ea/5e/b7/attachment_cover-0cc8d9dc-5eac-41ae-bca4-d82599978b62-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=290bbb844be04f439be942ad3bde347dc88c96cc218beeb94473ef3f5dc0befb" + } + }, + "creation_date": "2020-05-07T15:30:35.452143Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/5395346d-a2fe-423b-a21f-e247e8cef089/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 902, + "fid": "https://soundship.de/federation/music/tracks/5395346d-a2fe-423b-a21f-e247e8cef089", + "mbid": "214ce946-d76b-4377-b8a1-60b891abf0dd", + "title": "Glitzer im Gesicht", + "artist": { + "id": 20, + "fid": "https://soundship.de/federation/music/artists/475b137a-c420-4521-95d7-f2eb7bedb66c", + "mbid": "18fd16ff-1807-4951-bfcf-700018019edb", + "name": "Feine Sahne Fischfilet", + "creation_date": "2020-05-07T15:30:35.446806Z", + "modification_date": "2020-05-07T15:30:35.446887Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T15:31:24.825148Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T12:25:59.907552Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16822, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5594, + "fid": "https://soundship.de/federation/music/albums/467c8c81-cc8f-4313-b610-d11f2e4b0349", + "mbid": "c06d5b18-af19-41ee-9210-8904f2465c0e", + "title": "Migration", + "artist": { + "id": 6415, + "fid": "https://soundship.de/federation/music/artists/83d3d776-cbe5-4a88-b01a-a9cdecaab620", + "mbid": "9a709693-b4f8-4da9-8cc1-038c911a61be", + "name": "Bonobo", + "creation_date": "2020-10-22T06:24:19.949676Z", + "modification_date": "2020-10-22T06:24:19.950693Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2017-01-13", + "cover": { + "uuid": "ed47af3f-1842-47f6-8d3c-2f040812e06f", + "size": 3947531, + "mimetype": "image/jpeg", + "creation_date": "2020-10-22T06:59:09.768364Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/8c/c5/71/attachment_cover-467c8c81-cc8f-4313-b610-d11f2e4b0349.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4bd594bb52f9e6532e056fde6cac5e0df6dd0a6b3e565ce86e98adfe19276b74", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/c5/71/attachment_cover-467c8c81-cc8f-4313-b610-d11f2e4b0349-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=dba086ce6f5f07713f47c345072ea540277946db6bcab35a524e0a526c0bcf2d", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/c5/71/attachment_cover-467c8c81-cc8f-4313-b610-d11f2e4b0349-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2370ccedc2f6beeb082b08f3b5ca184b71e28575d70535e45cc65f6eea72cf7e" + } + }, + "creation_date": "2020-10-22T06:59:09.752991Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/f1f99655-8ceb-4932-a527-b65143b69e73/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 47914, + "fid": "https://soundship.de/federation/music/tracks/f1f99655-8ceb-4932-a527-b65143b69e73", + "mbid": "e7ea9322-fd6a-4ac2-b95f-090cffbf996b", + "title": "7th Sevens", + "artist": { + "id": 6415, + "fid": "https://soundship.de/federation/music/artists/83d3d776-cbe5-4a88-b01a-a9cdecaab620", + "mbid": "9a709693-b4f8-4da9-8cc1-038c911a61be", + "name": "Bonobo", + "creation_date": "2020-10-22T06:24:19.949676Z", + "modification_date": "2020-10-22T06:24:19.950693Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-10-22T07:07:31.591761Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T12:05:31.840892Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16821, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=eb25464edd7b78c351e2e833ec71b47ace703b233766b64f41d628963adb9656", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=10eaa03d5cff60a73828f23324365ebe332c1e30c87f319cf41f0bc26930acbf", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=86e2a0e5be4fdcdb873558de924904648100e65eb7c75da9c7c56520b79b4ec5" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/fd0fe963-99f0-420c-9001-0a07d5388038/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160859, + "fid": "https://soundship.de/federation/music/tracks/fd0fe963-99f0-420c-9001-0a07d5388038", + "mbid": "caec11c5-4ed2-4a8e-8d9b-779336221814", + "title": "The Secret of Monkey Island Bonus", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2022-09-23T11:50:19.546089Z", + "is_local": true, + "position": 14, + "disc_number": 1, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T12:00:06.277383Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16820, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5579, + "fid": "https://soundship.de/federation/music/albums/bfd81482-f05e-48d6-8f80-dbb40132f035", + "mbid": "b249a862-3311-4f54-aa8e-808e4fdd8aaa", + "title": "Stadt der Angst", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2013-04-05", + "cover": { + "uuid": "22affe2f-5e38-4852-8c44-802219df2e53", + "size": 14133, + "mimetype": "image/jpeg", + "creation_date": "2020-08-27T18:56:18.188418Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/33/73/4c/attachment_cover-bfd81482-f05e-48d6-8f80-dbb40132f035.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9cb5bc5d91755ced38cb08590eaf78d0c54dc9376d39b11d63bd447e0fe69c0e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/33/73/4c/attachment_cover-bfd81482-f05e-48d6-8f80-dbb40132f035-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=461204b91ce1235c770060022b28f99942c645f460d606fdb00d2e88e871e09b", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/33/73/4c/attachment_cover-bfd81482-f05e-48d6-8f80-dbb40132f035-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=48c5213bbad12452741b1f0c803089bf7ea3a932909ff2651ac6c580e665e929" + } + }, + "creation_date": "2020-08-27T18:56:18.180721Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b6d0aacd-3d2a-4824-86d8-4b2794069a11/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 47679, + "fid": "https://soundship.de/federation/music/tracks/b6d0aacd-3d2a-4824-86d8-4b2794069a11", + "mbid": "1d1f5b79-84d9-40b6-b7f9-f1d93bc8a0a8", + "title": "In Dunkelhaft", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-27T18:58:10.265691Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:55:32.724733Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16819, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5651, + "fid": "https://soundship.de/federation/music/albums/89af27dc-b72f-4e54-8c33-60a4d35f56f6", + "mbid": "fd86e189-3819-33ad-bda7-8980f9daf510", + "title": "White Trash Beautiful", + "artist": { + "id": 6441, + "fid": "https://soundship.de/federation/music/artists/3aad56d0-9d5b-442b-b69d-63bc66b73763", + "mbid": "ca39d50f-9885-420e-88d6-9c3f64038773", + "name": "Everlast", + "creation_date": "2020-12-08T12:12:56.032760Z", + "modification_date": "2020-12-08T12:12:56.032960Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2004-01-01", + "cover": { + "uuid": "3ad724b0-5a4b-41cc-a57f-43cd4f5584b5", + "size": 56115, + "mimetype": "image/jpeg", + "creation_date": "2020-12-08T12:25:23.559780Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/36/bb/7e/attachment_cover-89af27dc-b72f-4e54-8c33-60a4d35f56f6.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6450083da21b4ba0363d22be8cce711b4fa6ec04b8bc6f8cdab02ba6dcf45d4a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/bb/7e/attachment_cover-89af27dc-b72f-4e54-8c33-60a4d35f56f6-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8b68932051e03b0dc549b7ae12ed599e3bed47af040eeab8076126f2da578e14", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/bb/7e/attachment_cover-89af27dc-b72f-4e54-8c33-60a4d35f56f6-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e1de33bd0da5586664dac9353f2c5208a5205f6318146dbbc1b80297b74752a6" + } + }, + "creation_date": "2020-12-08T12:25:23.555054Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/92b3d4e6-617f-44c2-8f68-502344e37a85/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48691, + "fid": "https://soundship.de/federation/music/tracks/92b3d4e6-617f-44c2-8f68-502344e37a85", + "mbid": "c9f61414-8ee6-47aa-ab33-4b28f3382092", + "title": "God Wanna", + "artist": { + "id": 6441, + "fid": "https://soundship.de/federation/music/artists/3aad56d0-9d5b-442b-b69d-63bc66b73763", + "mbid": "ca39d50f-9885-420e-88d6-9c3f64038773", + "name": "Everlast", + "creation_date": "2020-12-08T12:12:56.032760Z", + "modification_date": "2020-12-08T12:12:56.032960Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-08T12:26:35.232867Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:51:37.340745Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16818, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 7956, + "fid": "https://soundship.de/federation/music/albums/a1544486-d5bf-4256-afd7-cca1215e0114", + "mbid": null, + "title": "Home", + "artist": { + "id": 7845, + "fid": "https://soundship.de/federation/music/artists/aa6bb25c-869b-4b89-ac24-1d80b56b99b3", + "mbid": "None", + "name": "Hania Rani", + "creation_date": "2021-04-09T06:59:03.461334Z", + "modification_date": "2021-04-09T06:59:03.461665Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2020-01-01", + "cover": { + "uuid": "b2bc64a4-3219-496a-ae7a-b4eb0df8597d", + "size": 124925, + "mimetype": "image/jpeg", + "creation_date": "2021-04-09T06:59:03.568929Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b1/45/10/attachment_cover-a1544486-d5bf-4256-afd7-cca1215e0114.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=77987c20ff99c2c6e58ad6869ffce41872e994892fb67a825b468d3989d55849", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b1/45/10/attachment_cover-a1544486-d5bf-4256-afd7-cca1215e0114-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6f4a9e83292b0198b44f103377d8cb8f4974a77f17ece1a526f6053d454b263c", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b1/45/10/attachment_cover-a1544486-d5bf-4256-afd7-cca1215e0114-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0be8a43e1882bd5874b49f52a68b02f9419679455dee60d36cd3182918a71f32" + } + }, + "creation_date": "2021-04-09T06:59:03.536610Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a787a819-30ed-447f-bc8a-80c7ffe42d05/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 78829, + "fid": "https://soundship.de/federation/music/tracks/a787a819-30ed-447f-bc8a-80c7ffe42d05", + "mbid": null, + "title": "Tennen", + "artist": { + "id": 7845, + "fid": "https://soundship.de/federation/music/artists/aa6bb25c-869b-4b89-ac24-1d80b56b99b3", + "mbid": "None", + "name": "Hania Rani", + "creation_date": "2021-04-09T06:59:03.461334Z", + "modification_date": "2021-04-09T06:59:03.461665Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2021-04-09T07:17:34.130807Z", + "is_local": true, + "position": 10, + "disc_number": null, + "downloads_count": 14, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:46:20.051432Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16817, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5633, + "fid": "https://soundship.de/federation/music/albums/25de82d5-b567-4c6e-ad67-529748a1ee6d", + "mbid": "e506a566-203c-4773-bcb4-045dcc7970da", + "title": "Lost in Manele", + "artist": { + "id": 6435, + "fid": "https://soundship.de/federation/music/artists/3e038973-44b1-4a41-8883-4b7971378c92", + "mbid": "e4a1117b-a155-4753-a3e9-807149122af6", + "name": "Äl Jawala", + "creation_date": "2020-12-08T11:45:37.552811Z", + "modification_date": "2020-12-08T11:45:37.553801Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2008-09-19", + "cover": { + "uuid": "cf89c47a-fe96-4bb5-8ffc-2e72c7c03671", + "size": 83863, + "mimetype": "image/jpeg", + "creation_date": "2020-12-08T11:45:37.680153Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/7d/95/aa/attachment_cover-25de82d5-b567-4c6e-ad67-529748a1ee6d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cf61b91361e4b813394db13df4a708ea25ed31ab9dc161b25e289d0039c58fa9", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/7d/95/aa/attachment_cover-25de82d5-b567-4c6e-ad67-529748a1ee6d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5bbd8ec4d5d766ab61a199a2cfc95949293cc553df37f8f547ab43dde621c13b", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/7d/95/aa/attachment_cover-25de82d5-b567-4c6e-ad67-529748a1ee6d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=99a894fca2097e01228c7c069b6f086568c8a636baf7da3ebe04c53def8d0e36" + } + }, + "creation_date": "2020-12-08T11:45:37.627493Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/2ce11626-1617-4650-9418-71a02802ec67/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48469, + "fid": "https://soundship.de/federation/music/tracks/2ce11626-1617-4650-9418-71a02802ec67", + "mbid": "c2f19c14-44b1-4f07-9518-726d85f2045e", + "title": "Fönky II", + "artist": { + "id": 6435, + "fid": "https://soundship.de/federation/music/artists/3e038973-44b1-4a41-8883-4b7971378c92", + "mbid": "e4a1117b-a155-4753-a3e9-807149122af6", + "name": "Äl Jawala", + "creation_date": "2020-12-08T11:45:37.552811Z", + "modification_date": "2020-12-08T11:45:37.553801Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-08T11:47:13.063076Z", + "is_local": true, + "position": 13, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:40:06.736634Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16816, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 41, + "fid": "https://soundship.de/federation/music/albums/b480fb11-1882-4486-bdf8-4e8f4f2471c4", + "mbid": "6d6d9921-6fe2-4a54-babf-17be50b5868c", + "title": "Planet Punk", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1995-01-01", + "cover": { + "uuid": "3b1e396d-5a75-4675-a23f-423b9175b647", + "size": 118278, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T12:58:40.394248Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a1/8f/8c/attachment_cover-b480fb11-1882-4486-bdf8-4e8f4f2471c4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f804c620fce13b7739236a195230837bcfe014fe60e40eccd40228af025d89dd", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a1/8f/8c/attachment_cover-b480fb11-1882-4486-bdf8-4e8f4f2471c4-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9383173f075c0294e0d3d2dd04e534cbe8777b50262c2a5375d37bb6a71abed7", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a1/8f/8c/attachment_cover-b480fb11-1882-4486-bdf8-4e8f4f2471c4-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2776136ae111a0406459eae161ca7a0b59d5c0b9a15d8f5beebf333defc69cab" + } + }, + "creation_date": "2020-05-07T12:58:40.390322Z", + "is_local": true, + "tracks_count": 17 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a54ee358-670c-48ba-8b84-d8b04245cb87/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 537, + "fid": "https://soundship.de/federation/music/tracks/a54ee358-670c-48ba-8b84-d8b04245cb87", + "mbid": "59b89503-9f4e-4c6b-810b-850fb660cf69", + "title": "Hurra", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T12:59:30.092252Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:35:14.190489Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16815, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 67, + "fid": "https://soundship.de/federation/music/albums/4eff8b4d-37fe-46a0-867f-aeac528ee858", + "mbid": "e92f9e61-a537-3e4b-a216-4ee6263c3096", + "title": "One by One", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2002-10-21", + "cover": { + "uuid": "a5a6f88d-2079-405d-9870-258ae02325d4", + "size": 212885, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T15:59:55.340089Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/70/65/56/attachment_cover-4eff8b4d-37fe-46a0-867f-aeac528ee858.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b6f1b3b39f6e68395df1886a88f5bf8418364a551751d43fe210e6ff835b2e32", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/70/65/56/attachment_cover-4eff8b4d-37fe-46a0-867f-aeac528ee858-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=268f59ea5343678013ab7a647b5326637e9ed6305387e3ea1b91d8dcdacf10ed", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/70/65/56/attachment_cover-4eff8b4d-37fe-46a0-867f-aeac528ee858-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac01d3aad0f4936c228c2a856575de1371704870974d678697751adeb7fe03fb" + } + }, + "creation_date": "2020-05-07T15:59:55.334883Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/48ced93b-5b77-43c8-b8dd-2986b5a7e92a/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 974, + "fid": "https://soundship.de/federation/music/tracks/48ced93b-5b77-43c8-b8dd-2986b5a7e92a", + "mbid": "a1a71d5b-b260-4f16-987b-062b4a3b1f59", + "title": "Halo", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T16:03:02.192098Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 5, + "copyright": "© 2002 Roswell/RCA Records", + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:30:57.260308Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16814, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5250, + "fid": "https://soundship.de/federation/music/albums/901492fb-fb6a-41b1-9951-35e0f562597d", + "mbid": null, + "title": "Akureyri", + "artist": { + "id": 6331, + "fid": "https://soundship.de/federation/music/artists/a44799ed-0838-4271-a104-4c11f517985a", + "mbid": "None", + "name": "Welten", + "creation_date": "2020-06-12T11:13:09.163866Z", + "modification_date": "2020-06-12T11:13:09.163993Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2019-01-01", + "cover": { + "uuid": "6b18b375-35b2-404d-a353-961bd39a7825", + "size": 149113, + "mimetype": "image/jpeg", + "creation_date": "2020-06-12T11:28:42.402488Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/16/c8/37/attachment_cover-901492fb-fb6a-41b1-9951-35e0f562597d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7ad9fa7ce984d2ac5e932a03d373bba52af46bc8621e075b2c01d96a1d979083", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/16/c8/37/attachment_cover-901492fb-fb6a-41b1-9951-35e0f562597d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ce8b587e190072985280218153886b97873cd845220703dded23aee0d87b2abc", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/16/c8/37/attachment_cover-901492fb-fb6a-41b1-9951-35e0f562597d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=68346cf7ff8adda7f1e05f23cbe3dae678282ad49df69424d6c197e98c79ef7a" + } + }, + "creation_date": "2020-06-12T11:28:42.380225Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/2bf5c4ca-e883-4095-9fea-f91c648ec0bd/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 39344, + "fid": "https://soundship.de/federation/music/tracks/2bf5c4ca-e883-4095-9fea-f91c648ec0bd", + "mbid": null, + "title": ")", + "artist": { + "id": 6331, + "fid": "https://soundship.de/federation/music/artists/a44799ed-0838-4271-a104-4c11f517985a", + "mbid": "None", + "name": "Welten", + "creation_date": "2020-06-12T11:13:09.163866Z", + "modification_date": "2020-06-12T11:13:09.163993Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-06-12T11:31:18.897013Z", + "is_local": true, + "position": 9, + "disc_number": null, + "downloads_count": 13, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:25:08.581751Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16813, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5624, + "fid": "https://soundship.de/federation/music/albums/b091e9b1-f1d4-4266-89ce-d4d10c4d32ae", + "mbid": "ae98347e-2452-408b-997f-1ea428ad0915", + "title": "Großes Kino", + "artist": { + "id": 6432, + "fid": "https://soundship.de/federation/music/artists/1b5816f8-aad4-4450-bb46-e5966de5b76f", + "mbid": "3eab4de9-a578-4327-8909-f90ffc1b8ae5", + "name": "Blumentopf", + "creation_date": "2020-12-07T13:09:01.467377Z", + "modification_date": "2020-12-07T13:09:01.467608Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1999-08-02", + "cover": { + "uuid": "9186fcbb-241a-4aea-b43d-68fa31df613f", + "size": 54734, + "mimetype": "image/jpeg", + "creation_date": "2020-12-07T13:11:17.833624Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/9f/57/e8/attachment_cover-b091e9b1-f1d4-4266-89ce-d4d10c4d32ae.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=34df1b1ef88bd0d89f9f0e1579c03ae18203da0f9a6abe224d5d72ca62f4a7e9", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/9f/57/e8/attachment_cover-b091e9b1-f1d4-4266-89ce-d4d10c4d32ae-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4002afebba087be1112128a94727a868701534ed09deb1414e1794afe63c6d06", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/9f/57/e8/attachment_cover-b091e9b1-f1d4-4266-89ce-d4d10c4d32ae-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9c603ee26c5f120c68b18972a28e0a025f4591bcbe49306198344a53828a0fe6" + } + }, + "creation_date": "2020-12-07T13:11:17.818921Z", + "is_local": true, + "tracks_count": 24 + }, + "uploads": [], + "listen_url": "/api/v1/listen/14899ed4-5bd4-4bee-93ce-612d80ae5a5d/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48321, + "fid": "https://soundship.de/federation/music/tracks/14899ed4-5bd4-4bee-93ce-612d80ae5a5d", + "mbid": "6d2318f0-48d0-476a-8a8a-37fa35eb1540", + "title": "Mann oder Maus", + "artist": { + "id": 6432, + "fid": "https://soundship.de/federation/music/artists/1b5816f8-aad4-4450-bb46-e5966de5b76f", + "mbid": "3eab4de9-a578-4327-8909-f90ffc1b8ae5", + "name": "Blumentopf", + "creation_date": "2020-12-07T13:09:01.467377Z", + "modification_date": "2020-12-07T13:09:01.467608Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-07T13:12:06.751899Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:19:56.185411Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16812, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 32, + "fid": "https://soundship.de/federation/music/albums/a44613a4-ecd7-440f-8c64-8fd74b1d44fb", + "mbid": "84e15e63-0931-48b7-a37e-85e782f0b65a", + "title": "Das Beste von kurz nach früher bis jetze", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1994-08-26", + "cover": { + "uuid": "87210eb9-52f0-4086-bcfe-6fcb30017302", + "size": 201243, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T11:53:13.379475Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/50/33/97/attachment_cover-a44613a4-ecd7-440f-8c64-8fd74b1d44fb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ebbdf386e9cc13353d111ccfe8b86511306c6811a6f5274bc3917d77df8a42bd", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/50/33/97/attachment_cover-a44613a4-ecd7-440f-8c64-8fd74b1d44fb-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=be33fc05d66a84daf6c7004796629a3cce27d57e15ae45f55390679d797f5aaf", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/50/33/97/attachment_cover-a44613a4-ecd7-440f-8c64-8fd74b1d44fb-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fcadf3dd7f217f0dfca3c4634f83027432953150ee711e77890e74098f9ac4b0" + } + }, + "creation_date": "2020-05-07T11:53:13.375071Z", + "is_local": true, + "tracks_count": 34 + }, + "uploads": [], + "listen_url": "/api/v1/listen/c6169752-0290-41f6-9cd9-c44336c06de0/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 379, + "fid": "https://soundship.de/federation/music/tracks/c6169752-0290-41f6-9cd9-c44336c06de0", + "mbid": "8907940a-9e26-4100-9521-1395c1296eea", + "title": "Und ich weine", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T11:57:36.454565Z", + "is_local": true, + "position": 12, + "disc_number": 1, + "downloads_count": 3, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:16:24.683272Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16811, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 58, + "fid": "https://soundship.de/federation/music/albums/b20eedd8-cb9f-48e6-a967-d979d26bfcd9", + "mbid": "a7b82f88-a7fa-4595-8f7f-daee6197263e", + "title": "Livealbum of Death", + "artist": { + "id": 18, + "fid": "https://soundship.de/federation/music/artists/6ee71b5e-849c-4e41-a113-29dbb09a5bf2", + "mbid": "57f81560-caef-4059-95ae-f396afe0b6f3", + "name": "Farin Urlaub Racing Team", + "creation_date": "2020-05-07T14:47:08.572025Z", + "modification_date": "2020-05-07T14:47:08.572129Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2006-02-03", + "cover": { + "uuid": "680989f2-05de-4165-a55d-9e37fc708db0", + "size": 249990, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T14:58:45.723514Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/be/89/a7/attachment_cover-b20eedd8-cb9f-48e6-a967-d979d26bfcd9.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6c8e9116768ee72423ccbb43bb44cd1719c9c3f7e55029f847ac16ecdad79a0d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/be/89/a7/attachment_cover-b20eedd8-cb9f-48e6-a967-d979d26bfcd9-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f45676540a4c54dff4d9bd8b02dcb60267d4b00715c334dfcfd11cfbbed2b3b7", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/be/89/a7/attachment_cover-b20eedd8-cb9f-48e6-a967-d979d26bfcd9-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5bdba982aebb7de23ada85215444b89d0fc952146f6bb13e9cf01a04e41cfdee" + } + }, + "creation_date": "2020-05-07T14:58:45.718932Z", + "is_local": true, + "tracks_count": 22 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4b9a3f20-1392-4823-abb1-815049add857/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 838, + "fid": "https://soundship.de/federation/music/tracks/4b9a3f20-1392-4823-abb1-815049add857", + "mbid": "23b68698-b08d-49fb-af11-0bf16cc4e86c", + "title": "Dusche", + "artist": { + "id": 18, + "fid": "https://soundship.de/federation/music/artists/6ee71b5e-849c-4e41-a113-29dbb09a5bf2", + "mbid": "57f81560-caef-4059-95ae-f396afe0b6f3", + "name": "Farin Urlaub Racing Team", + "creation_date": "2020-05-07T14:47:08.572025Z", + "modification_date": "2020-05-07T14:47:08.572129Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T15:07:52.430102Z", + "is_local": true, + "position": 20, + "disc_number": 1, + "downloads_count": 14, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:12:49.005169Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16810, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5506, + "fid": "https://soundship.de/federation/music/albums/2dac61a6-067e-42f0-bcde-82fea069057e", + "mbid": "d8c79a54-bc6e-3b85-ad68-b0cdbb167e52", + "title": "What Lies Beneath", + "artist": { + "id": 6367, + "fid": "https://soundship.de/federation/music/artists/f947e05b-476c-4df5-b13a-01a941928c3e", + "mbid": "a1e626f0-ed1f-444a-af2e-86aeae6651e4", + "name": "Tarja", + "creation_date": "2020-08-06T16:58:04.627874Z", + "modification_date": "2020-08-06T16:58:04.627960Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2010-09-01", + "cover": { + "uuid": "02b716e4-d08b-4073-8025-348420818bed", + "size": 45917, + "mimetype": "image/jpeg", + "creation_date": "2020-08-06T16:58:04.653980Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/50/00/cf/attachment_cover-2dac61a6-067e-42f0-bcde-82fea069057e.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=44362ed8cf6a4ae98aeb5a117a9a8ccd67055a46474e8f2c3a9bb933029e0895", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/50/00/cf/attachment_cover-2dac61a6-067e-42f0-bcde-82fea069057e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=34b8d253dcb4da3fa47727aa0170df2ed05c13be37c591176dba650e857d7188", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/50/00/cf/attachment_cover-2dac61a6-067e-42f0-bcde-82fea069057e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6e66ac5fd1f0c947b5a2e044e0abbc961f46a3d4d803b064bdf4e62ba3adc4ce" + } + }, + "creation_date": "2020-08-06T16:58:04.636021Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3c418d56-d711-41fd-ab0f-a5cf827b36f1/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 46615, + "fid": "https://soundship.de/federation/music/tracks/3c418d56-d711-41fd-ab0f-a5cf827b36f1", + "mbid": "dbad82dc-471e-42d3-99c8-a35867ca9d69", + "title": "Little Lies", + "artist": { + "id": 6367, + "fid": "https://soundship.de/federation/music/artists/f947e05b-476c-4df5-b13a-01a941928c3e", + "mbid": "a1e626f0-ed1f-444a-af2e-86aeae6651e4", + "name": "Tarja", + "creation_date": "2020-08-06T16:58:04.627874Z", + "modification_date": "2020-08-06T16:58:04.627960Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-06T16:59:09.890353Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:08:25.296903Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16809, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 70, + "fid": "https://soundship.de/federation/music/albums/920dd2f1-631b-4938-9585-ea2a0910edfd", + "mbid": "6ebb5419-09ee-3103-a66c-672bf356e1f8", + "title": "Wasting Light", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2011-04-08", + "cover": { + "uuid": "bcaca1df-1736-479d-99bb-64e814791a82", + "size": 750665, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T16:16:17.301203Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b3/16/94/attachment_cover-920dd2f1-631b-4938-9585-ea2a0910edfd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f76ba9ff2b967b58ad36a06c01e4cb5664252a39586fae40801bc11c5bb8f8b0", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b3/16/94/attachment_cover-920dd2f1-631b-4938-9585-ea2a0910edfd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=19dadcdef8d2ab1fc78c9eb71ad8a9198c6a873cd2521a236564dadd6414a9a3", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b3/16/94/attachment_cover-920dd2f1-631b-4938-9585-ea2a0910edfd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4ed8f6079aee3fd2042f418f4e1768ef2c84765a9714062cdaf7549fa7aab27a" + } + }, + "creation_date": "2020-05-07T16:16:17.296910Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/c93cc329-c8b3-4062-b55a-217db5fedb68/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 1009, + "fid": "https://soundship.de/federation/music/tracks/c93cc329-c8b3-4062-b55a-217db5fedb68", + "mbid": "25e4dddd-e5b1-412c-8b27-41a1b0b4aebf", + "title": "Walk", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T16:21:26.366455Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 10, + "copyright": "© 2011 RCA/Roswell Records", + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:03:56.717934Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16808, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 30, + "fid": "https://soundship.de/federation/music/albums/1ff72ac2-8b70-484f-8488-e8a35fc96a27", + "mbid": "26b92970-467a-4f69-be1e-eeef3830dd6e", + "title": "Die Pfütze des Eisbergs", + "artist": { + "id": 12, + "fid": "https://soundship.de/federation/music/artists/d29611a7-d8d9-4a9e-aab4-3f2ccca19ca8", + "mbid": "e8533fd3-4e66-4ad5-8fe5-12a916f9c4a1", + "name": "Dendemann", + "creation_date": "2020-05-07T11:42:34.537090Z", + "modification_date": "2020-05-07T11:42:34.537369Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2006-09-01", + "cover": { + "uuid": "135b31e3-d1da-4b68-843e-54c7035f85f9", + "size": 98124, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T11:42:34.555164Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/88/a7/12/attachment_cover-1ff72ac2-8b70-484f-8488-e8a35fc96a27.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4686b678767f99ebf960172b6fc14f9c5f8cc5f22e08293057f40cb134000d99", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/88/a7/12/attachment_cover-1ff72ac2-8b70-484f-8488-e8a35fc96a27-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6b74949fbd5c834ef8e08fa56b0cf5a3b0119d8b756e59cb0a5095fe4915a958", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/88/a7/12/attachment_cover-1ff72ac2-8b70-484f-8488-e8a35fc96a27-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1282cefc92fd3f3d1400a3b72aed32398fe9803f6efb1d3960f0086957ed0b97" + } + }, + "creation_date": "2020-05-07T11:42:34.550141Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/f4a01347-3517-4ea0-9fd5-af0fa70d7917/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 353, + "fid": "https://soundship.de/federation/music/tracks/f4a01347-3517-4ea0-9fd5-af0fa70d7917", + "mbid": "4f82ee38-59a6-42ac-b440-665f56c9c66e", + "title": "Hörtnichauf", + "artist": { + "id": 12, + "fid": "https://soundship.de/federation/music/artists/d29611a7-d8d9-4a9e-aab4-3f2ccca19ca8", + "mbid": "e8533fd3-4e66-4ad5-8fe5-12a916f9c4a1", + "name": "Dendemann", + "creation_date": "2020-05-07T11:42:34.537090Z", + "modification_date": "2020-05-07T11:42:34.537369Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T11:46:56.885855Z", + "is_local": true, + "position": 13, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T11:00:07.403741Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16807, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5676, + "fid": "https://soundship.de/federation/music/albums/ff683116-14bd-4572-aa09-3c19818f6cb3", + "mbid": null, + "title": "Welcome To This World", + "artist": { + "id": 6472, + "fid": "https://soundship.de/federation/music/artists/07571e50-fd82-4e12-be71-385885a57169", + "mbid": "None", + "name": "MABUTA", + "creation_date": "2021-01-15T15:26:51.690735Z", + "modification_date": "2021-01-15T15:26:51.691391Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2018-01-01", + "cover": { + "uuid": "c3d6212f-1001-4cf1-bfbf-ad9115355f6e", + "size": 135134, + "mimetype": "image/jpeg", + "creation_date": "2021-01-15T15:26:51.743144Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/1f/23/01/attachment_cover-ff683116-14bd-4572-aa09-3c19818f6cb3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=000ebe255543b7f2c11b63a4cc97c68904d731e4c5a83ef686e38edd0a474db8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1f/23/01/attachment_cover-ff683116-14bd-4572-aa09-3c19818f6cb3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f700700c0ad99e06a1266d0683e8081b644dc4ea259eb6e9460ef94c3c5e5bb8", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/1f/23/01/attachment_cover-ff683116-14bd-4572-aa09-3c19818f6cb3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8064e448bf5f94a0678562b82e72b36da29204a4f82de54261fc8f480a39f545" + } + }, + "creation_date": "2021-01-15T15:26:51.725061Z", + "is_local": true, + "tracks_count": 8 + }, + "uploads": [], + "listen_url": "/api/v1/listen/5ac73d63-8279-4aab-9c2a-b0b7e8f50cc6/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 49106, + "fid": "https://soundship.de/federation/music/tracks/5ac73d63-8279-4aab-9c2a-b0b7e8f50cc6", + "mbid": null, + "title": "Beneath The Waves", + "artist": { + "id": 6472, + "fid": "https://soundship.de/federation/music/artists/07571e50-fd82-4e12-be71-385885a57169", + "mbid": "None", + "name": "MABUTA", + "creation_date": "2021-01-15T15:26:51.690735Z", + "modification_date": "2021-01-15T15:26:51.691391Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2021-01-15T15:31:31.354752Z", + "is_local": true, + "position": 4, + "disc_number": null, + "downloads_count": 13, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:55:53.526562Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16806, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5576, + "fid": "https://soundship.de/federation/music/albums/83d20f0d-ce68-4090-9810-8eea8aafc2a8", + "mbid": "21dce63d-5213-4138-bc28-5b9dc55efe33", + "title": "Das Island Manöver", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2010-04-09", + "cover": { + "uuid": "ecc44817-81f7-440d-8e7b-cbb2140d959c", + "size": 59215, + "mimetype": "image/jpeg", + "creation_date": "2020-08-27T18:53:18.219045Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/8c/76/ef/attachment_cover-83d20f0d-ce68-4090-9810-8eea8aafc2a8.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=90fef11f5524278722622e159f47236f986a2f7d02b2714f57a9473469d64c25", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/76/ef/attachment_cover-83d20f0d-ce68-4090-9810-8eea8aafc2a8-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ec38165b1856bc533959ec4878ced6dfe9d2e241387d6286d4ea6646e505e74e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8c/76/ef/attachment_cover-83d20f0d-ce68-4090-9810-8eea8aafc2a8-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ed8073428c5eee2ec1a0452b93501157861c085f7f9348dd786f62eaaaca6902" + } + }, + "creation_date": "2020-08-27T18:53:18.198114Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b3d6ec72-3a2a-41ce-af1b-c2743c05887a/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 47726, + "fid": "https://soundship.de/federation/music/tracks/b3d6ec72-3a2a-41ce-af1b-c2743c05887a", + "mbid": "78e3e166-aa2b-47ba-899e-86e757851ad2", + "title": "Pennen bei Glufke", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-28T06:28:11.842380Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 9, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:50:56.842954Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16805, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 48, + "fid": "https://soundship.de/federation/music/albums/0b7c32b9-820f-465e-87c3-1b77cec8fb60", + "mbid": "1fb7517b-2fb9-40ec-910f-0a3a514fb70c", + "title": "Music to Be Murdered By", + "artist": { + "id": 16, + "fid": "https://soundship.de/federation/music/artists/fc5a377f-3279-457e-ae09-0ee2b511e1e4", + "mbid": "b95ce3ff-3d05-4e87-9e01-c97b66af13d4", + "name": "Eminem", + "creation_date": "2020-05-07T13:29:47.812979Z", + "modification_date": "2020-05-07T13:29:47.813083Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2020-01-17", + "cover": { + "uuid": "f3539f87-b717-4481-b1a0-e51111a5d33e", + "size": 349368, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T13:41:57.194971Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b9/3a/b8/attachment_cover-0b7c32b9-820f-465e-87c3-1b77cec8fb60.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6ec1fb88d6021429898ceb05f44ca23bf2695cd4e13bdc1932550b77d24528c1", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b9/3a/b8/attachment_cover-0b7c32b9-820f-465e-87c3-1b77cec8fb60-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=02682216c542dfd2e7af880d6afa6940a53289765245681200ca5b5fd74a02d6", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b9/3a/b8/attachment_cover-0b7c32b9-820f-465e-87c3-1b77cec8fb60-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ced52d3e4c52da509803b5d56ceaacec67a873dbfec39d272c2617ef24b3f3f3" + } + }, + "creation_date": "2020-05-07T13:41:57.191082Z", + "is_local": true, + "tracks_count": 20 + }, + "uploads": [], + "listen_url": "/api/v1/listen/c837e044-4209-430e-aaa8-db4f0f56de03/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 651, + "fid": "https://soundship.de/federation/music/tracks/c837e044-4209-430e-aaa8-db4f0f56de03", + "mbid": "f14d3444-2d90-47df-97f0-41c08bdee28d", + "title": "Stepdad (intro)", + "artist": { + "id": 16, + "fid": "https://soundship.de/federation/music/artists/fc5a377f-3279-457e-ae09-0ee2b511e1e4", + "mbid": "b95ce3ff-3d05-4e87-9e01-c97b66af13d4", + "name": "Eminem", + "creation_date": "2020-05-07T13:29:47.812979Z", + "modification_date": "2020-05-07T13:29:47.813083Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T13:47:52.612802Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 5, + "copyright": "℗ 2020 Marshall B. Mathers III, under exclusive license to Interscope Records", + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:45:11.732226Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16804, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 7958, + "fid": "https://soundship.de/federation/music/albums/1ebf861f-9b79-45ad-bde2-00e81e2e8366", + "mbid": "189621ac-43f0-47d9-b165-ebc800c100c9", + "title": "Son", + "artist": { + "id": 6430, + "fid": "https://soundship.de/federation/music/artists/df04fcf4-eb32-4544-b4e6-6b69ab5c0e35", + "mbid": "28e27f86-3eba-4e17-9d04-f47b3be48e96", + "name": "Amsterdam Klezmer Band", + "creation_date": "2020-12-07T12:53:39.313729Z", + "modification_date": "2020-12-07T12:53:39.314163Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2005-01-01", + "cover": { + "uuid": "ea7da618-49a2-4787-9aa2-1729040dd780", + "size": 79825, + "mimetype": "image/jpeg", + "creation_date": "2021-04-10T14:10:37.203223Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/8f/dd/59/attachment_cover-1ebf861f-9b79-45ad-bde2-00e81e2e8366.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a2e3eaad90d4e5995eff14520f41969945c18e25c137a7ad5c3a45aeaa672d5e", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8f/dd/59/attachment_cover-1ebf861f-9b79-45ad-bde2-00e81e2e8366-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6725b5b7c3da30097e06928e52e779d9f683f14a4a7ff194260e32117ce0d1c9", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/8f/dd/59/attachment_cover-1ebf861f-9b79-45ad-bde2-00e81e2e8366-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f9c9af9e69fb598ffb2ba29efaee3b0906f9984f825ea628dc9bda4ab2daf9e0" + } + }, + "creation_date": "2021-04-10T14:10:37.173502Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/0a4e6eee-9b07-434a-8d01-488606529fb9/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 78855, + "fid": "https://soundship.de/federation/music/tracks/0a4e6eee-9b07-434a-8d01-488606529fb9", + "mbid": "f16c3222-5510-4c3d-b0f1-a479e8fdae2f", + "title": "Aprilfeesten", + "artist": { + "id": 6430, + "fid": "https://soundship.de/federation/music/artists/df04fcf4-eb32-4544-b4e6-6b69ab5c0e35", + "mbid": "28e27f86-3eba-4e17-9d04-f47b3be48e96", + "name": "Amsterdam Klezmer Band", + "creation_date": "2020-12-07T12:53:39.313729Z", + "modification_date": "2020-12-07T12:53:39.314163Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2021-04-10T14:11:05.493166Z", + "is_local": true, + "position": 14, + "disc_number": 1, + "downloads_count": 13, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:43:19.292620Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16803, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5655, + "fid": "https://soundship.de/federation/music/albums/fca16e40-4255-408e-ac0b-8e53fb9fe57f", + "mbid": "14dd5d50-34b9-4488-b87f-a79b5a6b52f5", + "title": "Clandestino", + "artist": { + "id": 6447, + "fid": "https://soundship.de/federation/music/artists/93a8318a-5c48-4f15-9743-1d2d2cd026f0", + "mbid": "7570a0dd-5a67-401b-b19a-261eee01a284", + "name": "Manu Chao", + "creation_date": "2020-12-09T09:41:20.992556Z", + "modification_date": "2020-12-09T09:41:20.992686Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1998-04-30", + "cover": { + "uuid": "ba7176ac-a17c-43b2-aab9-2232c01981df", + "size": 102040, + "mimetype": "image/jpeg", + "creation_date": "2020-12-09T09:41:21.007307Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/36/3f/23/attachment_cover-fca16e40-4255-408e-ac0b-8e53fb9fe57f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5e05b744743a360c1fd434ac28cc37bce4206afb8d1526e6c96d9f2a86a95591", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/3f/23/attachment_cover-fca16e40-4255-408e-ac0b-8e53fb9fe57f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=66c122f5579b16a088dfca073bbac7bb15b9a58b652558c11e44cbe602ad0d51", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/3f/23/attachment_cover-fca16e40-4255-408e-ac0b-8e53fb9fe57f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3420ae65517e6e352c3b0acfb8f215d7b07bec8037c617445b1f64727e045623" + } + }, + "creation_date": "2020-12-09T09:41:21.002257Z", + "is_local": true, + "tracks_count": 16 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4a8ad7f8-73aa-48c2-ac42-5951fb87c8f4/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48765, + "fid": "https://soundship.de/federation/music/tracks/4a8ad7f8-73aa-48c2-ac42-5951fb87c8f4", + "mbid": "7719f9ca-c8fa-48a8-a8d1-df24e95247d0", + "title": "Mentira…", + "artist": { + "id": 6447, + "fid": "https://soundship.de/federation/music/artists/93a8318a-5c48-4f15-9743-1d2d2cd026f0", + "mbid": "7570a0dd-5a67-401b-b19a-261eee01a284", + "name": "Manu Chao", + "creation_date": "2020-12-09T09:41:20.992556Z", + "modification_date": "2020-12-09T09:41:20.992686Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T09:41:48.708582Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:39:14.622998Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16802, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5653, + "fid": "https://soundship.de/federation/music/albums/a46fbf1c-21f0-4ad7-8a60-9fe85a55fab9", + "mbid": null, + "title": "Die Zähmung der Hydra", + "artist": { + "id": 6446, + "fid": "https://soundship.de/federation/music/artists/7e9979b4-04a2-471d-b355-25cbed57db29", + "mbid": "None", + "name": "Shaban & Käptn Peng", + "creation_date": "2020-12-09T09:32:09.685367Z", + "modification_date": "2020-12-09T09:32:09.685718Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2012-01-01", + "cover": { + "uuid": "b8126198-a46a-4dda-aa69-c200b6889474", + "size": 63265, + "mimetype": "image/jpeg", + "creation_date": "2020-12-09T09:32:09.725497Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b8/56/0c/attachment_cover-a46fbf1c-21f0-4ad7-8a60-9fe85a55fab9.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3a41be63d89dd73681b2fd905f0d141e52827a3a7bec48f0ddec9c1ecfe4e049", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b8/56/0c/attachment_cover-a46fbf1c-21f0-4ad7-8a60-9fe85a55fab9-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c3d82f6cd218952988dd43e10d0779343801dc079ccc4d718684d55dbba05298", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b8/56/0c/attachment_cover-a46fbf1c-21f0-4ad7-8a60-9fe85a55fab9-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2e4e65f3868bd036d4f073d63495129dbbc358b627e61f6950e34da7e0fd9e17" + } + }, + "creation_date": "2020-12-09T09:32:09.717965Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/9ff3f4d2-b75a-4566-83f7-f76fdc2060d1/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48741, + "fid": "https://soundship.de/federation/music/tracks/9ff3f4d2-b75a-4566-83f7-f76fdc2060d1", + "mbid": null, + "title": "Kündigung 2.0", + "artist": { + "id": 6446, + "fid": "https://soundship.de/federation/music/artists/7e9979b4-04a2-471d-b355-25cbed57db29", + "mbid": "None", + "name": "Shaban & Käptn Peng", + "creation_date": "2020-12-09T09:32:09.685367Z", + "modification_date": "2020-12-09T09:32:09.685718Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T09:33:39.314414Z", + "is_local": true, + "position": 11, + "disc_number": null, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:35:20.771689Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16801, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 57, + "fid": "https://soundship.de/federation/music/albums/ac82c1a1-81d1-4c7c-b9db-c7da827caf14", + "mbid": "c819c8df-778c-4801-be2c-00cca7a573af", + "title": "Faszination Weltraum", + "artist": { + "id": 18, + "fid": "https://soundship.de/federation/music/artists/6ee71b5e-849c-4e41-a113-29dbb09a5bf2", + "mbid": "57f81560-caef-4059-95ae-f396afe0b6f3", + "name": "Farin Urlaub Racing Team", + "creation_date": "2020-05-07T14:47:08.572025Z", + "modification_date": "2020-05-07T14:47:08.572129Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2014-01-01", + "cover": { + "uuid": "c3ec4c67-6f82-4e2c-8a6b-1e4d95115276", + "size": 1203923, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T14:52:43.609485Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6e/a6/28/attachment_cover-ac82c1a1-81d1-4c7c-b9db-c7da827caf14.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=33801c63666987eafa45d57059f2ad8faf1c4d275c6125e14e188bb7d86ce2a6", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6e/a6/28/attachment_cover-ac82c1a1-81d1-4c7c-b9db-c7da827caf14-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4d3b2ca1310238bb0cf0fcc9f265c009ff8cf682325ac81a70dde3ceb1bc50a4", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6e/a6/28/attachment_cover-ac82c1a1-81d1-4c7c-b9db-c7da827caf14-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=290041028bfc61c1a257a0e9803f1b4554f4557de1ced024f124c7af4b7a89d6" + } + }, + "creation_date": "2020-05-07T14:52:43.604087Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/67f430cc-c851-456d-9ff7-82b446893ef2/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 809, + "fid": "https://soundship.de/federation/music/tracks/67f430cc-c851-456d-9ff7-82b446893ef2", + "mbid": "8700d555-d431-486d-8761-d783cb41f698", + "title": "Heute tanzen", + "artist": { + "id": 18, + "fid": "https://soundship.de/federation/music/artists/6ee71b5e-849c-4e41-a113-29dbb09a5bf2", + "mbid": "57f81560-caef-4059-95ae-f396afe0b6f3", + "name": "Farin Urlaub Racing Team", + "creation_date": "2020-05-07T14:47:08.572025Z", + "modification_date": "2020-05-07T14:47:08.572129Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T14:54:29.601408Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:32:32.575128Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16800, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 56, + "fid": "https://soundship.de/federation/music/albums/860d0d6a-7fec-4ce4-9394-5e21aeae6151", + "mbid": "cf33aa7b-c645-4a9b-a792-be5496b3d3a5", + "title": "Die Wahrheit übers Lügen", + "artist": { + "id": 18, + "fid": "https://soundship.de/federation/music/artists/6ee71b5e-849c-4e41-a113-29dbb09a5bf2", + "mbid": "57f81560-caef-4059-95ae-f396afe0b6f3", + "name": "Farin Urlaub Racing Team", + "creation_date": "2020-05-07T14:47:08.572025Z", + "modification_date": "2020-05-07T14:47:08.572129Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2008-10-31", + "cover": { + "uuid": "cf572fb0-371e-4f76-9733-cf3270eaadb3", + "size": 578817, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T14:47:08.585435Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/2a/79/2b/attachment_cover-860d0d6a-7fec-4ce4-9394-5e21aeae6151.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=97c6e4240fe55bbdd5001f04908ef2bec3db1292971fd8f1bc02b35ff69ccceb", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2a/79/2b/attachment_cover-860d0d6a-7fec-4ce4-9394-5e21aeae6151-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ff258f8f19e5f00d66144a69f9ab6ec14aba50ab11f4d1d53d6090c22781dc4e", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/2a/79/2b/attachment_cover-860d0d6a-7fec-4ce4-9394-5e21aeae6151-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133616Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=28f2e1667adff5456b5d30c46e8884ea6a002539e4e9dbbd8c8448641dfd4b8f" + } + }, + "creation_date": "2020-05-07T14:47:08.580600Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/f5c74e88-e26e-4f86-bf9a-0ba5820e48dc/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 799, + "fid": "https://soundship.de/federation/music/tracks/f5c74e88-e26e-4f86-bf9a-0ba5820e48dc", + "mbid": "baa5d56e-7d9a-41fc-90f1-4bf69105d594", + "title": "Karten", + "artist": { + "id": 18, + "fid": "https://soundship.de/federation/music/artists/6ee71b5e-849c-4e41-a113-29dbb09a5bf2", + "mbid": "57f81560-caef-4059-95ae-f396afe0b6f3", + "name": "Farin Urlaub Racing Team", + "creation_date": "2020-05-07T14:47:08.572025Z", + "modification_date": "2020-05-07T14:47:08.572129Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T14:50:50.977585Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 10, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:29:07.666461Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16799, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5660, + "fid": "https://soundship.de/federation/music/albums/15b1c99f-4756-4608-a46e-b477a93d2ad3", + "mbid": "add5f6ff-f17f-4482-ac14-f4f1c79f2182", + "title": "Habediehre", + "artist": { + "id": 6449, + "fid": "https://soundship.de/federation/music/artists/64a86457-6d0f-4f63-8106-89938dc6e562", + "mbid": "cd261e77-63b3-4cc1-b901-ebb97a56e89f", + "name": "LaBrassBanda", + "creation_date": "2020-12-09T09:46:37.368864Z", + "modification_date": "2020-12-09T09:46:37.368937Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2008-06-06", + "cover": null, + "creation_date": "2020-12-09T09:48:43.671677Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e8237211-5387-4164-908d-a044994054cf/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48847, + "fid": "https://soundship.de/federation/music/tracks/e8237211-5387-4164-908d-a044994054cf", + "mbid": "94f60203-24f8-4147-b1a7-93fb3555252d", + "title": "Aussenriess", + "artist": { + "id": 6449, + "fid": "https://soundship.de/federation/music/artists/64a86457-6d0f-4f63-8106-89938dc6e562", + "mbid": "cd261e77-63b3-4cc1-b901-ebb97a56e89f", + "name": "LaBrassBanda", + "creation_date": "2020-12-09T09:46:37.368864Z", + "modification_date": "2020-12-09T09:46:37.368937Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T09:49:56.436341Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:25:04.994104Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16798, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 55, + "fid": "https://soundship.de/federation/music/albums/94112a2b-13c3-4c3c-ae4e-5b9a2add5d0c", + "mbid": "02319abc-a999-4854-a654-f7a33c9db19e", + "title": "The Slim Shady LP", + "artist": { + "id": 16, + "fid": "https://soundship.de/federation/music/artists/fc5a377f-3279-457e-ae09-0ee2b511e1e4", + "mbid": "b95ce3ff-3d05-4e87-9e01-c97b66af13d4", + "name": "Eminem", + "creation_date": "2020-05-07T13:29:47.812979Z", + "modification_date": "2020-05-07T13:29:47.813083Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1999-01-01", + "cover": { + "uuid": "d2336437-e88a-475d-aff5-3c7ca2b900a9", + "size": 35560, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T14:40:59.525831Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/70/79/89/attachment_cover-94112a2b-13c3-4c3c-ae4e-5b9a2add5d0c.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7b410c64e48542e85b7cb5fc312b9fb3259884db9e72b0cbcc99d66ac839f9c2", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/70/79/89/attachment_cover-94112a2b-13c3-4c3c-ae4e-5b9a2add5d0c-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1afb5ffc061bbe4c6728de5ce337105302ee4c2e73da5d344b876d2245a6c2be", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/70/79/89/attachment_cover-94112a2b-13c3-4c3c-ae4e-5b9a2add5d0c-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1fd45d518ea8656031bdecb89c2f778838540a33bb327d502f08783a9ceb1ca1" + } + }, + "creation_date": "2020-05-07T14:40:59.520707Z", + "is_local": true, + "tracks_count": 20 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3d84e102-0791-44b6-b6d1-1de30997f1d5/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 781, + "fid": "https://soundship.de/federation/music/tracks/3d84e102-0791-44b6-b6d1-1de30997f1d5", + "mbid": "f2924320-2d82-4460-b471-db40845e4f71", + "title": "Cum on Everybody", + "artist": { + "id": 16, + "fid": "https://soundship.de/federation/music/artists/fc5a377f-3279-457e-ae09-0ee2b511e1e4", + "mbid": "b95ce3ff-3d05-4e87-9e01-c97b66af13d4", + "name": "Eminem", + "creation_date": "2020-05-07T13:29:47.812979Z", + "modification_date": "2020-05-07T13:29:47.813083Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T14:44:17.195825Z", + "is_local": true, + "position": 13, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:21:23.245336Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16797, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 39, + "fid": "https://soundship.de/federation/music/albums/5c2e10f9-4955-4a04-b592-63cf0c3b9747", + "mbid": "40e4b541-e52a-407d-8429-d1a703d4c861", + "title": "Im Schatten der Ärzte", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1985-01-01", + "cover": { + "uuid": "3af3cce4-d153-4850-8c07-aeb563cbf7d8", + "size": 104392, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T12:47:13.667219Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/7d/38/71/attachment_cover-5c2e10f9-4955-4a04-b592-63cf0c3b9747.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6ffdf1480f18ed1c12015ba632ccd5e401ca7fd91fcd5639e88a04cd3a0415ca", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/7d/38/71/attachment_cover-5c2e10f9-4955-4a04-b592-63cf0c3b9747-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e4c8df865d8650d681c0961a0221af9ad285f6e841a4ab38eb45a42faf4f1c8c", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/7d/38/71/attachment_cover-5c2e10f9-4955-4a04-b592-63cf0c3b9747-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e181a5af3225e249da816296fba4d1c9c4319dd7ece40dde95d6dede71aa86d0" + } + }, + "creation_date": "2020-05-07T12:47:13.662790Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/42e80ba0-56ff-4042-af63-540899c8a853/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 502, + "fid": "https://soundship.de/federation/music/tracks/42e80ba0-56ff-4042-af63-540899c8a853", + "mbid": "2a4a9890-9213-4639-9174-a6d6da4386df", + "title": "Du willst mich küssen", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T12:47:13.716305Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T10:17:57.075578Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16796, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5591, + "fid": "https://soundship.de/federation/music/albums/aa654b99-fc83-4aac-b8dd-5ba1be4bf229", + "mbid": "5cfd09c6-d8df-4a03-9811-907b2ffadbda", + "title": "Black Sands", + "artist": { + "id": 6415, + "fid": "https://soundship.de/federation/music/artists/83d3d776-cbe5-4a88-b01a-a9cdecaab620", + "mbid": "9a709693-b4f8-4da9-8cc1-038c911a61be", + "name": "Bonobo", + "creation_date": "2020-10-22T06:24:19.949676Z", + "modification_date": "2020-10-22T06:24:19.950693Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2010-03-13", + "cover": { + "uuid": "2af0344f-3c60-48d1-bfb9-f9008c97ddd1", + "size": 193503, + "mimetype": "image/jpeg", + "creation_date": "2020-10-22T06:30:04.562989Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/39/d4/1a/attachment_cover-aa654b99-fc83-4aac-b8dd-5ba1be4bf229.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=98017777c45ed3da699bc5b1198abb881884357bf03b6e1c2b7e7af19b6edc3a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/39/d4/1a/attachment_cover-aa654b99-fc83-4aac-b8dd-5ba1be4bf229-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5be781629597c892efd21dd16de61587e48e30905fad1ccd6a5a41833530fa50", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/39/d4/1a/attachment_cover-aa654b99-fc83-4aac-b8dd-5ba1be4bf229-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0b390e2f55ee3cd5437f3beb75c17cfac1e231120f477c261b6a84a68bb0d20e" + } + }, + "creation_date": "2020-10-22T06:30:04.075725Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/40676d67-d530-42f9-9d22-26295877c293/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 47873, + "fid": "https://soundship.de/federation/music/tracks/40676d67-d530-42f9-9d22-26295877c293", + "mbid": "c84e1179-7828-4300-bc63-dcdd4d14cc7d", + "title": "Stay the Same", + "artist": { + "id": 6415, + "fid": "https://soundship.de/federation/music/artists/83d3d776-cbe5-4a88-b01a-a9cdecaab620", + "mbid": "9a709693-b4f8-4da9-8cc1-038c911a61be", + "name": "Bonobo", + "creation_date": "2020-10-22T06:24:19.949676Z", + "modification_date": "2020-10-22T06:24:19.950693Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-10-22T06:36:23.985558Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:27:57.207323Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16795, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5665, + "fid": "https://soundship.de/federation/music/albums/02d34d95-c329-458e-b009-e4ad097d7f38", + "mbid": "af835810-e774-4c73-acf0-0bd3ce75b18f", + "title": "Love & Hoppiness", + "artist": { + "id": 6452, + "fid": "https://soundship.de/federation/music/artists/00014915-ae65-419e-85ca-aeb404e05e12", + "mbid": "f4ab4079-7b57-4bd0-aa0a-2bc3ad31b481", + "name": "Feindrehstar", + "creation_date": "2020-12-09T10:00:45.174162Z", + "modification_date": "2020-12-09T10:00:45.174280Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2015-01-01", + "cover": { + "uuid": "6eb10162-e824-437c-8db4-1201deff6d09", + "size": 654735, + "mimetype": "image/jpeg", + "creation_date": "2020-12-09T10:00:45.187326Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/19/44/ef/attachment_cover-02d34d95-c329-458e-b009-e4ad097d7f38.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fe1b0954b25f3b55b19066f3ee3d757bc46697d93d9517268407f9398e14688a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/19/44/ef/attachment_cover-02d34d95-c329-458e-b009-e4ad097d7f38-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a2ee5831af527a8efa600167fcc62c0644147a9a34176281e4c9ba6e605c8f2a", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/19/44/ef/attachment_cover-02d34d95-c329-458e-b009-e4ad097d7f38-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=272bd760c01b1446b1b298de3b8ad66cb4a35f18a0a3b0c514055c3c51d0d54c" + } + }, + "creation_date": "2020-12-09T10:00:45.181032Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/dd493793-ed1b-4623-9bb1-cf6426c7f67b/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48899, + "fid": "https://soundship.de/federation/music/tracks/dd493793-ed1b-4623-9bb1-cf6426c7f67b", + "mbid": "f6c2ba11-ceff-4be0-b3f8-08eae7223438", + "title": "Intermission", + "artist": { + "id": 6452, + "fid": "https://soundship.de/federation/music/artists/00014915-ae65-419e-85ca-aeb404e05e12", + "mbid": "f4ab4079-7b57-4bd0-aa0a-2bc3ad31b481", + "name": "Feindrehstar", + "creation_date": "2020-12-09T10:00:45.174162Z", + "modification_date": "2020-12-09T10:00:45.174280Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T10:00:47.914631Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 27, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:25:02.799949Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16794, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5578, + "fid": "https://soundship.de/federation/music/albums/ec1362cf-fb6d-4e5d-8009-d4a26223cb54", + "mbid": "8257689a-83e1-3093-be18-8a85914af0d5", + "title": "Schwan", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2003-11-24", + "cover": { + "uuid": "4a22e225-8357-489a-9f1d-1c4427346773", + "size": 21491, + "mimetype": "image/jpeg", + "creation_date": "2020-08-27T18:55:04.390060Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/86/35/a1/attachment_cover-ec1362cf-fb6d-4e5d-8009-d4a26223cb54.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c949fd02622bbcae95a2511ba1afb05d9f1dda9bf2f4ddc836709d50f2bae31a", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/86/35/a1/attachment_cover-ec1362cf-fb6d-4e5d-8009-d4a26223cb54-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8483f18dc8a9f9d850aa0988e2d2d1db582a8436884fdbce1933a7489c0c2159", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/86/35/a1/attachment_cover-ec1362cf-fb6d-4e5d-8009-d4a26223cb54-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d220685f32ffca94bdc081e50978158cad9831de412d0750548e0fb3a97cfda7" + } + }, + "creation_date": "2020-08-27T18:55:04.373238Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/85e7d652-bc27-4e49-86cc-104dafee7dcd/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 47667, + "fid": "https://soundship.de/federation/music/tracks/85e7d652-bc27-4e49-86cc-104dafee7dcd", + "mbid": "a65d6c0c-8495-4af1-b151-3e6c20d53cb2", + "title": "Trauertränen", + "artist": { + "id": 6398, + "fid": "https://soundship.de/federation/music/artists/b1f698af-d8ef-4b56-a541-7827223a6ee1", + "mbid": "7ffd711a-b34d-4739-8aab-25e045c246da", + "name": "Turbostaat", + "creation_date": "2020-08-27T18:53:18.182845Z", + "modification_date": "2020-08-27T18:53:18.182999Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-08-27T18:55:50.979159Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:23:21.755872Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16793, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5142, + "fid": "https://soundship.de/federation/music/albums/a84324e9-3326-45eb-9836-5f7cdebc2dbd", + "mbid": "8448fd33-00d2-4e3b-9fdd-e04c170bd7bf", + "title": "Renegades", + "artist": { + "id": 6235, + "fid": "https://soundship.de/federation/music/artists/405f03e4-bec2-4d89-83cf-7ed2d4b99647", + "mbid": "3798b104-01cb-484c-a3b0-56adc6399b80", + "name": "Rage Against the Machine", + "creation_date": "2020-05-10T16:14:29.403117Z", + "modification_date": "2020-05-10T16:14:29.403277Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2000-01-01", + "cover": { + "uuid": "0b513e99-cbd3-47a7-aede-69e283626652", + "size": 202359, + "mimetype": "image/jpeg", + "creation_date": "2020-05-10T16:59:09.360018Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/ed/62/13/attachment_cover-a84324e9-3326-45eb-9836-5f7cdebc2dbd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=504f2b42dd4d0c28151bf6044fbdadd274318332dcdfb08ef394cf8181fdfd80", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ed/62/13/attachment_cover-a84324e9-3326-45eb-9836-5f7cdebc2dbd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=44da2be68a2f181dafefb615e2ef4cae15115b1f2c894f8b0fa5b3347dd8a216", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/ed/62/13/attachment_cover-a84324e9-3326-45eb-9836-5f7cdebc2dbd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=dbdc25047391d6272df489653e464273af475d9320209b85115fcb28f396082e" + } + }, + "creation_date": "2020-05-10T16:59:09.337373Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e383074b-baed-4de8-b95f-a5cf8c10fad4/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 38349, + "fid": "https://soundship.de/federation/music/tracks/e383074b-baed-4de8-b95f-a5cf8c10fad4", + "mbid": "8e0f32f8-4e87-40c5-acb9-36e903f91aa8", + "title": "Renegades of Funk", + "artist": { + "id": 6235, + "fid": "https://soundship.de/federation/music/artists/405f03e4-bec2-4d89-83cf-7ed2d4b99647", + "mbid": "3798b104-01cb-484c-a3b0-56adc6399b80", + "name": "Rage Against the Machine", + "creation_date": "2020-05-10T16:14:29.403117Z", + "modification_date": "2020-05-10T16:14:29.403277Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-10T17:02:44.668408Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:20:03.159869Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16792, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 70, + "fid": "https://soundship.de/federation/music/albums/920dd2f1-631b-4938-9585-ea2a0910edfd", + "mbid": "6ebb5419-09ee-3103-a66c-672bf356e1f8", + "title": "Wasting Light", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2011-04-08", + "cover": { + "uuid": "bcaca1df-1736-479d-99bb-64e814791a82", + "size": 750665, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T16:16:17.301203Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/b3/16/94/attachment_cover-920dd2f1-631b-4938-9585-ea2a0910edfd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=214a7a855f9bcdb40959b7761c90deec25f8cdba259c387eb25245bbc46ad7cd", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b3/16/94/attachment_cover-920dd2f1-631b-4938-9585-ea2a0910edfd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6713cb6b6d45da1d89406063d68a8ee37f0288bb7012c1013c54153a761b94bf", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/b3/16/94/attachment_cover-920dd2f1-631b-4938-9585-ea2a0910edfd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=eb08ba5c4108c7a0ad5aaee546ddeb20bbdc0d488f35db9af1e7994835149d8b" + } + }, + "creation_date": "2020-05-07T16:16:17.296910Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/2a1cfbf6-5270-4d4f-91aa-a3c5561abee4/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 1004, + "fid": "https://soundship.de/federation/music/tracks/2a1cfbf6-5270-4d4f-91aa-a3c5561abee4", + "mbid": "d22253a6-a12e-4931-ba21-9e057af21cf4", + "title": "These Days", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T16:18:51.467195Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 8, + "copyright": "© 2011 RCA/Roswell Records", + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:15:16.013183Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16791, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 66, + "fid": "https://soundship.de/federation/music/albums/9efe24ff-87ed-4090-90bc-0c19c1b87000", + "mbid": "58dc4157-d73e-4c9c-a115-e599e4131295", + "title": "In Your Honor", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2007-09-26", + "cover": { + "uuid": "23a5a5fd-022e-432e-8a44-87e9edce76d1", + "size": 809278, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T15:50:42.384939Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/0a/97/7e/attachment_cover-9efe24ff-87ed-4090-90bc-0c19c1b87000.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=13e5374606f8ea7f872062a48c8caaebddefadb2a0eb018526a05a0b9184869c", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0a/97/7e/attachment_cover-9efe24ff-87ed-4090-90bc-0c19c1b87000-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=abd2a164ffb25a98418a9ea0a74ca16196b83efd7ef78068a48be13f6a722dd8", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0a/97/7e/attachment_cover-9efe24ff-87ed-4090-90bc-0c19c1b87000-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8488406d7bc0c580580631f49be159e7b6f4f917fe857b2e123ad80976e1502e" + } + }, + "creation_date": "2020-05-07T15:50:42.379999Z", + "is_local": true, + "tracks_count": 21 + }, + "uploads": [], + "listen_url": "/api/v1/listen/16efc09b-8dd6-4912-a68a-b054532dba85/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 958, + "fid": "https://soundship.de/federation/music/tracks/16efc09b-8dd6-4912-a68a-b054532dba85", + "mbid": "b3ea0cb0-a434-4a6d-970b-f83b615e89ac", + "title": "Still", + "artist": { + "id": 21, + "fid": "https://soundship.de/federation/music/artists/8a1dacd1-682a-4e7f-8c46-c4f6049bd54a", + "mbid": "67f66c07-6e61-4026-ade5-7e782fad3a5d", + "name": "Foo Fighters", + "creation_date": "2020-05-07T15:40:07.193247Z", + "modification_date": "2020-05-07T15:40:07.193359Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T15:55:48.149260Z", + "is_local": true, + "position": 12, + "disc_number": 2, + "downloads_count": 10, + "copyright": "© 2005 Roswell/RCA/Sony BMG Entertainment", + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:10:09.306906Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16790, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5664, + "fid": "https://soundship.de/federation/music/albums/cae2290d-77d8-4da5-a9c5-9bb7fa09ee46", + "mbid": "f5229c40-d183-41b9-a88c-01b2059201b7", + "title": "Tonight: Franz Ferdinand", + "artist": { + "id": 6451, + "fid": "https://soundship.de/federation/music/artists/7da21f79-e40a-46e8-9379-27d0b8b6789d", + "mbid": "aa7a2827-f74b-473c-bd79-03d065835cf7", + "name": "Franz Ferdinand", + "creation_date": "2020-12-09T09:58:16.156447Z", + "modification_date": "2020-12-09T09:58:16.156576Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2009-01-23", + "cover": { + "uuid": "6ee1342d-151e-43af-8e8d-54a55eb5e07a", + "size": 226832, + "mimetype": "image/jpeg", + "creation_date": "2020-12-09T09:58:21.037259Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a9/d5/1f/attachment_cover-cae2290d-77d8-4da5-a9c5-9bb7fa09ee46.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=75388f0d6d2df13cac6cd9bf538d83ad4b3b016d016067ddb5ac73090a3dc3a3", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a9/d5/1f/attachment_cover-cae2290d-77d8-4da5-a9c5-9bb7fa09ee46-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e07ae4a0d423a8521208bfa69eb7f6612bd035782713e04041dc14ea8f0ac890", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a9/d5/1f/attachment_cover-cae2290d-77d8-4da5-a9c5-9bb7fa09ee46-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2ec8125e445825a1fe2a50e8a768317f3ef8ed4d599208c02d3eb37ec735f471" + } + }, + "creation_date": "2020-12-09T09:58:16.164298Z", + "is_local": true, + "tracks_count": 12 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4f93f491-6aef-4a28-92ec-6a6f84a2014e/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48896, + "fid": "https://soundship.de/federation/music/tracks/4f93f491-6aef-4a28-92ec-6a6f84a2014e", + "mbid": "ff9570b6-18e1-41fa-a430-30eeb746d707", + "title": "Lucid Dreams", + "artist": { + "id": 6451, + "fid": "https://soundship.de/federation/music/artists/7da21f79-e40a-46e8-9379-27d0b8b6789d", + "mbid": "aa7a2827-f74b-473c-bd79-03d065835cf7", + "name": "Franz Ferdinand", + "creation_date": "2020-12-09T09:58:16.156447Z", + "modification_date": "2020-12-09T09:58:16.156576Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T10:00:22.885701Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 18, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T09:03:34.399945Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16789, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5661, + "fid": "https://soundship.de/federation/music/albums/fdab73f2-b0b4-4843-9887-83d274443bd5", + "mbid": "621aefb8-af36-4f23-8b51-0c0c241bf36b", + "title": "Übersee", + "artist": { + "id": 6449, + "fid": "https://soundship.de/federation/music/artists/64a86457-6d0f-4f63-8106-89938dc6e562", + "mbid": "cd261e77-63b3-4cc1-b901-ebb97a56e89f", + "name": "LaBrassBanda", + "creation_date": "2020-12-09T09:46:37.368864Z", + "modification_date": "2020-12-09T09:46:37.368937Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2013-06-28", + "cover": null, + "creation_date": "2020-12-09T09:51:14.591799Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/998985b4-c4c1-4775-93b8-2b20cbc458d2/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48860, + "fid": "https://soundship.de/federation/music/tracks/998985b4-c4c1-4775-93b8-2b20cbc458d2", + "mbid": "7146715e-31df-4c1d-bc22-5615f5b93784", + "title": "Scetches", + "artist": { + "id": 6449, + "fid": "https://soundship.de/federation/music/artists/64a86457-6d0f-4f63-8106-89938dc6e562", + "mbid": "cd261e77-63b3-4cc1-b901-ebb97a56e89f", + "name": "LaBrassBanda", + "creation_date": "2020-12-09T09:46:37.368864Z", + "modification_date": "2020-12-09T09:46:37.368937Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T09:52:43.291608Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T08:57:48.492866Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16788, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 50, + "fid": "https://soundship.de/federation/music/albums/66751335-c4e2-4242-8f37-012e9c46af08", + "mbid": "25130d2d-8a82-4956-99e7-30efd0f9ff89", + "title": "Relapse", + "artist": { + "id": 16, + "fid": "https://soundship.de/federation/music/artists/fc5a377f-3279-457e-ae09-0ee2b511e1e4", + "mbid": "b95ce3ff-3d05-4e87-9e01-c97b66af13d4", + "name": "Eminem", + "creation_date": "2020-05-07T13:29:47.812979Z", + "modification_date": "2020-05-07T13:29:47.813083Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2009-05-18", + "cover": { + "uuid": "803a10a3-ca80-4f98-9881-7f315552a83c", + "size": 99478, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T14:01:36.887748Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/0a/dd/76/attachment_cover-66751335-c4e2-4242-8f37-012e9c46af08.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e843a6d5aee14eca0399ff2f607b594b241d514fed29030419baa9f675b349d3", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0a/dd/76/attachment_cover-66751335-c4e2-4242-8f37-012e9c46af08-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=13b30d680e29c12dbe7a7a7d025ed141dcac9b48eaa6449c4a503516ef59e459", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/0a/dd/76/attachment_cover-66751335-c4e2-4242-8f37-012e9c46af08-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6fad246f14bdc4974e1e759184bb1ba809dc7333ecd81c64815457ddece28af6" + } + }, + "creation_date": "2020-05-07T14:01:36.883188Z", + "is_local": true, + "tracks_count": 20 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e86a0275-5411-4a0c-b237-724a9a085fd3/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 680, + "fid": "https://soundship.de/federation/music/tracks/e86a0275-5411-4a0c-b237-724a9a085fd3", + "mbid": "b9ba7418-87c7-4c89-acd7-9dd5cddec7cf", + "title": "My Mom", + "artist": { + "id": 16, + "fid": "https://soundship.de/federation/music/artists/fc5a377f-3279-457e-ae09-0ee2b511e1e4", + "mbid": "b95ce3ff-3d05-4e87-9e01-c97b66af13d4", + "name": "Eminem", + "creation_date": "2020-05-07T13:29:47.812979Z", + "modification_date": "2020-05-07T13:29:47.813083Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T14:02:43.295121Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T08:53:22.154506Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16787, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 8501, + "fid": "https://soundship.de/federation/music/albums/fff63f0c-0984-4f63-ab31-91db9d79a510", + "mbid": null, + "title": "THE SUPERTIGHTS", + "artist": { + "id": 8244, + "fid": "https://soundship.de/federation/music/artists/f2f8e5f0-6162-4e9a-a469-c839981d8b87", + "mbid": "None", + "name": "Q-Sounds recording", + "creation_date": "2022-04-27T14:10:33.664559Z", + "modification_date": "2022-04-27T14:10:33.665067Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "3ccb8313-b8b0-4989-89f6-19b4f3ac3cb2", + "size": 226150, + "mimetype": "image/jpeg", + "creation_date": "2022-04-27T14:10:33.940909Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/20/b5/d3/attachment_cover-fff63f0c-0984-4f63-ab31-91db9d79a510.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=70ba3c95a244a51086886242310c4e6e809064ffd08313f626b8c5fd3adfbb05", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/20/b5/d3/attachment_cover-fff63f0c-0984-4f63-ab31-91db9d79a510-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=399894acc57b899e8336029aac45f7e5286b61a6811c3bd577e490e34d026cc7", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/20/b5/d3/attachment_cover-fff63f0c-0984-4f63-ab31-91db9d79a510-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=22aa8f3173733ed8c8269b147fa4f1b1fdf1bfc01362d5ce14ee8ec6c34c384c" + } + }, + "creation_date": "2022-04-27T14:10:33.924048Z", + "is_local": true, + "tracks_count": 13 + }, + "uploads": [], + "listen_url": "/api/v1/listen/26fe2f74-62dd-49db-a8db-8a02cfc1da3a/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 159981, + "fid": "https://soundship.de/federation/music/tracks/26fe2f74-62dd-49db-a8db-8a02cfc1da3a", + "mbid": null, + "title": "Funky Villetaneuse", + "artist": { + "id": 8244, + "fid": "https://soundship.de/federation/music/artists/f2f8e5f0-6162-4e9a-a469-c839981d8b87", + "mbid": "None", + "name": "Q-Sounds recording", + "creation_date": "2022-04-27T14:10:33.664559Z", + "modification_date": "2022-04-27T14:10:33.665067Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2022-04-27T14:13:32.404216Z", + "is_local": true, + "position": 3, + "disc_number": null, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T08:47:28.288584Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16786, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 5655, + "fid": "https://soundship.de/federation/music/albums/fca16e40-4255-408e-ac0b-8e53fb9fe57f", + "mbid": "14dd5d50-34b9-4488-b87f-a79b5a6b52f5", + "title": "Clandestino", + "artist": { + "id": 6447, + "fid": "https://soundship.de/federation/music/artists/93a8318a-5c48-4f15-9743-1d2d2cd026f0", + "mbid": "7570a0dd-5a67-401b-b19a-261eee01a284", + "name": "Manu Chao", + "creation_date": "2020-12-09T09:41:20.992556Z", + "modification_date": "2020-12-09T09:41:20.992686Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1998-04-30", + "cover": { + "uuid": "ba7176ac-a17c-43b2-aab9-2232c01981df", + "size": 102040, + "mimetype": "image/jpeg", + "creation_date": "2020-12-09T09:41:21.007307Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/36/3f/23/attachment_cover-fca16e40-4255-408e-ac0b-8e53fb9fe57f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2ff082f3f53cf59c144691fb09b691cd8e60702e88b680fa76799de00c9c5b38", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/3f/23/attachment_cover-fca16e40-4255-408e-ac0b-8e53fb9fe57f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1907a9ef068da845a46bc60e9bb5d6a8a389b461443ee1f2f59620effe287c3", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/36/3f/23/attachment_cover-fca16e40-4255-408e-ac0b-8e53fb9fe57f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=76fed3a8940b67b162ef3efcddbb8a6bf2a2993dac4d34f185d436e02608af4a" + } + }, + "creation_date": "2020-12-09T09:41:21.002257Z", + "is_local": true, + "tracks_count": 16 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b2f60c94-1da7-4ffb-b567-8df76588cbf2/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48766, + "fid": "https://soundship.de/federation/music/tracks/b2f60c94-1da7-4ffb-b567-8df76588cbf2", + "mbid": "68c835aa-9947-4a0b-8495-646f3ec8ce96", + "title": "Lágrimas de oro", + "artist": { + "id": 6447, + "fid": "https://soundship.de/federation/music/artists/93a8318a-5c48-4f15-9743-1d2d2cd026f0", + "mbid": "7570a0dd-5a67-401b-b19a-261eee01a284", + "name": "Manu Chao", + "creation_date": "2020-12-09T09:41:20.992556Z", + "modification_date": "2020-12-09T09:41:20.992686Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-09T09:41:53.349255Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T08:42:43.989092Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16785, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 41, + "fid": "https://soundship.de/federation/music/albums/b480fb11-1882-4486-bdf8-4e8f4f2471c4", + "mbid": "6d6d9921-6fe2-4a54-babf-17be50b5868c", + "title": "Planet Punk", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "1995-01-01", + "cover": { + "uuid": "3b1e396d-5a75-4675-a23f-423b9175b647", + "size": 118278, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T12:58:40.394248Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/a1/8f/8c/attachment_cover-b480fb11-1882-4486-bdf8-4e8f4f2471c4.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=7f5cdf215a308b5429f5652fbf2fac4c8d9a82fd87fd905d0ba78d15fc252d58", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a1/8f/8c/attachment_cover-b480fb11-1882-4486-bdf8-4e8f4f2471c4-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f99b80b67133dbf7c1c3c1610cfa644eef0a73993f29a423a083c866c0a9a15a", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/a1/8f/8c/attachment_cover-b480fb11-1882-4486-bdf8-4e8f4f2471c4-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=732f2f1586da2d9005bec74dee82ebf650922beda0a92fbc47352360f609fefc" + } + }, + "creation_date": "2020-05-07T12:58:40.390322Z", + "is_local": true, + "tracks_count": 17 + }, + "uploads": [], + "listen_url": "/api/v1/listen/175afc17-d1b3-4ac7-919c-286922888929/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 550, + "fid": "https://soundship.de/federation/music/tracks/175afc17-d1b3-4ac7-919c-286922888929", + "mbid": "b64511ba-e2e1-4652-8d4f-7682ad020258", + "title": "Trick 17 m. S.", + "artist": { + "id": 13, + "fid": "https://soundship.de/federation/music/artists/b55f0c30-e060-4eeb-aeae-a3c44faf2294", + "mbid": "f2fb0ff0-5679-42ec-a55c-15109ce6e320", + "name": "Die Ärzte", + "creation_date": "2020-05-07T11:53:13.366062Z", + "modification_date": "2020-05-07T11:53:13.366213Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-05-07T13:04:48.792353Z", + "is_local": true, + "position": 16, + "disc_number": 1, + "downloads_count": 10, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T08:39:41.245603Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + }, + { + "id": 16784, + "user": { + "id": 1, + "username": "gcrkrause", + "name": "", + "date_joined": "2020-05-06T21:02:47Z", + "avatar": null + }, + "track": { + "cover": null, + "album": { + "id": 16, + "fid": "https://soundship.de/federation/music/albums/7ac4166a-4416-40a3-9c23-d976400310fa", + "mbid": "4f16eef9-a048-39d9-ae7f-f8359f657a2a", + "title": "Audioslave", + "artist": { + "id": 10, + "fid": "https://soundship.de/federation/music/artists/baa78eba-9351-4d6c-b2a7-b5131fa72f0d", + "mbid": "020bfbb4-05c3-4c86-b372-17825c262094", + "name": "Audioslave", + "creation_date": "2020-05-07T10:05:24.262138Z", + "modification_date": "2020-05-07T10:05:24.262212Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2002-11-20", + "cover": { + "uuid": "1fdc43e5-5704-482f-bff3-1e261a474735", + "size": 19992, + "mimetype": "image/jpeg", + "creation_date": "2020-05-07T10:05:24.273024Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/25/6d/bf/attachment_cover-7ac4166a-4416-40a3-9c23-d976400310fa.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3f6a619fcf91d728db0b37973c0bbb40b9316f04dfe64a6192112ad0f8c5ebf5", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/25/6d/bf/attachment_cover-7ac4166a-4416-40a3-9c23-d976400310fa-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b0fa1482e6b4e6acf66bb64a20883f8f990fc88fe78f46bd48253975d3d0b919", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/25/6d/bf/attachment_cover-7ac4166a-4416-40a3-9c23-d976400310fa-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133617Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=db9e6ab4020c732b2348e2199f2da7d43fd1d5e7726f63dadf355f7d33488199" + } + }, + "creation_date": "2020-05-07T10:05:24.269610Z", + "is_local": true, + "tracks_count": 28 + }, + "uploads": [], + "listen_url": "/api/v1/listen/ec4eaa11-3f3c-426e-9a75-d9cfa88c5190/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 48721, + "fid": "https://soundship.de/federation/music/tracks/ec4eaa11-3f3c-426e-9a75-d9cfa88c5190", + "mbid": null, + "title": "Set It Off", + "artist": { + "id": 10, + "fid": "https://soundship.de/federation/music/artists/baa78eba-9351-4d6c-b2a7-b5131fa72f0d", + "mbid": "020bfbb4-05c3-4c86-b372-17825c262094", + "name": "Audioslave", + "creation_date": "2020-05-07T10:05:24.262138Z", + "modification_date": "2020-05-07T10:05:24.262212Z", + "is_local": true, + "content_category": "music", + "cover": null + }, + "creation_date": "2020-12-08T12:30:22.962272Z", + "is_local": true, + "position": 6, + "disc_number": null, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "creation_date": "2022-09-23T08:35:56.450124Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } + } + ] +} \ No newline at end of file diff --git a/tests/data/instance/global_preference.json b/tests/data/instance/global_preference.json new file mode 100644 index 0000000000000000000000000000000000000000..23a99928bbfc11d7a9718f032c50610399d55c79 --- /dev/null +++ b/tests/data/instance/global_preference.json @@ -0,0 +1,414 @@ +[ + { + "section": "audio", + "name": "max_channels", + "identifier": "audio__max_channels", + "default": 20, + "value": 20, + "verbose_name": "Max channels allowed per user", + "help_text": null, + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "federation", + "name": "music_cache_duration", + "identifier": "federation__music_cache_duration", + "default": 2880, + "value": 2880, + "verbose_name": "Music cache duration", + "help_text": "How many minutes do you want to keep a copy of federated tracks locally? Federated files that were not listened in this interval will be erased and refetched from the remote on the next listening.", + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "federation", + "name": "public_index", + "identifier": "federation__public_index", + "default": true, + "value": true, + "verbose_name": "Enable public index", + "help_text": "If this is enabled, public channels and libraries will be crawlable by other pods and bots", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "instance", + "name": "banner", + "identifier": "instance__banner", + "default": null, + "value": null, + "verbose_name": "Banner image", + "help_text": "This banner will be displayed on your pod's landing and about page. At least 600x100px recommended.", + "additional_data": {}, + "field": { + "class": "FileField", + "widget": { + "class": "ImageWidget" + }, + "input_type": "file" + } + }, + { + "section": "instance", + "name": "contact_email", + "identifier": "instance__contact_email", + "default": "", + "value": "mail@georg-krause.net", + "verbose_name": "Contact email", + "help_text": "A contact e-mail address for visitors who need to contact an admin or moderator", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "TextInput" + }, + "input_type": "text" + } + }, + { + "section": "instance", + "name": "funkwhale_support_message_enabled", + "identifier": "instance__funkwhale_support_message_enabled", + "default": true, + "value": true, + "verbose_name": "Funkwhale Support message", + "help_text": "If this is enabled, we will periodically display a message to encourage local users to support Funkwhale.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "instance", + "name": "long_description", + "identifier": "instance__long_description", + "default": "", + "value": "", + "verbose_name": "Long description", + "help_text": "Instance long description, displayed in the about page.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "instance", + "name": "name", + "identifier": "instance__name", + "default": "", + "value": "Soundship", + "verbose_name": "Public name", + "help_text": "The public name of your instance, displayed in the about page.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "TextInput" + }, + "input_type": "text" + } + }, + { + "section": "instance", + "name": "rules", + "identifier": "instance__rules", + "default": "", + "value": "", + "verbose_name": "Rules", + "help_text": "Rules/Code of Conduct.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "instance", + "name": "short_description", + "identifier": "instance__short_description", + "default": "", + "value": "", + "verbose_name": "Short description", + "help_text": "Instance succinct description, displayed in the about page.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "TextInput" + }, + "input_type": "text" + } + }, + { + "section": "instance", + "name": "support_message", + "identifier": "instance__support_message", + "default": "", + "value": "", + "verbose_name": "Support message", + "help_text": "A short message that will be displayed periodically to local users. Use it to ask for financial support or anything else you might need. (markdown allowed).", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "instance", + "name": "terms", + "identifier": "instance__terms", + "default": "", + "value": "", + "verbose_name": "Terms of service", + "help_text": "Terms of service and privacy policy for your instance.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "moderation", + "name": "signup_approval_enabled", + "identifier": "moderation__signup_approval_enabled", + "default": false, + "value": true, + "verbose_name": "Enable manual sign-up validation", + "help_text": "If enabled, new registrations will go to a moderation queue and need to be reviewed by moderators.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "moderation", + "name": "signup_form_customization", + "identifier": "moderation__signup_form_customization", + "default": {}, + "value": { + "fields": [], + "help_text": { + "content_type": "text/markdown", + "html": "<p>Registration is restricted to friends. Before registering, please get in touch: mail@georg<a rel=\"nofollow\">-krause.net</a></p>", + "text": "Registration is restricted to friends. Before registering, please get in touch: mail@georg-krause.net" + } + }, + "verbose_name": "Sign-up form customization", + "help_text": "Configure custom fields and help text for your sign-up form", + "additional_data": {}, + "field": { + "class": "JSONField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "moderation", + "name": "unauthenticated_report_types", + "identifier": "moderation__unauthenticated_report_types", + "default": ["takedown_request", "illegal_content"], + "value": ["illegal_content", "takedown_request"], + "verbose_name": "Accountless report categories", + "help_text": "A list of categories for which external users (without an account) can submit a report", + "additional_data": { + "choices": [ + ["takedown_request", "Takedown request"], + ["invalid_metadata", "Invalid metadata"], + ["illegal_content", "Illegal content"], + ["offensive_content", "Offensive content"], + ["other", "Other"] + ] + }, + "field": { + "class": "MultipleChoiceField", + "widget": { + "class": "SelectMultiple" + }, + "input_type": "select" + } + }, + { + "section": "music", + "name": "transcoding_cache_duration", + "identifier": "music__transcoding_cache_duration", + "default": 10080, + "value": 10080, + "verbose_name": "Transcoding cache duration", + "help_text": "How many minutes do you want to keep a copy of transcoded tracks on the server? Transcoded files that were not listened in this interval will be erased and retranscoded on the next listening.", + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "music", + "name": "transcoding_enabled", + "identifier": "music__transcoding_enabled", + "default": true, + "value": true, + "verbose_name": "Transcoding enabled", + "help_text": "Enable transcoding of audio files in formats requested by the client. This is especially useful for devices that do not support formats such as Flac or Ogg, but the transcoding process will increase the load on the server.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "playlists", + "name": "max_tracks", + "identifier": "playlists__max_tracks", + "default": 250, + "value": 250, + "verbose_name": "Max tracks per playlist", + "help_text": null, + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "subsonic", + "name": "enabled", + "identifier": "subsonic__enabled", + "default": true, + "value": false, + "verbose_name": "Enabled Subsonic API", + "help_text": "Funkwhale supports a subset of the Subsonic API, that makes it compatible with existing clients such as DSub for Android or Clementine for desktop. However, Subsonic protocol is less than ideal in terms of security and you can disable this feature completely using this flag.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "ui", + "name": "custom_css", + "identifier": "ui__custom_css", + "default": "", + "value": "", + "verbose_name": "Custom CSS code", + "help_text": "Custom CSS code, to be included in a <style> tag on all pages. Loading third-party resources such as fonts or images can affect the performance of the app and the privacy of your users.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "users", + "name": "default_permissions", + "identifier": "users__default_permissions", + "default": [], + "value": [], + "verbose_name": "Default permissions", + "help_text": "A list of default preferences to give to all registered users.", + "additional_data": { + "choices": [ + ["moderation", "Moderation"], + ["library", "Manage library"], + ["settings", "Manage instance-level settings"] + ] + }, + "field": { + "class": "MultipleChoiceField", + "widget": { + "class": "SelectMultiple" + }, + "input_type": "select" + } + }, + { + "section": "users", + "name": "registration_enabled", + "identifier": "users__registration_enabled", + "default": false, + "value": false, + "verbose_name": "Open registrations to new users", + "help_text": "When enabled, new users will be able to register on this instance.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "users", + "name": "upload_quota", + "identifier": "users__upload_quota", + "default": 1000, + "value": 1000, + "verbose_name": "Upload quota", + "help_text": "Default upload quota applied to each users, in MB. This can be overridden on a per-user basis.", + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + } +] diff --git a/tests/data/instance/global_preference_request.json b/tests/data/instance/global_preference_request.json new file mode 100644 index 0000000000000000000000000000000000000000..2ee7317139e81ad0837c72c7bf38f93830b71f72 --- /dev/null +++ b/tests/data/instance/global_preference_request.json @@ -0,0 +1,453 @@ +[ + { + "section": "audio", + "name": "max_channels", + "identifier": "audio__max_channels", + "default": 20, + "value": 20, + "verbose_name": "Max channels allowed per user", + "help_text": null, + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "federation", + "name": "music_cache_duration", + "identifier": "federation__music_cache_duration", + "default": 2880, + "value": 2880, + "verbose_name": "Music cache duration", + "help_text": "How many minutes do you want to keep a copy of federated tracks locally? Federated files that were not listened in this interval will be erased and refetched from the remote on the next listening.", + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "federation", + "name": "public_index", + "identifier": "federation__public_index", + "default": true, + "value": true, + "verbose_name": "Enable public index", + "help_text": "If this is enabled, public channels and libraries will be crawlable by other pods and bots", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "instance", + "name": "banner", + "identifier": "instance__banner", + "default": null, + "value": "https://fra1.digitaloceanspaces.com/tanukitunes/dynamic_preferences/instance__banner/parade%281%29.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T203933Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4778e5cd971319e8a600cb2cddbd8640f776144e6f7332abdeb4e8d6edce9b19", + "verbose_name": "Banner image", + "help_text": "This banner will be displayed on your pod's landing and about page. At least 600x100px recommended.", + "additional_data": {}, + "field": { + "class": "FileField", + "widget": { + "class": "ImageWidget" + }, + "input_type": "file" + } + }, + { + "section": "instance", + "name": "contact_email", + "identifier": "instance__contact_email", + "default": "", + "value": "sporiff@funkwhale.audio", + "verbose_name": "Contact email", + "help_text": "A contact e-mail address for visitors who need to contact an admin or moderator", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "TextInput" + }, + "input_type": "text" + } + }, + { + "section": "instance", + "name": "funkwhale_support_message_enabled", + "identifier": "instance__funkwhale_support_message_enabled", + "default": true, + "value": true, + "verbose_name": "Funkwhale Support message", + "help_text": "If this is enabled, we will periodically display a message to encourage local users to support Funkwhale.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "instance", + "name": "long_description", + "identifier": "instance__long_description", + "default": "", + "value": "Welcome to Tanuki Tunes, a federated funkwhale service for folklore lovers! This is a place to share your music and other related recordings with a wider federated network, and also to host your music for listening on-the-go. Tanuki Tunes is named after the Tanuki, a mystical shapeshifter of Japanese folklore.\r\n\r\n---\r\n\r\nIf you would like to help out with hosting costs and a growing library of creative commons music please consider donating.\r\n\r\n<div class=\"two ui buttons\">\r\n<a class=\"ui primary button\" href=\"https://paypal.me/cdainsworth\" target=\"_blank\">PayPal</a>\r\n<div class=\"or\"></div>\r\n<a class=\"ui success button\" href=\"https://liberapay.com/CiaranAinsworth/\" target=\"_blank\">Liberapay</a>\r\n</div>", + "verbose_name": "Long description", + "help_text": "Instance long description, displayed in the about page.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "instance", + "name": "name", + "identifier": "instance__name", + "default": "", + "value": "Tanuki Tunes", + "verbose_name": "Public name", + "help_text": "The public name of your instance, displayed in the about page.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "TextInput" + }, + "input_type": "text" + } + }, + { + "section": "instance", + "name": "rules", + "identifier": "instance__rules", + "default": "", + "value": "This pod abides by the [code of conduct as set out by the Funkwhale project](https://funkwhale.audio/code-of-conduct).\r\n\r\nSince this pod is hosted in Germany, all content should conform broadly to European law. Any hateful content will be immediately removed and the associated user(s) banned. Harassment of users is taken very seriously and will result in a ban. Please treat each other respectfully and have fun!\r\n\r\nPlease note all communications are undertaken in English (it's the only language I speak well!).", + "verbose_name": "Rules", + "help_text": "Rules/Code of Conduct.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "instance", + "name": "short_description", + "identifier": "instance__short_description", + "default": "", + "value": "Federated funk for folklorists", + "verbose_name": "Short description", + "help_text": "Instance succinct description, displayed in the about page.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "TextInput" + }, + "input_type": "text" + } + }, + { + "section": "instance", + "name": "support_message", + "identifier": "instance__support_message", + "default": "", + "value": "If you would like to help me pay for hosting, please consider donating at the below links. All money will go towards increased performance, space, and Creative Commons Music.\r\n\r\n<div class=\"two ui buttons\">\r\n<a class=\"ui primary button\" href=\"https://paypal.me/cdainsworth\" target=\"_blank\">PayPal</a>\r\n<div class=\"or\"></div>\r\n<a class=\"ui success button\" href=\"https://liberapay.com/CiaranAinsworth/\" target=\"_blank\">Liberapay</a>\r\n</div>", + "verbose_name": "Support message", + "help_text": "A short message that will be displayed periodically to local users. Use it to ask for financial support or anything else you might need. (markdown allowed).", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "instance", + "name": "terms", + "identifier": "instance__terms", + "default": "", + "value": "Tanuki Tunes is a bleeding-edge pod, meaning it tracks the development branch of Funkwhale. This can occasionally cause some instability, but it also helps bugs get fixed quicker. The service is provided as-is and free of charge. Reasonable efforts will be made by the administrator re: uptime and backups but you should also try to keep backups of your own.\r\n\r\nContent published on this pod is stored securely by [Digital Ocean](https://digitalocean.com). Takedown requests will be assessed swiftly and actioned appropriately including removal from backups.\r\n\r\nIf copyrighted material is found on the pod in a publicly accessible library, the library will be set to private. This is to protect against potential copyright violations.\r\n\r\nNon-public material in public libraries from other pods will be removed in the first instance and the user informed. Communication will be sent to the host pod's administrator to notify them of the content to get the library hidden. If no action is taken and the library is followed again, the host pod will be blacklisted to avoid any legal complications.", + "verbose_name": "Terms of service", + "help_text": "Terms of service and privacy policy for your instance.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "moderation", + "name": "signup_approval_enabled", + "identifier": "moderation__signup_approval_enabled", + "default": false, + "value": true, + "verbose_name": "Enable manual sign-up validation", + "help_text": "If enabled, new registrations will go to a moderation queue and need to be reviewed by moderators.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "moderation", + "name": "signup_form_customization", + "identifier": "moderation__signup_form_customization", + "default": {}, + "value": { + "fields": [ + { + "input_type": "long_text", + "label": "How will you use Funkwhale?", + "required": true + } + ], + "help_text": { + "content_type": "text/markdown", + "html": "<p>Signups are open! Please leave some information about what you want to do with your account so I know you're not a bot!</p>", + "text": "Signups are open! Please leave some information about what you want to do with your account so I know you're not a bot!" + } + }, + "verbose_name": "Sign-up form customization", + "help_text": "Configure custom fields and help text for your sign-up form", + "additional_data": {}, + "field": { + "class": "JSONField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "moderation", + "name": "unauthenticated_report_types", + "identifier": "moderation__unauthenticated_report_types", + "default": [ + "takedown_request", + "illegal_content" + ], + "value": [ + "illegal_content", + "invalid_metadata", + "offensive_content", + "other", + "takedown_request" + ], + "verbose_name": "Accountless report categories", + "help_text": "A list of categories for which external users (without an account) can submit a report", + "additional_data": { + "choices": [ + [ + "takedown_request", + "Takedown request" + ], + [ + "invalid_metadata", + "Invalid metadata" + ], + [ + "illegal_content", + "Illegal content" + ], + [ + "offensive_content", + "Offensive content" + ], + [ + "other", + "Other" + ] + ] + }, + "field": { + "class": "MultipleChoiceField", + "widget": { + "class": "SelectMultiple" + }, + "input_type": "select" + } + }, + { + "section": "music", + "name": "transcoding_cache_duration", + "identifier": "music__transcoding_cache_duration", + "default": 10080, + "value": 10080, + "verbose_name": "Transcoding cache duration", + "help_text": "How many minutes do you want to keep a copy of transcoded tracks on the server? Transcoded files that were not listened in this interval will be erased and retranscoded on the next listening.", + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "music", + "name": "transcoding_enabled", + "identifier": "music__transcoding_enabled", + "default": true, + "value": true, + "verbose_name": "Transcoding enabled", + "help_text": "Enable transcoding of audio files in formats requested by the client. This is especially useful for devices that do not support formats such as Flac or Ogg, but the transcoding process will increase the load on the server.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "playlists", + "name": "max_tracks", + "identifier": "playlists__max_tracks", + "default": 250, + "value": 250, + "verbose_name": "Max tracks per playlist", + "help_text": null, + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + }, + { + "section": "subsonic", + "name": "enabled", + "identifier": "subsonic__enabled", + "default": true, + "value": true, + "verbose_name": "Enabled Subsonic API", + "help_text": "Funkwhale supports a subset of the Subsonic API, that makes it compatible with existing clients such as DSub for Android or Clementine for desktop. However, Subsonic protocol is less than ideal in terms of security and you can disable this feature completely using this flag.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "ui", + "name": "custom_css", + "identifier": "ui__custom_css", + "default": "", + "value": "", + "verbose_name": "Custom CSS code", + "help_text": "Custom CSS code, to be included in a <style> tag on all pages. Loading third-party resources such as fonts or images can affect the performance of the app and the privacy of your users.", + "additional_data": {}, + "field": { + "class": "CharField", + "widget": { + "class": "Textarea" + }, + "input_type": null + } + }, + { + "section": "users", + "name": "default_permissions", + "identifier": "users__default_permissions", + "default": [], + "value": [], + "verbose_name": "Default permissions", + "help_text": "A list of default preferences to give to all registered users.", + "additional_data": { + "choices": [ + [ + "moderation", + "Moderation" + ], + [ + "library", + "Manage library" + ], + [ + "settings", + "Manage instance-level settings" + ] + ] + }, + "field": { + "class": "MultipleChoiceField", + "widget": { + "class": "SelectMultiple" + }, + "input_type": "select" + } + }, + { + "section": "users", + "name": "registration_enabled", + "identifier": "users__registration_enabled", + "default": false, + "value": true, + "verbose_name": "Open registrations to new users", + "help_text": "When enabled, new users will be able to register on this instance.", + "additional_data": {}, + "field": { + "class": "BooleanField", + "widget": { + "class": "CheckboxInput" + }, + "input_type": "checkbox" + } + }, + { + "section": "users", + "name": "upload_quota", + "identifier": "users__upload_quota", + "default": 1000, + "value": 10000, + "verbose_name": "Upload quota", + "help_text": "Default upload quota applied to each users, in MB. This can be overridden on a per-user basis.", + "additional_data": {}, + "field": { + "class": "IntegerField", + "widget": { + "class": "NumberInput" + }, + "input_type": "number" + } + } +] \ No newline at end of file diff --git a/tests/data/instance/nodeinfo_2_0.json b/tests/data/instance/nodeinfo_2_0.json new file mode 100644 index 0000000000000000000000000000000000000000..44bc4efc6643b0bb21e02f5eb7779a8ede93c5f5 --- /dev/null +++ b/tests/data/instance/nodeinfo_2_0.json @@ -0,0 +1,86 @@ +{ + "version": "2.0", + "software": { + "name": "funkwhale", + "version": "1.2.7" + }, + "protocols": [ + "activitypub" + ], + "services": { + "inbound": [], + "outbound": [] + }, + "openRegistrations": false, + "usage": { + "users": { + "total": 0, + "activeHalfyear": 0, + "activeMonth": 0 + } + }, + "metadata": { + "actorId": "https://soundship.de/federation/actors/service", + "private": false, + "shortDescription": "", + "longDescription": "", + "rules": "", + "contactEmail": "mail@georg-krause.net", + "terms": "", + "nodeName": "Soundship", + "banner": null, + "defaultUploadQuota": 1000, + "library": { + "federationEnabled": true, + "anonymousCanListen": true + }, + "supportedUploadExtensions": [ + "aac", + "aif", + "aiff", + "flac", + "m4a", + "mp3", + "ogg", + "opus" + ], + "allowList": { + "enabled": false, + "domains": null + }, + "reportTypes": [ + { + "type": "takedown_request", + "label": "Takedown request", + "anonymous": true + }, + { + "type": "invalid_metadata", + "label": "Invalid metadata", + "anonymous": false + }, + { + "type": "illegal_content", + "label": "Illegal content", + "anonymous": true + }, + { + "type": "offensive_content", + "label": "Offensive content", + "anonymous": false + }, + { + "type": "other", + "label": "Other", + "anonymous": false + } + ], + "funkwhaleSupportMessageEnabled": true, + "instanceSupportMessage": "", + "endpoints": { + "knownNodes": null, + "channels": "https://soundship.de/federation/index/channels", + "libraries": "https://soundship.de/federation/index/libraries" + } + } +} \ No newline at end of file diff --git a/tests/data/instance/patched_global_preference_request.json b/tests/data/instance/patched_global_preference_request.json new file mode 100644 index 0000000000000000000000000000000000000000..da526d07278806f3e749da3fb3e791f3d22811db --- /dev/null +++ b/tests/data/instance/patched_global_preference_request.json @@ -0,0 +1,3 @@ +{ + "value": 20 +} \ No newline at end of file diff --git a/tests/data/libraries/library.json b/tests/data/libraries/library.json new file mode 100644 index 0000000000000000000000000000000000000000..b8ae80bbb4e9e50ff9dd7d25664659a4ccb215a3 --- /dev/null +++ b/tests/data/libraries/library.json @@ -0,0 +1,24 @@ +{ + "uuid": "abedba0c-8bc8-43d9-b3ee-adbb6e08efed", + "fid": "https://soundship.de/federation/music/libraries/abedba0c-8bc8-43d9-b3ee-adbb6e08efed", + "name": "Georgs Free Music Collection", + "description": "I will collect my favorite free music here, I hope you enjoy! :)", + "privacy_level": "everyone", + "uploads_count": 16, + "size": 63858870, + "creation_date": "2021-10-20T13:29:36.097130Z", + "actor": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + } +} \ No newline at end of file diff --git a/tests/data/licenses/license.json b/tests/data/licenses/license.json new file mode 100644 index 0000000000000000000000000000000000000000..c4fc352e0e405ee9c4968da8e27266b50d426720 --- /dev/null +++ b/tests/data/licenses/license.json @@ -0,0 +1,11 @@ +{ + "id": "http://artlibre.org/licence/lal", + "url": "https://artlibre.org/licence/lal", + "code": "LAL-1.3", + "name": "Licence Art Libre 1.3", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true +} \ No newline at end of file diff --git a/tests/data/licenses/paginated_license_list.json b/tests/data/licenses/paginated_license_list.json new file mode 100644 index 0000000000000000000000000000000000000000..3eb50dfe27106fc016c889bedf4cf67a8100e29c --- /dev/null +++ b/tests/data/licenses/paginated_license_list.json @@ -0,0 +1,3857 @@ +{ + "count": 350, + "next": null, + "previous": null, + "results": [ + { + "id": "http://creativecommons.org/publicdomain/zero/1.0/", + "url": "https://creativecommons.org/publicdomain/zero/1.0/", + "code": "cc0-1.0", + "name": "CC0 - Public domain", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": false, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/1.0/", + "url": "https://creativecommons.org/licenses/by/1.0/", + "code": "cc-by-1.0", + "name": "Creative commons - Attribution 1.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.0/", + "url": "https://creativecommons.org/licenses/by/2.0/", + "code": "cc-by-2.0", + "name": "Creative commons - Attribution 2.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/", + "url": "https://creativecommons.org/licenses/by/2.5/", + "code": "cc-by-2.5", + "name": "Creative commons - Attribution 2.5", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/ar/", + "url": "https://creativecommons.org/licenses/by/2.5/ar/", + "code": "cc-by-2.5-ar", + "name": "Creative commons - Attribution 2.5 Argentina", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/bg/", + "url": "https://creativecommons.org/licenses/by/2.5/bg/", + "code": "cc-by-2.5-bg", + "name": "Creative commons - Attribution 2.5 Bulgaria", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/ca/", + "url": "https://creativecommons.org/licenses/by/2.5/ca/", + "code": "cc-by-2.5-ca", + "name": "Creative commons - Attribution 2.5 Canada", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/co/", + "url": "https://creativecommons.org/licenses/by/2.5/co/", + "code": "cc-by-2.5-co", + "name": "Creative commons - Attribution 2.5 Colombia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/dk/", + "url": "https://creativecommons.org/licenses/by/2.5/dk/", + "code": "cc-by-2.5-dk", + "name": "Creative commons - Attribution 2.5 Denmark", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/hu/", + "url": "https://creativecommons.org/licenses/by/2.5/hu/", + "code": "cc-by-2.5-hu", + "name": "Creative commons - Attribution 2.5 Hungary", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/il/", + "url": "https://creativecommons.org/licenses/by/2.5/il/", + "code": "cc-by-2.5-il", + "name": "Creative commons - Attribution 2.5 Israel", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/in/", + "url": "https://creativecommons.org/licenses/by/2.5/in/", + "code": "cc-by-2.5-in", + "name": "Creative commons - Attribution 2.5 India", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/mk/", + "url": "https://creativecommons.org/licenses/by/2.5/mk/", + "code": "cc-by-2.5-mk", + "name": "Creative commons - Attribution 2.5 Macedonia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/mt/", + "url": "https://creativecommons.org/licenses/by/2.5/mt/", + "code": "cc-by-2.5-mt", + "name": "Creative commons - Attribution 2.5 Malta", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/mx/", + "url": "https://creativecommons.org/licenses/by/2.5/mx/", + "code": "cc-by-2.5-mx", + "name": "Creative commons - Attribution 2.5 Mexico", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/my/", + "url": "https://creativecommons.org/licenses/by/2.5/my/", + "code": "cc-by-2.5-my", + "name": "Creative commons - Attribution 2.5 Malaysia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/pe/", + "url": "https://creativecommons.org/licenses/by/2.5/pe/", + "code": "cc-by-2.5-pe", + "name": "Creative commons - Attribution 2.5 Peru", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/2.5/scotland/", + "url": "https://creativecommons.org/licenses/by/2.5/scotland/", + "code": "cc-by-2.5-scotland", + "name": "Creative commons - Attribution 2.5 UK: Scotland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/", + "url": "https://creativecommons.org/licenses/by/3.0/", + "code": "cc-by-3.0", + "name": "Creative commons - Attribution 3.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/at/", + "url": "https://creativecommons.org/licenses/by/3.0/at/", + "code": "cc-by-3.0-at", + "name": "Creative commons - Attribution 3.0 Austria", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/au/", + "url": "https://creativecommons.org/licenses/by/3.0/au/", + "code": "cc-by-3.0-au", + "name": "Creative commons - Attribution 3.0 Australia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/br/", + "url": "https://creativecommons.org/licenses/by/3.0/br/", + "code": "cc-by-3.0-br", + "name": "Creative commons - Attribution 3.0 Brazil", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ch/", + "url": "https://creativecommons.org/licenses/by/3.0/ch/", + "code": "cc-by-3.0-ch", + "name": "Creative commons - Attribution 3.0 Switzerland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/cl/", + "url": "https://creativecommons.org/licenses/by/3.0/cl/", + "code": "cc-by-3.0-cl", + "name": "Creative commons - Attribution 3.0 Chile", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/cn/", + "url": "https://creativecommons.org/licenses/by/3.0/cn/", + "code": "cc-by-3.0-cn", + "name": "Creative commons - Attribution 3.0 China Mainland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/cr/", + "url": "https://creativecommons.org/licenses/by/3.0/cr/", + "code": "cc-by-3.0-cr", + "name": "Creative commons - Attribution 3.0 Costa Rica", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/cz/", + "url": "https://creativecommons.org/licenses/by/3.0/cz/", + "code": "cc-by-3.0-cz", + "name": "Creative commons - Attribution 3.0 Czech Republic", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/de/", + "url": "https://creativecommons.org/licenses/by/3.0/de/", + "code": "cc-by-3.0-de", + "name": "Creative commons - Attribution 3.0 Germany", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ec/", + "url": "https://creativecommons.org/licenses/by/3.0/ec/", + "code": "cc-by-3.0-ec", + "name": "Creative commons - Attribution 3.0 Ecuador", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ee/", + "url": "https://creativecommons.org/licenses/by/3.0/ee/", + "code": "cc-by-3.0-ee", + "name": "Creative commons - Attribution 3.0 Estonia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/eg/", + "url": "https://creativecommons.org/licenses/by/3.0/eg/", + "code": "cc-by-3.0-eg", + "name": "Creative commons - Attribution 3.0 Egypt", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/es/", + "url": "https://creativecommons.org/licenses/by/3.0/es/", + "code": "cc-by-3.0-es", + "name": "Creative commons - Attribution 3.0 Spain", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/fr/", + "url": "https://creativecommons.org/licenses/by/3.0/fr/", + "code": "cc-by-3.0-fr", + "name": "Creative commons - Attribution 3.0 France", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/gr/", + "url": "https://creativecommons.org/licenses/by/3.0/gr/", + "code": "cc-by-3.0-gr", + "name": "Creative commons - Attribution 3.0 Greece", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/gt/", + "url": "https://creativecommons.org/licenses/by/3.0/gt/", + "code": "cc-by-3.0-gt", + "name": "Creative commons - Attribution 3.0 Guatemala", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/hk/", + "url": "https://creativecommons.org/licenses/by/3.0/hk/", + "code": "cc-by-3.0-hk", + "name": "Creative commons - Attribution 3.0 Hong Kong", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/hr/", + "url": "https://creativecommons.org/licenses/by/3.0/hr/", + "code": "cc-by-3.0-hr", + "name": "Creative commons - Attribution 3.0 Croatia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ie/", + "url": "https://creativecommons.org/licenses/by/3.0/ie/", + "code": "cc-by-3.0-ie", + "name": "Creative commons - Attribution 3.0 Ireland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/igo/", + "url": "https://creativecommons.org/licenses/by/3.0/igo/", + "code": "cc-by-3.0-igo", + "name": "Creative commons - Attribution 3.0 IGO", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/it/", + "url": "https://creativecommons.org/licenses/by/3.0/it/", + "code": "cc-by-3.0-it", + "name": "Creative commons - Attribution 3.0 Italy", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/lu/", + "url": "https://creativecommons.org/licenses/by/3.0/lu/", + "code": "cc-by-3.0-lu", + "name": "Creative commons - Attribution 3.0 Luxembourg", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/nl/", + "url": "https://creativecommons.org/licenses/by/3.0/nl/", + "code": "cc-by-3.0-nl", + "name": "Creative commons - Attribution 3.0 Netherlands", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/no/", + "url": "https://creativecommons.org/licenses/by/3.0/no/", + "code": "cc-by-3.0-no", + "name": "Creative commons - Attribution 3.0 Norway", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/nz/", + "url": "https://creativecommons.org/licenses/by/3.0/nz/", + "code": "cc-by-3.0-nz", + "name": "Creative commons - Attribution 3.0 New Zealand", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ph/", + "url": "https://creativecommons.org/licenses/by/3.0/ph/", + "code": "cc-by-3.0-ph", + "name": "Creative commons - Attribution 3.0 Philippines", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/pl/", + "url": "https://creativecommons.org/licenses/by/3.0/pl/", + "code": "cc-by-3.0-pl", + "name": "Creative commons - Attribution 3.0 Poland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/pr/", + "url": "https://creativecommons.org/licenses/by/3.0/pr/", + "code": "cc-by-3.0-pr", + "name": "Creative commons - Attribution 3.0 Puerto Rico", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/pt/", + "url": "https://creativecommons.org/licenses/by/3.0/pt/", + "code": "cc-by-3.0-pt", + "name": "Creative commons - Attribution 3.0 Portugal", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ro/", + "url": "https://creativecommons.org/licenses/by/3.0/ro/", + "code": "cc-by-3.0-ro", + "name": "Creative commons - Attribution 3.0 Romania", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/rs/", + "url": "https://creativecommons.org/licenses/by/3.0/rs/", + "code": "cc-by-3.0-rs", + "name": "Creative commons - Attribution 3.0 Serbia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/sg/", + "url": "https://creativecommons.org/licenses/by/3.0/sg/", + "code": "cc-by-3.0-sg", + "name": "Creative commons - Attribution 3.0 Singapore", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/th/", + "url": "https://creativecommons.org/licenses/by/3.0/th/", + "code": "cc-by-3.0-th", + "name": "Creative commons - Attribution 3.0 Thailand", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/tw/", + "url": "https://creativecommons.org/licenses/by/3.0/tw/", + "code": "cc-by-3.0-tw", + "name": "Creative commons - Attribution 3.0 Taiwan", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ug/", + "url": "https://creativecommons.org/licenses/by/3.0/ug/", + "code": "cc-by-3.0-ug", + "name": "Creative commons - Attribution 3.0 Uganda", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/us/", + "url": "https://creativecommons.org/licenses/by/3.0/us/", + "code": "cc-by-3.0-us", + "name": "Creative commons - Attribution 3.0 United States", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/ve/", + "url": "https://creativecommons.org/licenses/by/3.0/ve/", + "code": "cc-by-3.0-ve", + "name": "Creative commons - Attribution 3.0 Venezuela", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/vn/", + "url": "https://creativecommons.org/licenses/by/3.0/vn/", + "code": "cc-by-3.0-vn", + "name": "Creative commons - Attribution 3.0 Vietnam", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/3.0/za/", + "url": "https://creativecommons.org/licenses/by/3.0/za/", + "code": "cc-by-3.0-za", + "name": "Creative commons - Attribution 3.0 South Africa", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by/4.0/", + "url": "https://creativecommons.org/licenses/by/4.0/", + "code": "cc-by-4.0", + "name": "Creative commons - Attribution 4.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/1.0/", + "url": "https://creativecommons.org/licenses/by-nc/1.0/", + "code": "cc-by-nc-1.0", + "name": "Creative commons - Attribution-NonCommercial 1.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.0/", + "url": "https://creativecommons.org/licenses/by-nc/2.0/", + "code": "cc-by-nc-2.0", + "name": "Creative commons - Attribution-NonCommercial 2.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/", + "code": "cc-by-nc-2.5", + "name": "Creative commons - Attribution-NonCommercial 2.5", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/ar/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/ar/", + "code": "cc-by-nc-2.5-ar", + "name": "Creative commons - Attribution-NonCommercial 2.5 Argentina", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/bg/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/bg/", + "code": "cc-by-nc-2.5-bg", + "name": "Creative commons - Attribution-NonCommercial 2.5 Bulgaria", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/ca/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/ca/", + "code": "cc-by-nc-2.5-ca", + "name": "Creative commons - Attribution-NonCommercial 2.5 Canada", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/co/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/co/", + "code": "cc-by-nc-2.5-co", + "name": "Creative commons - Attribution-NonCommercial 2.5 Colombia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/dk/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/dk/", + "code": "cc-by-nc-2.5-dk", + "name": "Creative commons - Attribution-NonCommercial 2.5 Denmark", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/hu/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/hu/", + "code": "cc-by-nc-2.5-hu", + "name": "Creative commons - Attribution-NonCommercial 2.5 Hungary", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/il/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/il/", + "code": "cc-by-nc-2.5-il", + "name": "Creative commons - Attribution-NonCommercial 2.5 Israel", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/in/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/in/", + "code": "cc-by-nc-2.5-in", + "name": "Creative commons - Attribution-NonCommercial 2.5 India", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/mk/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/mk/", + "code": "cc-by-nc-2.5-mk", + "name": "Creative commons - Attribution-NonCommercial 2.5 Macedonia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/mt/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/mt/", + "code": "cc-by-nc-2.5-mt", + "name": "Creative commons - Attribution-NonCommercial 2.5 Malta", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/mx/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/mx/", + "code": "cc-by-nc-2.5-mx", + "name": "Creative commons - Attribution-NonCommercial 2.5 Mexico", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/my/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/my/", + "code": "cc-by-nc-2.5-my", + "name": "Creative commons - Attribution-NonCommercial 2.5 Malaysia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/pe/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/pe/", + "code": "cc-by-nc-2.5-pe", + "name": "Creative commons - Attribution-NonCommercial 2.5 Peru", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/2.5/scotland/", + "url": "https://creativecommons.org/licenses/by-nc/2.5/scotland/", + "code": "cc-by-nc-2.5-scotland", + "name": "Creative commons - Attribution-NonCommercial 2.5 UK: Scotland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/", + "code": "cc-by-nc-3.0", + "name": "Creative commons - Attribution-NonCommercial 3.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/at/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/at/", + "code": "cc-by-nc-3.0-at", + "name": "Creative commons - Attribution-NonCommercial 3.0 Austria", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/au/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/au/", + "code": "cc-by-nc-3.0-au", + "name": "Creative commons - Attribution-NonCommercial 3.0 Australia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/br/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/br/", + "code": "cc-by-nc-3.0-br", + "name": "Creative commons - Attribution-NonCommercial 3.0 Brazil", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ch/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ch/", + "code": "cc-by-nc-3.0-ch", + "name": "Creative commons - Attribution-NonCommercial 3.0 Switzerland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/cl/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/cl/", + "code": "cc-by-nc-3.0-cl", + "name": "Creative commons - Attribution-NonCommercial 3.0 Chile", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/cn/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/cn/", + "code": "cc-by-nc-3.0-cn", + "name": "Creative commons - Attribution-NonCommercial 3.0 China Mainland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/cr/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/cr/", + "code": "cc-by-nc-3.0-cr", + "name": "Creative commons - Attribution-NonCommercial 3.0 Costa Rica", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/cz/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/cz/", + "code": "cc-by-nc-3.0-cz", + "name": "Creative commons - Attribution-NonCommercial 3.0 Czech Republic", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/de/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/de/", + "code": "cc-by-nc-3.0-de", + "name": "Creative commons - Attribution-NonCommercial 3.0 Germany", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ec/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ec/", + "code": "cc-by-nc-3.0-ec", + "name": "Creative commons - Attribution-NonCommercial 3.0 Ecuador", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ee/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ee/", + "code": "cc-by-nc-3.0-ee", + "name": "Creative commons - Attribution-NonCommercial 3.0 Estonia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/eg/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/eg/", + "code": "cc-by-nc-3.0-eg", + "name": "Creative commons - Attribution-NonCommercial 3.0 Egypt", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/es/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/es/", + "code": "cc-by-nc-3.0-es", + "name": "Creative commons - Attribution-NonCommercial 3.0 Spain", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/fr/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/fr/", + "code": "cc-by-nc-3.0-fr", + "name": "Creative commons - Attribution-NonCommercial 3.0 France", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/gr/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/gr/", + "code": "cc-by-nc-3.0-gr", + "name": "Creative commons - Attribution-NonCommercial 3.0 Greece", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/gt/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/gt/", + "code": "cc-by-nc-3.0-gt", + "name": "Creative commons - Attribution-NonCommercial 3.0 Guatemala", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/hk/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/hk/", + "code": "cc-by-nc-3.0-hk", + "name": "Creative commons - Attribution-NonCommercial 3.0 Hong Kong", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/hr/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/hr/", + "code": "cc-by-nc-3.0-hr", + "name": "Creative commons - Attribution-NonCommercial 3.0 Croatia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ie/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ie/", + "code": "cc-by-nc-3.0-ie", + "name": "Creative commons - Attribution-NonCommercial 3.0 Ireland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/igo/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/igo/", + "code": "cc-by-nc-3.0-igo", + "name": "Creative commons - Attribution-NonCommercial 3.0 IGO", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/it/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/it/", + "code": "cc-by-nc-3.0-it", + "name": "Creative commons - Attribution-NonCommercial 3.0 Italy", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/lu/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/lu/", + "code": "cc-by-nc-3.0-lu", + "name": "Creative commons - Attribution-NonCommercial 3.0 Luxembourg", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/nl/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/nl/", + "code": "cc-by-nc-3.0-nl", + "name": "Creative commons - Attribution-NonCommercial 3.0 Netherlands", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/no/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/no/", + "code": "cc-by-nc-3.0-no", + "name": "Creative commons - Attribution-NonCommercial 3.0 Norway", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/nz/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/nz/", + "code": "cc-by-nc-3.0-nz", + "name": "Creative commons - Attribution-NonCommercial 3.0 New Zealand", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ph/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ph/", + "code": "cc-by-nc-3.0-ph", + "name": "Creative commons - Attribution-NonCommercial 3.0 Philippines", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/pl/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/pl/", + "code": "cc-by-nc-3.0-pl", + "name": "Creative commons - Attribution-NonCommercial 3.0 Poland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/pr/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/pr/", + "code": "cc-by-nc-3.0-pr", + "name": "Creative commons - Attribution-NonCommercial 3.0 Puerto Rico", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/pt/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/pt/", + "code": "cc-by-nc-3.0-pt", + "name": "Creative commons - Attribution-NonCommercial 3.0 Portugal", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ro/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ro/", + "code": "cc-by-nc-3.0-ro", + "name": "Creative commons - Attribution-NonCommercial 3.0 Romania", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/rs/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/rs/", + "code": "cc-by-nc-3.0-rs", + "name": "Creative commons - Attribution-NonCommercial 3.0 Serbia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/sg/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/sg/", + "code": "cc-by-nc-3.0-sg", + "name": "Creative commons - Attribution-NonCommercial 3.0 Singapore", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/th/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/th/", + "code": "cc-by-nc-3.0-th", + "name": "Creative commons - Attribution-NonCommercial 3.0 Thailand", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/tw/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/tw/", + "code": "cc-by-nc-3.0-tw", + "name": "Creative commons - Attribution-NonCommercial 3.0 Taiwan", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ug/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ug/", + "code": "cc-by-nc-3.0-ug", + "name": "Creative commons - Attribution-NonCommercial 3.0 Uganda", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/us/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/us/", + "code": "cc-by-nc-3.0-us", + "name": "Creative commons - Attribution-NonCommercial 3.0 United States", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/ve/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/ve/", + "code": "cc-by-nc-3.0-ve", + "name": "Creative commons - Attribution-NonCommercial 3.0 Venezuela", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/vn/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/vn/", + "code": "cc-by-nc-3.0-vn", + "name": "Creative commons - Attribution-NonCommercial 3.0 Vietnam", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/3.0/za/", + "url": "https://creativecommons.org/licenses/by-nc/3.0/za/", + "code": "cc-by-nc-3.0-za", + "name": "Creative commons - Attribution-NonCommercial 3.0 South Africa", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc/4.0/", + "url": "https://creativecommons.org/licenses/by-nc/4.0/", + "code": "cc-by-nc-4.0", + "name": "Creative commons - Attribution-NonCommercial 4.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/1.0/", + "url": "https://creativecommons.org/licenses/by-nc-nd/1.0/", + "code": "cc-by-nc-nd-1.0", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 1.0", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.0/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.0/", + "code": "cc-by-nc-nd-2.0", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.0", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/", + "code": "cc-by-nc-nd-2.5", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/ar/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/ar/", + "code": "cc-by-nc-nd-2.5-ar", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Argentina", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/bg/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/bg/", + "code": "cc-by-nc-nd-2.5-bg", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Bulgaria", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/ca/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/ca/", + "code": "cc-by-nc-nd-2.5-ca", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Canada", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/co/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/co/", + "code": "cc-by-nc-nd-2.5-co", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Colombia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/dk/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/dk/", + "code": "cc-by-nc-nd-2.5-dk", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Denmark", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/hu/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/hu/", + "code": "cc-by-nc-nd-2.5-hu", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Hungary", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/il/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/il/", + "code": "cc-by-nc-nd-2.5-il", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Israel", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/in/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/in/", + "code": "cc-by-nc-nd-2.5-in", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 India", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/mk/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mk/", + "code": "cc-by-nc-nd-2.5-mk", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Macedonia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/mt/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mt/", + "code": "cc-by-nc-nd-2.5-mt", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Malta", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/mx/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/mx/", + "code": "cc-by-nc-nd-2.5-mx", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Mexico", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/my/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/my/", + "code": "cc-by-nc-nd-2.5-my", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Malaysia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/pe/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/pe/", + "code": "cc-by-nc-nd-2.5-pe", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 Peru", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/", + "url": "https://creativecommons.org/licenses/by-nc-nd/2.5/scotland/", + "code": "cc-by-nc-nd-2.5-scotland", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 2.5 UK: Scotland", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/", + "code": "cc-by-nc-nd-3.0", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/at/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/at/", + "code": "cc-by-nc-nd-3.0-at", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Austria", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/au/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/au/", + "code": "cc-by-nc-nd-3.0-au", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Australia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/br/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/br/", + "code": "cc-by-nc-nd-3.0-br", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Brazil", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ch/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ch/", + "code": "cc-by-nc-nd-3.0-ch", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Switzerland", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/cl/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cl/", + "code": "cc-by-nc-nd-3.0-cl", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Chile", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/cn/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cn/", + "code": "cc-by-nc-nd-3.0-cn", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 China Mainland", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/cr/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cr/", + "code": "cc-by-nc-nd-3.0-cr", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Costa Rica", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/cz/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/cz/", + "code": "cc-by-nc-nd-3.0-cz", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Czech Republic", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/de/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/de/", + "code": "cc-by-nc-nd-3.0-de", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Germany", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ec/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ec/", + "code": "cc-by-nc-nd-3.0-ec", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Ecuador", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ee/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ee/", + "code": "cc-by-nc-nd-3.0-ee", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Estonia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/eg/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/eg/", + "code": "cc-by-nc-nd-3.0-eg", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Egypt", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/es/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/es/", + "code": "cc-by-nc-nd-3.0-es", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Spain", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/fr/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/fr/", + "code": "cc-by-nc-nd-3.0-fr", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 France", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/gr/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/gr/", + "code": "cc-by-nc-nd-3.0-gr", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Greece", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/gt/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/gt/", + "code": "cc-by-nc-nd-3.0-gt", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Guatemala", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/hk/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/hk/", + "code": "cc-by-nc-nd-3.0-hk", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Hong Kong", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/hr/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/hr/", + "code": "cc-by-nc-nd-3.0-hr", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Croatia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ie/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ie/", + "code": "cc-by-nc-nd-3.0-ie", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Ireland", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/igo/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/igo/", + "code": "cc-by-nc-nd-3.0-igo", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 IGO", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/it/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/it/", + "code": "cc-by-nc-nd-3.0-it", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Italy", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/lu/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/lu/", + "code": "cc-by-nc-nd-3.0-lu", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Luxembourg", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/nl/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/nl/", + "code": "cc-by-nc-nd-3.0-nl", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Netherlands", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/no/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/no/", + "code": "cc-by-nc-nd-3.0-no", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Norway", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/nz/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/nz/", + "code": "cc-by-nc-nd-3.0-nz", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 New Zealand", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ph/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ph/", + "code": "cc-by-nc-nd-3.0-ph", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Philippines", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/pl/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pl/", + "code": "cc-by-nc-nd-3.0-pl", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Poland", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/pr/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pr/", + "code": "cc-by-nc-nd-3.0-pr", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Puerto Rico", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/pt/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/pt/", + "code": "cc-by-nc-nd-3.0-pt", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Portugal", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ro/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ro/", + "code": "cc-by-nc-nd-3.0-ro", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Romania", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/rs/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/rs/", + "code": "cc-by-nc-nd-3.0-rs", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Serbia", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/sg/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/sg/", + "code": "cc-by-nc-nd-3.0-sg", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Singapore", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/th/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/th/", + "code": "cc-by-nc-nd-3.0-th", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Thailand", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/tw/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/tw/", + "code": "cc-by-nc-nd-3.0-tw", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Taiwan", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ug/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ug/", + "code": "cc-by-nc-nd-3.0-ug", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Uganda", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/us/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/us/", + "code": "cc-by-nc-nd-3.0-us", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 United States", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/ve/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/ve/", + "code": "cc-by-nc-nd-3.0-ve", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Venezuela", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/vn/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/vn/", + "code": "cc-by-nc-nd-3.0-vn", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 Vietnam", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/3.0/za/", + "url": "https://creativecommons.org/licenses/by-nc-nd/3.0/za/", + "code": "cc-by-nc-nd-3.0-za", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 3.0 South Africa", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-nd/4.0/", + "url": "https://creativecommons.org/licenses/by-nc-nd/4.0/", + "code": "cc-by-nc-nd-4.0", + "name": "Creative commons - Attribution-NonCommercial-NoDerivatives 4.0", + "redistribute": true, + "derivative": false, + "commercial": false, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/1.0/", + "url": "https://creativecommons.org/licenses/by-nc-sa/1.0/", + "code": "cc-by-nc-sa-1.0", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 1.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.0/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.0/", + "code": "cc-by-nc-sa-2.0", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/", + "code": "cc-by-nc-sa-2.5", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/ar/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/ar/", + "code": "cc-by-nc-sa-2.5-ar", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Argentina", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/bg/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/bg/", + "code": "cc-by-nc-sa-2.5-bg", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Bulgaria", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/ca/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/ca/", + "code": "cc-by-nc-sa-2.5-ca", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Canada", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/co/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/co/", + "code": "cc-by-nc-sa-2.5-co", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Colombia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/dk/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/dk/", + "code": "cc-by-nc-sa-2.5-dk", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Denmark", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/hu/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/hu/", + "code": "cc-by-nc-sa-2.5-hu", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Hungary", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/il/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/il/", + "code": "cc-by-nc-sa-2.5-il", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Israel", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/in/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/in/", + "code": "cc-by-nc-sa-2.5-in", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 India", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/mk/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mk/", + "code": "cc-by-nc-sa-2.5-mk", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Macedonia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/mt/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mt/", + "code": "cc-by-nc-sa-2.5-mt", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Malta", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/mx/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/mx/", + "code": "cc-by-nc-sa-2.5-mx", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Mexico", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/my/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/my/", + "code": "cc-by-nc-sa-2.5-my", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Malaysia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/pe/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/pe/", + "code": "cc-by-nc-sa-2.5-pe", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 Peru", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/", + "url": "https://creativecommons.org/licenses/by-nc-sa/2.5/scotland/", + "code": "cc-by-nc-sa-2.5-scotland", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 2.5 UK: Scotland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/", + "code": "cc-by-nc-sa-3.0", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/at/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/at/", + "code": "cc-by-nc-sa-3.0-at", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Austria", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/au/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/au/", + "code": "cc-by-nc-sa-3.0-au", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Australia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/br/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/br/", + "code": "cc-by-nc-sa-3.0-br", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Brazil", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ch/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ch/", + "code": "cc-by-nc-sa-3.0-ch", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Switzerland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/cl/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cl/", + "code": "cc-by-nc-sa-3.0-cl", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Chile", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/cn/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cn/", + "code": "cc-by-nc-sa-3.0-cn", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 China Mainland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/cr/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cr/", + "code": "cc-by-nc-sa-3.0-cr", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Costa Rica", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/cz/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/cz/", + "code": "cc-by-nc-sa-3.0-cz", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Czech Republic", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/de/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/de/", + "code": "cc-by-nc-sa-3.0-de", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Germany", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ec/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ec/", + "code": "cc-by-nc-sa-3.0-ec", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Ecuador", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ee/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ee/", + "code": "cc-by-nc-sa-3.0-ee", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Estonia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/eg/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/eg/", + "code": "cc-by-nc-sa-3.0-eg", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Egypt", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/es/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/es/", + "code": "cc-by-nc-sa-3.0-es", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Spain", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/fr/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/fr/", + "code": "cc-by-nc-sa-3.0-fr", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 France", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/gr/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/gr/", + "code": "cc-by-nc-sa-3.0-gr", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Greece", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/gt/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/gt/", + "code": "cc-by-nc-sa-3.0-gt", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Guatemala", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/hk/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/hk/", + "code": "cc-by-nc-sa-3.0-hk", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Hong Kong", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/hr/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/hr/", + "code": "cc-by-nc-sa-3.0-hr", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Croatia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ie/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ie/", + "code": "cc-by-nc-sa-3.0-ie", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Ireland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/igo/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/igo/", + "code": "cc-by-nc-sa-3.0-igo", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 IGO", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/it/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/it/", + "code": "cc-by-nc-sa-3.0-it", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Italy", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/lu/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/lu/", + "code": "cc-by-nc-sa-3.0-lu", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Luxembourg", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/nl/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/nl/", + "code": "cc-by-nc-sa-3.0-nl", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Netherlands", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/no/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/no/", + "code": "cc-by-nc-sa-3.0-no", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Norway", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/nz/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/nz/", + "code": "cc-by-nc-sa-3.0-nz", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 New Zealand", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ph/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ph/", + "code": "cc-by-nc-sa-3.0-ph", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Philippines", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/pl/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pl/", + "code": "cc-by-nc-sa-3.0-pl", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Poland", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/pr/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pr/", + "code": "cc-by-nc-sa-3.0-pr", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Puerto Rico", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/pt/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/pt/", + "code": "cc-by-nc-sa-3.0-pt", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Portugal", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ro/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ro/", + "code": "cc-by-nc-sa-3.0-ro", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Romania", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/rs/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/rs/", + "code": "cc-by-nc-sa-3.0-rs", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Serbia", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/sg/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/sg/", + "code": "cc-by-nc-sa-3.0-sg", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Singapore", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/th/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/th/", + "code": "cc-by-nc-sa-3.0-th", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Thailand", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/tw/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/tw/", + "code": "cc-by-nc-sa-3.0-tw", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Taiwan", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ug/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ug/", + "code": "cc-by-nc-sa-3.0-ug", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Uganda", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/us/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/us/", + "code": "cc-by-nc-sa-3.0-us", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 United States", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/ve/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/ve/", + "code": "cc-by-nc-sa-3.0-ve", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Venezuela", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/vn/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/vn/", + "code": "cc-by-nc-sa-3.0-vn", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 Vietnam", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/3.0/za/", + "url": "https://creativecommons.org/licenses/by-nc-sa/3.0/za/", + "code": "cc-by-nc-sa-3.0-za", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 3.0 South Africa", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nc-sa/4.0/", + "url": "https://creativecommons.org/licenses/by-nc-sa/4.0/", + "code": "cc-by-nc-sa-4.0", + "name": "Creative commons - Attribution-NonCommercial-ShareAlike 4.0", + "redistribute": true, + "derivative": true, + "commercial": false, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-nd/1.0/", + "url": "https://creativecommons.org/licenses/by-nd/1.0/", + "code": "cc-by-nd-1.0", + "name": "Creative commons - Attribution-NoDerivatives 1.0", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.0/", + "url": "https://creativecommons.org/licenses/by-nd/2.0/", + "code": "cc-by-nd-2.0", + "name": "Creative commons - Attribution-NoDerivatives 2.0", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/", + "code": "cc-by-nd-2.5", + "name": "Creative commons - Attribution-NoDerivatives 2.5", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/ar/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/ar/", + "code": "cc-by-nd-2.5-ar", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Argentina", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/bg/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/bg/", + "code": "cc-by-nd-2.5-bg", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Bulgaria", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/ca/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/ca/", + "code": "cc-by-nd-2.5-ca", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Canada", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/co/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/co/", + "code": "cc-by-nd-2.5-co", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Colombia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/dk/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/dk/", + "code": "cc-by-nd-2.5-dk", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Denmark", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/hu/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/hu/", + "code": "cc-by-nd-2.5-hu", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Hungary", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/il/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/il/", + "code": "cc-by-nd-2.5-il", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Israel", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/in/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/in/", + "code": "cc-by-nd-2.5-in", + "name": "Creative commons - Attribution-NoDerivatives 2.5 India", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/mk/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/mk/", + "code": "cc-by-nd-2.5-mk", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Macedonia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/mt/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/mt/", + "code": "cc-by-nd-2.5-mt", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Malta", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/mx/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/mx/", + "code": "cc-by-nd-2.5-mx", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Mexico", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/my/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/my/", + "code": "cc-by-nd-2.5-my", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Malaysia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/pe/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/pe/", + "code": "cc-by-nd-2.5-pe", + "name": "Creative commons - Attribution-NoDerivatives 2.5 Peru", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/2.5/scotland/", + "url": "https://creativecommons.org/licenses/by-nd/2.5/scotland/", + "code": "cc-by-nd-2.5-scotland", + "name": "Creative commons - Attribution-NoDerivatives 2.5 UK: Scotland", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/", + "code": "cc-by-nd-3.0", + "name": "Creative commons - Attribution-NoDerivatives 3.0", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/at/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/at/", + "code": "cc-by-nd-3.0-at", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Austria", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/au/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/au/", + "code": "cc-by-nd-3.0-au", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Australia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/br/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/br/", + "code": "cc-by-nd-3.0-br", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Brazil", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ch/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ch/", + "code": "cc-by-nd-3.0-ch", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Switzerland", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/cl/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/cl/", + "code": "cc-by-nd-3.0-cl", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Chile", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/cn/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/cn/", + "code": "cc-by-nd-3.0-cn", + "name": "Creative commons - Attribution-NoDerivatives 3.0 China Mainland", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/cr/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/cr/", + "code": "cc-by-nd-3.0-cr", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Costa Rica", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/cz/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/cz/", + "code": "cc-by-nd-3.0-cz", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Czech Republic", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/de/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/de/", + "code": "cc-by-nd-3.0-de", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Germany", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ec/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ec/", + "code": "cc-by-nd-3.0-ec", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Ecuador", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ee/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ee/", + "code": "cc-by-nd-3.0-ee", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Estonia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/eg/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/eg/", + "code": "cc-by-nd-3.0-eg", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Egypt", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/es/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/es/", + "code": "cc-by-nd-3.0-es", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Spain", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/fr/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/fr/", + "code": "cc-by-nd-3.0-fr", + "name": "Creative commons - Attribution-NoDerivatives 3.0 France", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/gr/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/gr/", + "code": "cc-by-nd-3.0-gr", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Greece", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/gt/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/gt/", + "code": "cc-by-nd-3.0-gt", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Guatemala", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/hk/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/hk/", + "code": "cc-by-nd-3.0-hk", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Hong Kong", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/hr/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/hr/", + "code": "cc-by-nd-3.0-hr", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Croatia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ie/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ie/", + "code": "cc-by-nd-3.0-ie", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Ireland", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/igo/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/igo/", + "code": "cc-by-nd-3.0-igo", + "name": "Creative commons - Attribution-NoDerivatives 3.0 IGO", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/it/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/it/", + "code": "cc-by-nd-3.0-it", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Italy", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/lu/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/lu/", + "code": "cc-by-nd-3.0-lu", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Luxembourg", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/nl/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/nl/", + "code": "cc-by-nd-3.0-nl", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Netherlands", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/no/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/no/", + "code": "cc-by-nd-3.0-no", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Norway", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/nz/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/nz/", + "code": "cc-by-nd-3.0-nz", + "name": "Creative commons - Attribution-NoDerivatives 3.0 New Zealand", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ph/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ph/", + "code": "cc-by-nd-3.0-ph", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Philippines", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/pl/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/pl/", + "code": "cc-by-nd-3.0-pl", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Poland", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/pr/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/pr/", + "code": "cc-by-nd-3.0-pr", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Puerto Rico", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/pt/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/pt/", + "code": "cc-by-nd-3.0-pt", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Portugal", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ro/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ro/", + "code": "cc-by-nd-3.0-ro", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Romania", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/rs/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/rs/", + "code": "cc-by-nd-3.0-rs", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Serbia", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/sg/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/sg/", + "code": "cc-by-nd-3.0-sg", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Singapore", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/th/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/th/", + "code": "cc-by-nd-3.0-th", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Thailand", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/tw/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/tw/", + "code": "cc-by-nd-3.0-tw", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Taiwan", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ug/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ug/", + "code": "cc-by-nd-3.0-ug", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Uganda", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/us/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/us/", + "code": "cc-by-nd-3.0-us", + "name": "Creative commons - Attribution-NoDerivatives 3.0 United States", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/ve/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/ve/", + "code": "cc-by-nd-3.0-ve", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Venezuela", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/vn/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/vn/", + "code": "cc-by-nd-3.0-vn", + "name": "Creative commons - Attribution-NoDerivatives 3.0 Vietnam", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/3.0/za/", + "url": "https://creativecommons.org/licenses/by-nd/3.0/za/", + "code": "cc-by-nd-3.0-za", + "name": "Creative commons - Attribution-NoDerivatives 3.0 South Africa", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-nd/4.0/", + "url": "https://creativecommons.org/licenses/by-nd/4.0/", + "code": "cc-by-nd-4.0", + "name": "Creative commons - Attribution-NoDerivatives 4.0", + "redistribute": true, + "derivative": false, + "commercial": true, + "attribution": true, + "copyleft": false + }, + { + "id": "http://creativecommons.org/licenses/by-sa/1.0/", + "url": "https://creativecommons.org/licenses/by-sa/1.0/", + "code": "cc-by-sa-1.0", + "name": "Creative commons - Attribution-ShareAlike 1.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.0/", + "url": "https://creativecommons.org/licenses/by-sa/2.0/", + "code": "cc-by-sa-2.0", + "name": "Creative commons - Attribution-ShareAlike 2.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/", + "code": "cc-by-sa-2.5", + "name": "Creative commons - Attribution-ShareAlike 2.5", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/ar/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/ar/", + "code": "cc-by-sa-2.5-ar", + "name": "Creative commons - Attribution-ShareAlike 2.5 Argentina", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/bg/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/bg/", + "code": "cc-by-sa-2.5-bg", + "name": "Creative commons - Attribution-ShareAlike 2.5 Bulgaria", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/ca/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/ca/", + "code": "cc-by-sa-2.5-ca", + "name": "Creative commons - Attribution-ShareAlike 2.5 Canada", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/co/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/co/", + "code": "cc-by-sa-2.5-co", + "name": "Creative commons - Attribution-ShareAlike 2.5 Colombia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/dk/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/dk/", + "code": "cc-by-sa-2.5-dk", + "name": "Creative commons - Attribution-ShareAlike 2.5 Denmark", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/hu/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/hu/", + "code": "cc-by-sa-2.5-hu", + "name": "Creative commons - Attribution-ShareAlike 2.5 Hungary", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/il/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/il/", + "code": "cc-by-sa-2.5-il", + "name": "Creative commons - Attribution-ShareAlike 2.5 Israel", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/in/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/in/", + "code": "cc-by-sa-2.5-in", + "name": "Creative commons - Attribution-ShareAlike 2.5 India", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/mk/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/mk/", + "code": "cc-by-sa-2.5-mk", + "name": "Creative commons - Attribution-ShareAlike 2.5 Macedonia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/mt/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/mt/", + "code": "cc-by-sa-2.5-mt", + "name": "Creative commons - Attribution-ShareAlike 2.5 Malta", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/mx/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/mx/", + "code": "cc-by-sa-2.5-mx", + "name": "Creative commons - Attribution-ShareAlike 2.5 Mexico", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/my/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/my/", + "code": "cc-by-sa-2.5-my", + "name": "Creative commons - Attribution-ShareAlike 2.5 Malaysia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/pe/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/pe/", + "code": "cc-by-sa-2.5-pe", + "name": "Creative commons - Attribution-ShareAlike 2.5 Peru", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/2.5/scotland/", + "url": "https://creativecommons.org/licenses/by-sa/2.5/scotland/", + "code": "cc-by-sa-2.5-scotland", + "name": "Creative commons - Attribution-ShareAlike 2.5 UK: Scotland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/", + "code": "cc-by-sa-3.0", + "name": "Creative commons - Attribution-ShareAlike 3.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/at/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/at/", + "code": "cc-by-sa-3.0-at", + "name": "Creative commons - Attribution-ShareAlike 3.0 Austria", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/au/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/au/", + "code": "cc-by-sa-3.0-au", + "name": "Creative commons - Attribution-ShareAlike 3.0 Australia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/br/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/br/", + "code": "cc-by-sa-3.0-br", + "name": "Creative commons - Attribution-ShareAlike 3.0 Brazil", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ch/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ch/", + "code": "cc-by-sa-3.0-ch", + "name": "Creative commons - Attribution-ShareAlike 3.0 Switzerland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/cl/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/cl/", + "code": "cc-by-sa-3.0-cl", + "name": "Creative commons - Attribution-ShareAlike 3.0 Chile", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/cn/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/cn/", + "code": "cc-by-sa-3.0-cn", + "name": "Creative commons - Attribution-ShareAlike 3.0 China Mainland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/cr/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/cr/", + "code": "cc-by-sa-3.0-cr", + "name": "Creative commons - Attribution-ShareAlike 3.0 Costa Rica", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/cz/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/cz/", + "code": "cc-by-sa-3.0-cz", + "name": "Creative commons - Attribution-ShareAlike 3.0 Czech Republic", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/de/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/de/", + "code": "cc-by-sa-3.0-de", + "name": "Creative commons - Attribution-ShareAlike 3.0 Germany", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ec/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ec/", + "code": "cc-by-sa-3.0-ec", + "name": "Creative commons - Attribution-ShareAlike 3.0 Ecuador", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ee/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ee/", + "code": "cc-by-sa-3.0-ee", + "name": "Creative commons - Attribution-ShareAlike 3.0 Estonia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/eg/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/eg/", + "code": "cc-by-sa-3.0-eg", + "name": "Creative commons - Attribution-ShareAlike 3.0 Egypt", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/es/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/es/", + "code": "cc-by-sa-3.0-es", + "name": "Creative commons - Attribution-ShareAlike 3.0 Spain", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/fr/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/fr/", + "code": "cc-by-sa-3.0-fr", + "name": "Creative commons - Attribution-ShareAlike 3.0 France", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/gr/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/gr/", + "code": "cc-by-sa-3.0-gr", + "name": "Creative commons - Attribution-ShareAlike 3.0 Greece", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/gt/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/gt/", + "code": "cc-by-sa-3.0-gt", + "name": "Creative commons - Attribution-ShareAlike 3.0 Guatemala", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/hk/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/hk/", + "code": "cc-by-sa-3.0-hk", + "name": "Creative commons - Attribution-ShareAlike 3.0 Hong Kong", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/hr/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/hr/", + "code": "cc-by-sa-3.0-hr", + "name": "Creative commons - Attribution-ShareAlike 3.0 Croatia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ie/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ie/", + "code": "cc-by-sa-3.0-ie", + "name": "Creative commons - Attribution-ShareAlike 3.0 Ireland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/igo/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/igo/", + "code": "cc-by-sa-3.0-igo", + "name": "Creative commons - Attribution-ShareAlike 3.0 IGO", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/it/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/it/", + "code": "cc-by-sa-3.0-it", + "name": "Creative commons - Attribution-ShareAlike 3.0 Italy", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/lu/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/lu/", + "code": "cc-by-sa-3.0-lu", + "name": "Creative commons - Attribution-ShareAlike 3.0 Luxembourg", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/nl/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/nl/", + "code": "cc-by-sa-3.0-nl", + "name": "Creative commons - Attribution-ShareAlike 3.0 Netherlands", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/no/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/no/", + "code": "cc-by-sa-3.0-no", + "name": "Creative commons - Attribution-ShareAlike 3.0 Norway", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/nz/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/nz/", + "code": "cc-by-sa-3.0-nz", + "name": "Creative commons - Attribution-ShareAlike 3.0 New Zealand", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ph/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ph/", + "code": "cc-by-sa-3.0-ph", + "name": "Creative commons - Attribution-ShareAlike 3.0 Philippines", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/pl/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/pl/", + "code": "cc-by-sa-3.0-pl", + "name": "Creative commons - Attribution-ShareAlike 3.0 Poland", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/pr/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/pr/", + "code": "cc-by-sa-3.0-pr", + "name": "Creative commons - Attribution-ShareAlike 3.0 Puerto Rico", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/pt/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/pt/", + "code": "cc-by-sa-3.0-pt", + "name": "Creative commons - Attribution-ShareAlike 3.0 Portugal", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ro/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ro/", + "code": "cc-by-sa-3.0-ro", + "name": "Creative commons - Attribution-ShareAlike 3.0 Romania", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/rs/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/rs/", + "code": "cc-by-sa-3.0-rs", + "name": "Creative commons - Attribution-ShareAlike 3.0 Serbia", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/sg/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/sg/", + "code": "cc-by-sa-3.0-sg", + "name": "Creative commons - Attribution-ShareAlike 3.0 Singapore", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/th/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/th/", + "code": "cc-by-sa-3.0-th", + "name": "Creative commons - Attribution-ShareAlike 3.0 Thailand", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/tw/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/tw/", + "code": "cc-by-sa-3.0-tw", + "name": "Creative commons - Attribution-ShareAlike 3.0 Taiwan", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ug/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ug/", + "code": "cc-by-sa-3.0-ug", + "name": "Creative commons - Attribution-ShareAlike 3.0 Uganda", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/us/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/us/", + "code": "cc-by-sa-3.0-us", + "name": "Creative commons - Attribution-ShareAlike 3.0 United States", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/ve/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/ve/", + "code": "cc-by-sa-3.0-ve", + "name": "Creative commons - Attribution-ShareAlike 3.0 Venezuela", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/vn/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/vn/", + "code": "cc-by-sa-3.0-vn", + "name": "Creative commons - Attribution-ShareAlike 3.0 Vietnam", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/3.0/za/", + "url": "https://creativecommons.org/licenses/by-sa/3.0/za/", + "code": "cc-by-sa-3.0-za", + "name": "Creative commons - Attribution-ShareAlike 3.0 South Africa", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://creativecommons.org/licenses/by-sa/4.0/", + "url": "https://creativecommons.org/licenses/by-sa/4.0/", + "code": "cc-by-sa-4.0", + "name": "Creative commons - Attribution-ShareAlike 4.0", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + }, + { + "id": "http://artlibre.org/licence/lal", + "url": "https://artlibre.org/licence/lal", + "code": "LAL-1.3", + "name": "Licence Art Libre 1.3", + "redistribute": true, + "derivative": true, + "commercial": true, + "attribution": true, + "copyleft": true + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/manage_album.json b/tests/data/manage/manage_album.json new file mode 100644 index 0000000000000000000000000000000000000000..7d69dc137269478ac28d9efbd0119a60dd65ad63 --- /dev/null +++ b/tests/data/manage/manage_album.json @@ -0,0 +1,52 @@ +{ + "id": 12807, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "creation_date": "2022-09-23T11:49:48.540064Z", + "release_date": "2022-09-19", + "cover": { + "uuid": "da7894bc-ddd0-424a-8910-4006bffd5829", + "size": 454, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:51.745146Z", + "urls": { + "source": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T114950Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=91130c1360969329ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/c6/08/d6/29ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T222749Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=167cb16bca63817e80eda9437fea3b66858acbcb17f5a5654818b773f633a3df", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c6/08/d6/29ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T222749Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9d65e47679c4dd39b7ffb3b53e44e542669591d2e408a0ce73b4bba0af8012b7", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c6/08/d6/29ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T222749Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6d1c228db335edce3a2129bc4ed9346acdf7543806bb17dd807297e1ecbf1678" + } + }, + "domain": "soundship.de", + "is_local": false, + "tracks_count": 15, + "artist": { + "id": 13009, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "domain": "soundship.de", + "is_local": false + }, + "attributed_to": { + "id": 13690, + "url": "https://soundship.de/@gcrkrause", + "fid": "https://soundship.de/federation/actors/gcrkrause", + "preferred_username": "gcrkrause", + "full_username": "gcrkrause@soundship.de", + "domain": "soundship.de", + "name": "gcrkrause", + "summary": null, + "type": "Person", + "creation_date": "2021-03-11T06:08:54.284140Z", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "inbox_url": "https://soundship.de/federation/actors/gcrkrause/inbox", + "outbox_url": "https://soundship.de/federation/actors/gcrkrause/outbox", + "shared_inbox_url": "https://soundship.de/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [], + "description": null +} \ No newline at end of file diff --git a/tests/data/manage/manage_album_stats.json b/tests/data/manage/manage_album_stats.json new file mode 100644 index 0000000000000000000000000000000000000000..17f1f6ad3616837261da114f2acaeecbf1924390 --- /dev/null +++ b/tests/data/manage/manage_album_stats.json @@ -0,0 +1,12 @@ +{ + "listenings": 0, + "mutations": 0, + "playlists": 0, + "track_favorites": 0, + "libraries": 1, + "channels": 0, + "uploads": 15, + "reports": 0, + "media_total_size": 334037876, + "media_downloaded_size": 0 +} \ No newline at end of file diff --git a/tests/data/manage/manage_artist.json b/tests/data/manage/manage_artist.json new file mode 100644 index 0000000000000000000000000000000000000000..7d52f85a41a8b35f8ed1452baabeb872026e537d --- /dev/null +++ b/tests/data/manage/manage_artist.json @@ -0,0 +1,34 @@ +{ + "id": 13008, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": null, + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "domain": "soundship.de", + "is_local": false, + "tracks_count": 15, + "albums_count": 1, + "attributed_to": { + "id": 13690, + "url": "https://soundship.de/@gcrkrause", + "fid": "https://soundship.de/federation/actors/gcrkrause", + "preferred_username": "gcrkrause", + "full_username": "gcrkrause@soundship.de", + "domain": "soundship.de", + "name": "gcrkrause", + "summary": null, + "type": "Person", + "creation_date": "2021-03-11T06:08:54.284140Z", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "inbox_url": "https://soundship.de/federation/actors/gcrkrause/inbox", + "outbox_url": "https://soundship.de/federation/actors/gcrkrause/outbox", + "shared_inbox_url": "https://soundship.de/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [], + "cover": null, + "channel": null, + "content_category": "music", + "description": null +} \ No newline at end of file diff --git a/tests/data/manage/manage_channel.json b/tests/data/manage/manage_channel.json new file mode 100644 index 0000000000000000000000000000000000000000..d7a3297a31d46bee59fbff228845421cfc6408dd --- /dev/null +++ b/tests/data/manage/manage_channel.json @@ -0,0 +1,91 @@ +{ + "id": 540, + "uuid": "a2dac430-0a5a-4794-a7ca-94d8eded8c96", + "creation_date": "2022-09-03T19:09:03.071435Z", + "artist": { + "id": 12988, + "fid": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs", + "mbid": null, + "name": "Aufnahmen von unterwegs", + "creation_date": "2022-09-03T19:09:03.043275Z", + "domain": "am.pirateradio.social", + "is_local": false, + "tracks_count": 2, + "albums_count": 0, + "attributed_to": { + "id": 24925, + "url": "https://am.pirateradio.social/@Hiker", + "fid": "https://am.pirateradio.social/federation/actors/Hiker", + "preferred_username": "Hiker", + "full_username": "Hiker@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Hiker", + "summary": null, + "type": "Person", + "creation_date": "2022-09-03T19:09:03.030211Z", + "last_fetch_date": "2022-09-17T00:07:59.225616Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/Hiker/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/Hiker/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [ + "clips", + "Töne" + ], + "cover": { + "uuid": "041a9c84-03bc-46de-830d-26abd8e2d340", + "size": 16612, + "mimetype": "image/jpeg", + "creation_date": "2022-09-17T00:07:59.283044Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/4a/35/cc/mikro.jpg", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/d3/bb/d1/mikro.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223551Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=580fa996e9ef0481548ed0f343f1eb2d69beffe9b89da7c3c612c665159da54c", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d3/bb/d1/mikro-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223551Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0f2ae6e482da1f52b17e9d8311506bfbe586af40448291de523c176e00dc40e1", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d3/bb/d1/mikro-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223551Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=51ee20a970216d0dc831e092df9d9c3052566532d7d4f82350bcb401112bf5a9" + } + }, + "channel": "a2dac430-0a5a-4794-a7ca-94d8eded8c96", + "content_category": "music", + "description": null + }, + "attributed_to": { + "id": 24925, + "url": "https://am.pirateradio.social/@Hiker", + "fid": "https://am.pirateradio.social/federation/actors/Hiker", + "preferred_username": "Hiker", + "full_username": "Hiker@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Hiker", + "summary": null, + "type": "Person", + "creation_date": "2022-09-03T19:09:03.030211Z", + "last_fetch_date": "2022-09-17T00:07:59.225616Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/Hiker/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/Hiker/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "actor": { + "id": 24924, + "url": "https://am.pirateradio.social/channels/aufnahmenvonunterwegs", + "fid": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs", + "preferred_username": "aufnahmenvonunterwegs", + "full_username": "aufnahmenvonunterwegs@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Aufnahmen von unterwegs", + "summary": null, + "type": "Person", + "creation_date": "2022-09-03T19:09:02.582183Z", + "last_fetch_date": "2022-09-04T11:34:13.538775Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "rss_url": "https://am.pirateradio.social/api/v1/channels/aufnahmenvonunterwegs/rss", + "metadata": {} +} \ No newline at end of file diff --git a/tests/data/manage/manage_channel_stats.json b/tests/data/manage/manage_channel_stats.json new file mode 100644 index 0000000000000000000000000000000000000000..7a1446541895c64ba0df79ab3120261c72fb3078 --- /dev/null +++ b/tests/data/manage/manage_channel_stats.json @@ -0,0 +1,11 @@ +{ + "listenings": 0, + "mutations": 0, + "playlists": 0, + "track_favorites": 0, + "uploads": 2, + "reports": 0, + "media_total_size": 2520278, + "media_downloaded_size": 0, + "follows": 0 +} \ No newline at end of file diff --git a/tests/data/manage/manage_domain.json b/tests/data/manage/manage_domain.json new file mode 100644 index 0000000000000000000000000000000000000000..9d52b20d09742906c0838cf5f98baa794c91d7ac --- /dev/null +++ b/tests/data/manage/manage_domain.json @@ -0,0 +1,31 @@ +{ + "name": "0lb.be", + "creation_date": "2022-01-28T23:31:19.701895Z", + "actors_count": 1, + "outbox_activities_count": 0, + "nodeinfo": { + "status": "ok", + "payload": { + "usage": { + "users": { + "total": 4, + "activeMonth": 3, + "activeHalfyear": 4 + }, + "localPosts": 1028 + }, + "version": "2.0", + "software": { + "name": "hometown", + "version": "1.0.6+3.5.2" + }, + "protocols": [ + "activitypub" + ], + "openRegistrations": false + } + }, + "nodeinfo_fetch_date": "2022-09-25T12:02:21.488903Z", + "instance_policy": null, + "allowed": null +} \ No newline at end of file diff --git a/tests/data/manage/manage_domain_nodeinfo.json b/tests/data/manage/manage_domain_nodeinfo.json new file mode 100644 index 0000000000000000000000000000000000000000..3f2b90d01f79b1ddb24d8b6904cdc31107061854 --- /dev/null +++ b/tests/data/manage/manage_domain_nodeinfo.json @@ -0,0 +1,22 @@ +{ + "status": "ok", + "payload": { + "usage": { + "users": { + "total": 4, + "activeMonth": 3, + "activeHalfyear": 4 + }, + "localPosts": 1028 + }, + "version": "2.0", + "software": { + "name": "hometown", + "version": "1.0.6+3.5.2" + }, + "protocols": [ + "activitypub" + ], + "openRegistrations": false + } +} \ No newline at end of file diff --git a/tests/data/manage/manage_instance_policy.json b/tests/data/manage/manage_instance_policy.json new file mode 100644 index 0000000000000000000000000000000000000000..89bafc564435320bd89b09d6ebf47965ad6730b4 --- /dev/null +++ b/tests/data/manage/manage_instance_policy.json @@ -0,0 +1,16 @@ +{ + "id": 15, + "uuid": "c6d2fc07-c78e-4f6c-9937-c24ac6cf7593", + "target": { + "type": "domain", + "id": "funkwhale.it" + }, + "creation_date": "2020-04-02T13:02:13.309869Z", + "actor": "doctorworm@tanukitunes.com", + "summary": "", + "is_active": true, + "block_all": true, + "silence_activity": false, + "silence_notifications": false, + "reject_media": false +} \ No newline at end of file diff --git a/tests/data/manage/manage_invitation.json b/tests/data/manage/manage_invitation.json new file mode 100644 index 0000000000000000000000000000000000000000..7edf53ee7687b625edf12811cbd7949b3e100dd5 --- /dev/null +++ b/tests/data/manage/manage_invitation.json @@ -0,0 +1,20 @@ +{ + "id": 3, + "owner": { + "id": 1, + "username": "doctorworm", + "email": "sporiff@funkwhale.audio", + "name": "", + "is_active": true, + "is_staff": true, + "is_superuser": true, + "date_joined": "2018-12-12T21:03:28Z", + "last_activity": "2022-09-25T21:35:15.914620Z", + "privacy_level": "everyone", + "upload_quota": 500000 + }, + "code": "that-code", + "expiration_date": "2022-10-09T21:36:06.055501Z", + "creation_date": "2022-09-25T21:36:06.055501Z", + "users": [] +} \ No newline at end of file diff --git a/tests/data/manage/manage_invitation_request.json b/tests/data/manage/manage_invitation_request.json new file mode 100644 index 0000000000000000000000000000000000000000..289cef68fc897ba00456a359a1b6ff8decc6ba17 --- /dev/null +++ b/tests/data/manage/manage_invitation_request.json @@ -0,0 +1,3 @@ +{ + "code": "that-other-code" +} \ No newline at end of file diff --git a/tests/data/manage/manage_library.json b/tests/data/manage/manage_library.json new file mode 100644 index 0000000000000000000000000000000000000000..ba1bc31fb2b187f8b237c9ad429e35d1d0041163 --- /dev/null +++ b/tests/data/manage/manage_library.json @@ -0,0 +1,33 @@ +{ + "id": 1, + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "url": null, + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "domain": "tanukitunes.com", + "is_local": true, + "creation_date": "2018-12-12T22:16:34.002451Z", + "privacy_level": "me", + "uploads_count": 15955, + "followers_count": 4, + "followers_url": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c/followers", + "actor": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + } +} \ No newline at end of file diff --git a/tests/data/manage/manage_library_stats.json b/tests/data/manage/manage_library_stats.json new file mode 100644 index 0000000000000000000000000000000000000000..e115a64418392fe9c0dd298d32696086d80d6638 --- /dev/null +++ b/tests/data/manage/manage_library_stats.json @@ -0,0 +1,10 @@ +{ + "uploads": 15955, + "followers": 4, + "tracks": 15955, + "albums": 1302, + "artists": 363, + "reports": 0, + "media_total_size": 82871531255, + "media_downloaded_size": 82871531255 +} \ No newline at end of file diff --git a/tests/data/manage/manage_note.json b/tests/data/manage/manage_note.json new file mode 100644 index 0000000000000000000000000000000000000000..8486d141facaa33e4aa67eb971e5052f35b90a15 --- /dev/null +++ b/tests/data/manage/manage_note.json @@ -0,0 +1,28 @@ +{ + "id": 5, + "uuid": "8350f63a-4da9-4496-85c9-1fba4266495c", + "creation_date": "2022-08-02T10:07:43.930837Z", + "summary": "No reason has been given for this takedown. As far as I can see the account in question hasn't violated any rules.", + "author": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "target": { + "type": "report", + "uuid": "a4d35f33-cac9-4b31-b60e-1ee8ff132d39" + } +} \ No newline at end of file diff --git a/tests/data/manage/manage_note_request.json b/tests/data/manage/manage_note_request.json new file mode 100644 index 0000000000000000000000000000000000000000..a17aee2018d39afe77079c5cde4c6fa0d7266026 --- /dev/null +++ b/tests/data/manage/manage_note_request.json @@ -0,0 +1,7 @@ +{ + "target": { + "type": "report", + "uuid": "5c8251fd-5e74-4fbf-bc4d-58ffa558cb5a" + }, + "summary": "Don't be silly" +} \ No newline at end of file diff --git a/tests/data/manage/manage_report.json b/tests/data/manage/manage_report.json new file mode 100644 index 0000000000000000000000000000000000000000..8e81c32b760bf6969642797c52841718ad6f226f --- /dev/null +++ b/tests/data/manage/manage_report.json @@ -0,0 +1,75 @@ +{ + "id": 9, + "uuid": "5c8251fd-5e74-4fbf-bc4d-58ffa558cb5a", + "fid": "https://tanukitunes.com/federation/reports/5c8251fd-5e74-4fbf-bc4d-58ffa558cb5a", + "creation_date": "2022-09-25T21:51:28.168827Z", + "handled_date": null, + "summary": "In fact, this whole thing is bad", + "type": "other", + "target": { + "type": "artist", + "id": 6451 + }, + "target_state": { + "id": 6451, + "fid": "https://tanukitunes.com/federation/music/artists/760b6225-4d4a-4b52-940e-22b1837b02cd", + "mbid": "d8df7087-06d5-4545-9024-831bb8558ad1", + "name": "Jonathan Coulton", + "tags": [ + "alternative", + "independent", + "indie", + "rock" + ], + "uuid": "760b6225-4d4a-4b52-940e-22b1837b02cd", + "domain": "tanukitunes.com", + "_target": { + "id": 6451, + "type": "artist" + }, + "is_local": true, + "description": null, + "creation_date": "2019-06-05T11:48:52.777472Z", + "content_category": "music" + }, + "is_handled": false, + "assigned_to": null, + "target_owner": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter_email": null, + "notes": [] +} \ No newline at end of file diff --git a/tests/data/manage/manage_report_request.json b/tests/data/manage/manage_report_request.json new file mode 100644 index 0000000000000000000000000000000000000000..470bef80876478bbd9823358afb67f44210e14ef --- /dev/null +++ b/tests/data/manage/manage_report_request.json @@ -0,0 +1,11 @@ +{ + "target": { + "type": "artist", + "id": 6451, + "label": "Jonathan Coulton", + "typeLabel": "Artist" + }, + "summary": "In fact, this whole thing is bad", + "type": "other", + "forward": false +} \ No newline at end of file diff --git a/tests/data/manage/manage_track.json b/tests/data/manage/manage_track.json new file mode 100644 index 0000000000000000000000000000000000000000..c3701c84567014c8f19b0cc9582044879a16b159 --- /dev/null +++ b/tests/data/manage/manage_track.json @@ -0,0 +1,43 @@ +{ + "id": 104492, + "fid": "https://tanukitunes.com/federation/music/tracks/896591fa-2ce4-3aca-a980-20c40b38c028", + "mbid": null, + "title": "Teachers Under Attack by the Far Right: The Gabriel Gipe Interview", + "creation_date": "2022-09-23T21:39:06Z", + "position": 1, + "disc_number": 1, + "domain": "tanukitunes.com", + "is_local": true, + "copyright": null, + "license": null, + "artist": { + "id": 7849, + "fid": "https://tanukitunes.com/federation/music/artists/131beb6a-19f6-4ba3-a106-3e0d2c40dcef", + "mbid": null, + "name": "Revolutionary Left Radio", + "creation_date": "2020-04-10T00:35:15.314453Z", + "domain": "tanukitunes.com", + "is_local": true + }, + "album": null, + "attributed_to": null, + "uploads_count": 1, + "tags": [], + "cover": { + "uuid": "6c8a8609-1ce1-411c-b365-68b0ca6918ff", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:04:45.020430Z", + "urls": { + "source": "https://ssl-static.libsyn.com/p/assets/f/a/6/5/fa65ba5d3762a070/Webp.net-resizeimage.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/6c8a8609-1ce1-411c-b365-68b0ca6918ff/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/6c8a8609-1ce1-411c-b365-68b0ca6918ff/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/6c8a8609-1ce1-411c-b365-68b0ca6918ff/proxy?next=large_square_crop" + } + }, + "description": { + "text": "<p>Former high school teacher, Gabriel Gipe, joins the show to tell his story of being set up and targeted by the right-wing organization Project Veritas, the subsequent relentless harrassment of him and his family by conservative news outlets, fascist organizations, and other right wing extremists, including the Proud Boys, which culminated in him losing his career. He tells his story as both a warning to other educators and to reveal the strategies deployed by various forces within the right-wing ecosystem in this country to bully, intimidate, harrass, silence, and even asssault their political opponents.</p> Outro music: <em>\"Wicked Grin\"</em> by No Thanks <p style=\"text-align: center;\">Support Rev Left Radio: <a href=\"https://www.patreon.com/RevLeftRadio\">https://www.patreon.com/RevLeftRadio</a></p> <p> </p>", + "content_type": "text/html", + "html": "<p>Former high school teacher, Gabriel Gipe, joins the show to tell his story of being set up and targeted by the right-wing organization Project Veritas, the subsequent relentless harrassment of him and his family by conservative news outlets, fascist organizations, and other right wing extremists, including the Proud Boys, which culminated in him losing his career. He tells his story as both a warning to other educators and to reveal the strategies deployed by various forces within the right-wing ecosystem in this country to bully, intimidate, harrass, silence, and even asssault their political opponents.</p> Outro music: <em>\"Wicked Grin\"</em> by No Thanks <p>Support Rev Left Radio: <a href=\"https://www.patreon.com/RevLeftRadio\">https://www.patreon.com/RevLeftRadio</a></p> <p> </p>" + } +} \ No newline at end of file diff --git a/tests/data/manage/manage_upload.json b/tests/data/manage/manage_upload.json new file mode 100644 index 0000000000000000000000000000000000000000..80af364ce63a233093cabb1a31e7ea20f0a490d0 --- /dev/null +++ b/tests/data/manage/manage_upload.json @@ -0,0 +1,68 @@ +{ + "id": 193918, + "uuid": "0aa2160a-e00b-4552-adcb-825897422b48", + "fid": null, + "domain": null, + "is_local": true, + "audio_file": null, + "listen_url": "/api/v1/listen/90b6aede-30bc-3d6c-85d6-2ddd8b22ee91/?upload=0aa2160a-e00b-4552-adcb-825897422b48", + "source": "https://sphinx.acast.com/p/acast/s/worstideaofalltime/e/632e9c492eae270012dda45b/media.mp3", + "filename": "The Worst Idea Of All Time - Killionaire TV 13: Broox v Mehdi v Samantha.mp3", + "mimetype": "audio/mpeg", + "duration": 2378, + "bitrate": null, + "size": 57076416, + "creation_date": "2022-09-24T22:02:55.627370Z", + "accessed_date": null, + "modification_date": "2022-09-24T22:02:55.627383Z", + "metadata": {}, + "import_date": null, + "import_details": {}, + "import_status": "finished", + "import_metadata": {}, + "import_reference": "8a7b849a-b579-4ae3-bf6d-179706f92f46", + "track": { + "id": 104491, + "fid": "https://tanukitunes.com/federation/music/tracks/90b6aede-30bc-3d6c-85d6-2ddd8b22ee91", + "mbid": null, + "title": "Killionaire TV 13: Broox v Mehdi v Samantha", + "creation_date": "2022-09-24T05:57:28Z", + "position": 1, + "disc_number": 1, + "domain": "tanukitunes.com", + "is_local": true, + "copyright": "Little Empire Podcasts", + "license": null + }, + "library": { + "id": 592, + "uuid": "bafa3220-d39a-47f2-a217-da86cfea4208", + "fid": "https://tanukitunes.com/federation/music/libraries/bafa3220-d39a-47f2-a217-da86cfea4208", + "url": null, + "name": "rssfeed-03a3d5d1-c120-4c65-b0e1-860d243bc041", + "description": null, + "domain": "tanukitunes.com", + "is_local": true, + "creation_date": "2021-05-12T13:55:57.543028Z", + "privacy_level": "me", + "followers_url": "https://tanukitunes.com/federation/music/libraries/bafa3220-d39a-47f2-a217-da86cfea4208/followers", + "actor": { + "id": 18, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/service", + "preferred_username": "service", + "full_username": "service@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "service", + "summary": null, + "type": "Service", + "creation_date": "2019-05-02T15:00:01Z", + "last_fetch_date": "2019-05-02T15:00:01Z", + "inbox_url": "https://tanukitunes.com/federation/actors/service/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/service/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + } + } +} \ No newline at end of file diff --git a/tests/data/manage/manage_user.json b/tests/data/manage/manage_user.json new file mode 100644 index 0000000000000000000000000000000000000000..b077e7569b3486d1847eabb06409738168ef622c --- /dev/null +++ b/tests/data/manage/manage_user.json @@ -0,0 +1,37 @@ +{ + "id": 1, + "username": "doctorworm", + "actor": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "email": "sporiff@funkwhale.audio", + "name": "", + "is_active": true, + "is_staff": true, + "is_superuser": true, + "date_joined": "2018-12-12T21:03:28Z", + "last_activity": "2022-09-25T21:19:06.082307Z", + "permissions": { + "library": true, + "moderation": true, + "settings": true + }, + "privacy_level": "everyone", + "upload_quota": 500000, + "full_username": "doctorworm@tanukitunes.com" +} \ No newline at end of file diff --git a/tests/data/manage/manage_user_request.json b/tests/data/manage/manage_user_request.json new file mode 100644 index 0000000000000000000000000000000000000000..f107a197e83815e47a3ea6098cb8a2a0d17c939c --- /dev/null +++ b/tests/data/manage/manage_user_request.json @@ -0,0 +1,48 @@ +{ + "id": 41, + "uuid": "11976120-7d23-4d7d-8e37-976846f7be75", + "creation_date": "2022-04-28T16:31:48.760949Z", + "handled_date": null, + "type": "signup", + "status": "refused", + "assigned_to": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter": { + "id": 18980, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/jfdhfudhfdfjb", + "preferred_username": "jfdhfudhfdfjb", + "full_username": "jfdhfudhfdfjb@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "jfdhfudhfdfjb", + "summary": null, + "type": "Person", + "creation_date": "2022-04-28T16:31:48.758135Z", + "last_fetch_date": "2022-04-28T16:31:48.758149Z", + "inbox_url": "https://tanukitunes.com/federation/actors/jfdhfudhfdfjb/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/jfdhfudhfdfjb/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "notes": [], + "metadata": { + "How will you use Funkwhale?": "222" + } +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_actor_list.json b/tests/data/manage/paginated_manage_actor_list.json new file mode 100644 index 0000000000000000000000000000000000000000..2e1d2d9ce760243f52a1462de802a4ac2d436d5c --- /dev/null +++ b/tests/data/manage/paginated_manage_actor_list.json @@ -0,0 +1,85 @@ +{ + "count": 5013, + "next": "https://tanukitunes.com/api/v1/manage/accounts?ordering=creation_date&page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true, + "uploads_count": 16868, + "user": { + "id": 1, + "username": "doctorworm", + "actor": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "email": "sporiff@funkwhale.audio", + "name": "", + "is_active": true, + "is_staff": true, + "is_superuser": true, + "date_joined": "2018-12-12T21:03:28Z", + "last_activity": "2022-09-25T22:38:17.453952Z", + "permissions": { + "library": true, + "moderation": true, + "settings": true + }, + "privacy_level": "everyone", + "upload_quota": 500000, + "full_username": "doctorworm@tanukitunes.com" + }, + "instance_policy": null + }, + { + "id": 7, + "url": "https://open.audio/@eliotberriot", + "fid": "https://open.audio/federation/actors/eliotberriot", + "preferred_username": "eliotberriot", + "full_username": "eliotberriot@open.audio", + "domain": "open.audio", + "name": "eliotberriot", + "summary": null, + "type": "Person", + "creation_date": "2018-12-19T19:04:00.582750Z", + "last_fetch_date": "2022-03-11T01:36:46.040291Z", + "inbox_url": "https://open.audio/federation/actors/eliotberriot/inbox", + "outbox_url": "https://open.audio/federation/actors/eliotberriot/outbox", + "shared_inbox_url": "https://open.audio/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false, + "uploads_count": 36890, + "user": null, + "instance_policy": null + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_album_list.json b/tests/data/manage/paginated_manage_album_list.json new file mode 100644 index 0000000000000000000000000000000000000000..699d76965bcbdb1c0a0260a10be5ab66186100ed --- /dev/null +++ b/tests/data/manage/paginated_manage_album_list.json @@ -0,0 +1,109 @@ +{ + "count": 12455, + "next": "https://tanukitunes.com/api/v1/manage/library/albums?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 12807, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "creation_date": "2022-09-23T11:49:48.540064Z", + "release_date": "2022-09-19", + "cover": { + "uuid": "da7894bc-ddd0-424a-8910-4006bffd5829", + "size": 454, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:51.745146Z", + "urls": { + "source": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T114950Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=91130c1360969329ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/c6/08/d6/29ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T222714Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b0e0796ffef70288e03f95bf7bbfe2323cd2eb5a3caf55e2761fe134acb24306", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c6/08/d6/29ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T222714Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=51eba63c7d4717b016e1adde9fc9dd238928bb418d650a1c5b2aff8134a8846b", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c6/08/d6/29ed2bb41a8b5f1af619f4296977f4c4bb40d5c630a4e3dc7a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T222714Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c5eb24a261295937cedff4cc4edd9bb6bf11682191f8c740f4ae156d6500c221" + } + }, + "domain": "soundship.de", + "is_local": false, + "tracks_count": 15, + "artist": { + "id": 13009, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "domain": "soundship.de", + "is_local": false + }, + "attributed_to": { + "id": 13690, + "url": "https://soundship.de/@gcrkrause", + "fid": "https://soundship.de/federation/actors/gcrkrause", + "preferred_username": "gcrkrause", + "full_username": "gcrkrause@soundship.de", + "domain": "soundship.de", + "name": "gcrkrause", + "summary": null, + "type": "Person", + "creation_date": "2021-03-11T06:08:54.284140Z", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "inbox_url": "https://soundship.de/federation/actors/gcrkrause/inbox", + "outbox_url": "https://soundship.de/federation/actors/gcrkrause/outbox", + "shared_inbox_url": "https://soundship.de/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [] + }, + { + "id": 12806, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "creation_date": "2022-09-23T06:09:32.049042Z", + "release_date": "2022-01-01", + "cover": { + "uuid": "85a4bc29-1f60-4a7b-b462-198c00fc552e", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:35.956452Z", + "urls": { + "source": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T060934Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=128f9a7cdb997e39ffd3641d4284c831be5c7f7aab7aa07d1cafa841bec60c78", + "original": "https://tanukitunes.com/api/v1/attachments/85a4bc29-1f60-4a7b-b462-198c00fc552e/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/85a4bc29-1f60-4a7b-b462-198c00fc552e/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/85a4bc29-1f60-4a7b-b462-198c00fc552e/proxy?next=large_square_crop" + } + }, + "domain": "soundship.de", + "is_local": false, + "tracks_count": 15, + "artist": { + "id": 13008, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": null, + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "domain": "soundship.de", + "is_local": false + }, + "attributed_to": { + "id": 13690, + "url": "https://soundship.de/@gcrkrause", + "fid": "https://soundship.de/federation/actors/gcrkrause", + "preferred_username": "gcrkrause", + "full_username": "gcrkrause@soundship.de", + "domain": "soundship.de", + "name": "gcrkrause", + "summary": null, + "type": "Person", + "creation_date": "2021-03-11T06:08:54.284140Z", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "inbox_url": "https://soundship.de/federation/actors/gcrkrause/inbox", + "outbox_url": "https://soundship.de/federation/actors/gcrkrause/outbox", + "shared_inbox_url": "https://soundship.de/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [] + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_artist_list.json b/tests/data/manage/paginated_manage_artist_list.json new file mode 100644 index 0000000000000000000000000000000000000000..b6d3ff12b1a37dd9ac3278c87c5da5af986036fe --- /dev/null +++ b/tests/data/manage/paginated_manage_artist_list.json @@ -0,0 +1,73 @@ +{ + "count": 12597, + "next": "https://tanukitunes.com/api/v1/manage/library/artists?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 13009, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "domain": "soundship.de", + "is_local": false, + "tracks_count": 15, + "albums_count": 1, + "attributed_to": { + "id": 13690, + "url": "https://soundship.de/@gcrkrause", + "fid": "https://soundship.de/federation/actors/gcrkrause", + "preferred_username": "gcrkrause", + "full_username": "gcrkrause@soundship.de", + "domain": "soundship.de", + "name": "gcrkrause", + "summary": null, + "type": "Person", + "creation_date": "2021-03-11T06:08:54.284140Z", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "inbox_url": "https://soundship.de/federation/actors/gcrkrause/inbox", + "outbox_url": "https://soundship.de/federation/actors/gcrkrause/outbox", + "shared_inbox_url": "https://soundship.de/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [], + "cover": null, + "channel": null, + "content_category": "music" + }, + { + "id": 13008, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": null, + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "domain": "soundship.de", + "is_local": false, + "tracks_count": 15, + "albums_count": 1, + "attributed_to": { + "id": 13690, + "url": "https://soundship.de/@gcrkrause", + "fid": "https://soundship.de/federation/actors/gcrkrause", + "preferred_username": "gcrkrause", + "full_username": "gcrkrause@soundship.de", + "domain": "soundship.de", + "name": "gcrkrause", + "summary": null, + "type": "Person", + "creation_date": "2021-03-11T06:08:54.284140Z", + "last_fetch_date": "2022-09-23T11:55:01.735194Z", + "inbox_url": "https://soundship.de/federation/actors/gcrkrause/inbox", + "outbox_url": "https://soundship.de/federation/actors/gcrkrause/outbox", + "shared_inbox_url": "https://soundship.de/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [], + "cover": null, + "channel": null, + "content_category": "music" + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_channel_list.json b/tests/data/manage/paginated_manage_channel_list.json new file mode 100644 index 0000000000000000000000000000000000000000..b61461943d366dc0a448252058e6ef13a969268e --- /dev/null +++ b/tests/data/manage/paginated_manage_channel_list.json @@ -0,0 +1,205 @@ +{ + "count": 309, + "next": "https://tanukitunes.com/api/v1/manage/channels?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 541, + "uuid": "ad0652fc-54d1-4c90-95a6-0df871ab2156", + "creation_date": "2022-09-05T10:32:04.596968Z", + "artist": { + "id": 12989, + "fid": "https://am.pirateradio.social/federation/actors/28Komma2Prozent", + "mbid": null, + "name": "28,2%", + "creation_date": "2022-09-05T10:32:04.568894Z", + "domain": "am.pirateradio.social", + "is_local": false, + "tracks_count": 1, + "albums_count": 1, + "attributed_to": { + "id": 24881, + "url": "https://am.pirateradio.social/@Ueckuecks_Podcasts", + "fid": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts", + "preferred_username": "Ueckuecks_Podcasts", + "full_username": "Ueckuecks_Podcasts@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Ueckuecks_Podcasts", + "summary": null, + "type": "Person", + "creation_date": "2022-09-02T10:04:56.942319Z", + "last_fetch_date": "2022-09-16T01:40:58.102065Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [ + "AGender", + "CDU", + "Deutschland", + "Enby", + "FDP", + "Feminismus", + "Feminismus", + "Frauen", + "Grüne", + "linke", + "Nichtbinär", + "Partei", + "Parteien", + "Piraten", + "Piratenpartei", + "Politik", + "Politik", + "SPD", + "Trans", + "Treansgender" + ], + "cover": { + "uuid": "ec58d2a4-d496-46a5-a812-386a683c48e2", + "size": 73601, + "mimetype": "image/png", + "creation_date": "2022-09-07T15:59:11.994169Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/61/fa/50/logo.png", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/fa/8e/93/logo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223500Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d53d8335d4a93fd2edaab6ee164769d379362d046f7068fa694be5caeae41e45", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/fa/8e/93/logo-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223500Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=61e813fd7636f6b0a812d259e877277c2c32e87727a05854e70e3579eeeff15a", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/fa/8e/93/logo-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223500Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4a38f93bf9ace4b94e0619323568436801481da88429ad1142c5bba509e3bb15" + } + }, + "channel": "ad0652fc-54d1-4c90-95a6-0df871ab2156", + "content_category": "podcast" + }, + "attributed_to": { + "id": 24881, + "url": "https://am.pirateradio.social/@Ueckuecks_Podcasts", + "fid": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts", + "preferred_username": "Ueckuecks_Podcasts", + "full_username": "Ueckuecks_Podcasts@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Ueckuecks_Podcasts", + "summary": null, + "type": "Person", + "creation_date": "2022-09-02T10:04:56.942319Z", + "last_fetch_date": "2022-09-16T01:40:58.102065Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/Ueckuecks_Podcasts/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "actor": { + "id": 25030, + "url": "https://am.pirateradio.social/channels/28Komma2Prozent", + "fid": "https://am.pirateradio.social/federation/actors/28Komma2Prozent", + "preferred_username": "28Komma2Prozent", + "full_username": "28Komma2Prozent@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "28,2%", + "summary": null, + "type": "Person", + "creation_date": "2022-09-05T10:32:04.110935Z", + "last_fetch_date": "2022-09-05T10:32:07.574730Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/28Komma2Prozent/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/28Komma2Prozent/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "rss_url": "https://am.pirateradio.social/api/v1/channels/28Komma2Prozent/rss", + "metadata": {} + }, + { + "id": 540, + "uuid": "a2dac430-0a5a-4794-a7ca-94d8eded8c96", + "creation_date": "2022-09-03T19:09:03.071435Z", + "artist": { + "id": 12988, + "fid": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs", + "mbid": null, + "name": "Aufnahmen von unterwegs", + "creation_date": "2022-09-03T19:09:03.043275Z", + "domain": "am.pirateradio.social", + "is_local": false, + "tracks_count": 2, + "albums_count": 0, + "attributed_to": { + "id": 24925, + "url": "https://am.pirateradio.social/@Hiker", + "fid": "https://am.pirateradio.social/federation/actors/Hiker", + "preferred_username": "Hiker", + "full_username": "Hiker@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Hiker", + "summary": null, + "type": "Person", + "creation_date": "2022-09-03T19:09:03.030211Z", + "last_fetch_date": "2022-09-17T00:07:59.225616Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/Hiker/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/Hiker/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "tags": [ + "clips", + "Töne" + ], + "cover": { + "uuid": "041a9c84-03bc-46de-830d-26abd8e2d340", + "size": 16612, + "mimetype": "image/jpeg", + "creation_date": "2022-09-17T00:07:59.283044Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/4a/35/cc/mikro.jpg", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/d3/bb/d1/mikro.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223500Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bbc288e7585ae519e8b54b9c1e2cb6c780f9b3db0e294265c1af9667ddfa5fc4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d3/bb/d1/mikro-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223500Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0689b03bbf23e33faeb16006bad69eaf6cd383a8e47c692fe268e029f579f68f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d3/bb/d1/mikro-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T223500Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=91784ce0a65e8915606d576e89b0ab6194af118208adc0e309e2541a23269b10" + } + }, + "channel": "a2dac430-0a5a-4794-a7ca-94d8eded8c96", + "content_category": "music" + }, + "attributed_to": { + "id": 24925, + "url": "https://am.pirateradio.social/@Hiker", + "fid": "https://am.pirateradio.social/federation/actors/Hiker", + "preferred_username": "Hiker", + "full_username": "Hiker@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Hiker", + "summary": null, + "type": "Person", + "creation_date": "2022-09-03T19:09:03.030211Z", + "last_fetch_date": "2022-09-17T00:07:59.225616Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/Hiker/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/Hiker/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "actor": { + "id": 24924, + "url": "https://am.pirateradio.social/channels/aufnahmenvonunterwegs", + "fid": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs", + "preferred_username": "aufnahmenvonunterwegs", + "full_username": "aufnahmenvonunterwegs@am.pirateradio.social", + "domain": "am.pirateradio.social", + "name": "Aufnahmen von unterwegs", + "summary": null, + "type": "Person", + "creation_date": "2022-09-03T19:09:02.582183Z", + "last_fetch_date": "2022-09-04T11:34:13.538775Z", + "inbox_url": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs/inbox", + "outbox_url": "https://am.pirateradio.social/federation/actors/aufnahmenvonunterwegs/outbox", + "shared_inbox_url": "https://am.pirateradio.social/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": false + }, + "rss_url": "https://am.pirateradio.social/api/v1/channels/aufnahmenvonunterwegs/rss", + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_domain_list.json b/tests/data/manage/paginated_manage_domain_list.json new file mode 100644 index 0000000000000000000000000000000000000000..7b77f698e0a339a15b9fc3c4dd0a1b0eea3e07a4 --- /dev/null +++ b/tests/data/manage/paginated_manage_domain_list.json @@ -0,0 +1,74 @@ +{ + "count": 2117, + "next": "https://tanukitunes.com/api/v1/manage/federation/domains?page=2&page_size=2", + "previous": null, + "results": [ + { + "name": "0lb.be", + "creation_date": "2022-01-28T23:31:19.701895Z", + "actors_count": 1, + "outbox_activities_count": 0, + "nodeinfo": { + "status": "ok", + "payload": { + "usage": { + "users": { + "total": 4, + "activeMonth": 3, + "activeHalfyear": 4 + }, + "localPosts": 1028 + }, + "version": "2.0", + "software": { + "name": "hometown", + "version": "1.0.6+3.5.2" + }, + "protocols": [ + "activitypub" + ], + "openRegistrations": false + } + }, + "nodeinfo_fetch_date": "2022-09-25T12:02:21.488903Z", + "instance_policy": null, + "allowed": null + }, + { + "name": "101010.pl", + "creation_date": "2020-03-26T08:55:16.333634Z", + "actors_count": 1, + "outbox_activities_count": 0, + "nodeinfo": { + "status": "ok", + "payload": { + "usage": { + "users": { + "total": 2329, + "activeMonth": 324, + "activeHalfyear": 1007 + }, + "localPosts": 60547 + }, + "version": "2.0", + "metadata": [], + "services": { + "inbound": [], + "outbound": [] + }, + "software": { + "name": "mastodon", + "version": "3.5.3" + }, + "protocols": [ + "activitypub" + ], + "openRegistrations": true + } + }, + "nodeinfo_fetch_date": "2022-09-25T01:11:43.829657Z", + "instance_policy": null, + "allowed": null + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_instance_policy_list.json b/tests/data/manage/paginated_manage_instance_policy_list.json new file mode 100644 index 0000000000000000000000000000000000000000..c944108925825e098ecd0a0bd78566eb1555041e --- /dev/null +++ b/tests/data/manage/paginated_manage_instance_policy_list.json @@ -0,0 +1,39 @@ +{ + "count": 2, + "next": null, + "previous": null, + "results": [ + { + "id": 16, + "uuid": "86b5907b-6d81-4eae-9753-9715223e5ef0", + "target": { + "type": "domain", + "id": "google.com" + }, + "creation_date": "2022-01-20T18:17:18.188739Z", + "actor": "doctorworm@tanukitunes.com", + "summary": "Test", + "is_active": false, + "block_all": false, + "silence_activity": false, + "silence_notifications": false, + "reject_media": true + }, + { + "id": 15, + "uuid": "c6d2fc07-c78e-4f6c-9937-c24ac6cf7593", + "target": { + "type": "domain", + "id": "funkwhale.it" + }, + "creation_date": "2020-04-02T13:02:13.309869Z", + "actor": "doctorworm@tanukitunes.com", + "summary": "", + "is_active": true, + "block_all": true, + "silence_activity": false, + "silence_notifications": false, + "reject_media": false + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_invitation_list.json b/tests/data/manage/paginated_manage_invitation_list.json new file mode 100644 index 0000000000000000000000000000000000000000..a80a5941120dcfce75c1dc75edf078a4e7c9ddf7 --- /dev/null +++ b/tests/data/manage/paginated_manage_invitation_list.json @@ -0,0 +1,47 @@ +{ + "count": 2, + "next": null, + "previous": null, + "results": [ + { + "id": 3, + "owner": { + "id": 1, + "username": "doctorworm", + "email": "sporiff@funkwhale.audio", + "name": "", + "is_active": true, + "is_staff": true, + "is_superuser": true, + "date_joined": "2018-12-12T21:03:28Z", + "last_activity": "2022-09-25T21:35:15.914620Z", + "privacy_level": "everyone", + "upload_quota": 500000 + }, + "code": "that-code", + "expiration_date": "2022-10-09T21:36:06.055501Z", + "creation_date": "2022-09-25T21:36:06.055501Z", + "users": [] + }, + { + "id": 2, + "owner": { + "id": 1, + "username": "doctorworm", + "email": "sporiff@funkwhale.audio", + "name": "", + "is_active": true, + "is_staff": true, + "is_superuser": true, + "date_joined": "2018-12-12T21:03:28Z", + "last_activity": "2022-09-25T21:35:15.914620Z", + "privacy_level": "everyone", + "upload_quota": 500000 + }, + "code": "this-code", + "expiration_date": "2022-10-09T21:35:40.221326Z", + "creation_date": "2022-09-25T21:35:40.221326Z", + "users": [] + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_library_list.json b/tests/data/manage/paginated_manage_library_list.json new file mode 100644 index 0000000000000000000000000000000000000000..e2c2f1d3c4c0b5006d895b98dbf18f475b6ccebc --- /dev/null +++ b/tests/data/manage/paginated_manage_library_list.json @@ -0,0 +1,73 @@ +{ + "count": 193, + "next": "https://tanukitunes.com/api/v1/manage/library/libraries?l=&ordering=creation_date&page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 1, + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "url": null, + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "domain": "tanukitunes.com", + "is_local": true, + "creation_date": "2018-12-12T22:16:34.002451Z", + "privacy_level": "me", + "uploads_count": 15955, + "followers_count": 4, + "followers_url": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c/followers", + "actor": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + } + }, + { + "id": 2, + "uuid": "4cebd148-ef54-4882-b486-f05e7fe5a78c", + "fid": "https://tanukitunes.com/federation/music/libraries/4cebd148-ef54-4882-b486-f05e7fe5a78c", + "url": null, + "name": "Tracks by me", + "description": "This library contains songs composed and performed by me. Listen at your own peril.", + "domain": "tanukitunes.com", + "is_local": true, + "creation_date": "2018-12-12T22:17:17.895971Z", + "privacy_level": "everyone", + "uploads_count": 7, + "followers_count": 6, + "followers_url": "https://tanukitunes.com/federation/music/libraries/4cebd148-ef54-4882-b486-f05e7fe5a78c/followers", + "actor": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + } + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_note_list.json b/tests/data/manage/paginated_manage_note_list.json new file mode 100644 index 0000000000000000000000000000000000000000..bdba5e3b5228086128eb08854413456828ed5859 --- /dev/null +++ b/tests/data/manage/paginated_manage_note_list.json @@ -0,0 +1,147 @@ +{ + "count": 5, + "next": null, + "previous": null, + "results": [ + { + "id": 5, + "uuid": "8350f63a-4da9-4496-85c9-1fba4266495c", + "creation_date": "2022-08-02T10:07:43.930837Z", + "summary": "No reason has been given for this takedown. As far as I can see the account in question hasn't violated any rules.", + "author": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "target": { + "type": "report", + "uuid": "a4d35f33-cac9-4b31-b60e-1ee8ff132d39" + } + }, + { + "id": 4, + "uuid": "7eff9780-bade-4637-b800-0a341618ae37", + "creation_date": "2022-01-20T07:40:54.113338Z", + "summary": "No action needed. This was a documentation test.", + "author": { + "id": 15840, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/anothertest", + "preferred_username": "anothertest", + "full_username": "anothertest@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "anothertest", + "summary": null, + "type": "Person", + "creation_date": "2022-01-14T13:01:58.647992Z", + "last_fetch_date": "2022-01-14T13:01:58.648011Z", + "inbox_url": "https://tanukitunes.com/federation/actors/anothertest/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/anothertest/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "target": { + "type": "report", + "uuid": "9c5daf49-377c-4a66-a403-93822dab208a" + } + }, + { + "id": 3, + "uuid": "ddf6db3d-56f7-4c94-a0ef-adb7c7aa5b52", + "creation_date": "2020-11-02T16:31:34.485456Z", + "summary": "Hi,\n\nThe content in this library is private, meaning it can only be played by the user who owns it. What is visible in the frontend is only metadata, which does not constitute the copyrighted work.\n\nSimilar to how I host my private music collection on Funkwhale, it is acceptable to host copyrighted material providing access is restricted and it is not publicly accessible (or even accessible at a pod-level) as this would be distribution of materials.\n\nIn the case of youtube-dl the issue was that A) the tool's primary function was the downloading of copyrighted material and B) they explicitly used copyrighted materials of examples of things that could be downloaded with the tool. Funkwhale is primarily for the publication of free materials, but also has tools to allow you to host your own collection privately.\n\nIf anything copyrighted is put into a public or pod-available library it will be swiftly privatised and a warning sent to the owner. Any second offence will result in the closure of the account.", + "author": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "target": { + "type": "report", + "uuid": "20ea8744-ca20-40a7-9954-2723d92030f6" + } + }, + { + "id": 2, + "uuid": "4300c5b2-6ad2-4a15-b265-a075236e4a1e", + "creation_date": "2020-11-02T16:24:47.338169Z", + "summary": "Hi,\n\nThis content is kept in private libraries and is therefore only accessible to the owner of the music. Similar to how music in my personal libraries is visible but not playable. \n\nThe hosting of metadata is not a problem in and of itself, as long as there is no intent or mechanism for distribution, which in this case there is not. This is the same way that music on platforms such as Spotify which is no longer accessible or is only accessible through accounts is handled: shown but not playable.", + "author": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "target": { + "type": "report", + "uuid": "e2671513-fb46-426d-94da-781f9a225d6e" + } + }, + { + "id": 1, + "uuid": "4c3cdff9-2660-407b-928c-b2a769d0c188", + "creation_date": "2019-11-17T11:32:22.965744Z", + "summary": "The song in this instance is based on a public domain transcript and is licensed under CC. The song is hosted by the original songwriter on their instance and federated here, so any complaints should probably be taken up with the original songwriter. Either way, this track does not violate and US or EU laws as far as I am aware.", + "author": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "target": { + "type": "report", + "uuid": "88f12d60-ddb3-49b5-99f7-82ec2c12747f" + } + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_report_list.json b/tests/data/manage/paginated_manage_report_list.json new file mode 100644 index 0000000000000000000000000000000000000000..2eca8dfbcbfa6dfba4df23f5cf044bad624f414e --- /dev/null +++ b/tests/data/manage/paginated_manage_report_list.json @@ -0,0 +1,170 @@ +{ + "count": 9, + "next": "https://tanukitunes.com/api/v1/manage/moderation/reports?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 9, + "uuid": "5c8251fd-5e74-4fbf-bc4d-58ffa558cb5a", + "fid": "https://tanukitunes.com/federation/reports/5c8251fd-5e74-4fbf-bc4d-58ffa558cb5a", + "creation_date": "2022-09-25T21:51:28.168827Z", + "handled_date": null, + "summary": "In fact, this whole thing is bad", + "type": "other", + "target": { + "type": "artist", + "id": 6451 + }, + "target_state": { + "id": 6451, + "fid": "https://tanukitunes.com/federation/music/artists/760b6225-4d4a-4b52-940e-22b1837b02cd", + "mbid": "d8df7087-06d5-4545-9024-831bb8558ad1", + "name": "Jonathan Coulton", + "tags": [ + "alternative", + "independent", + "indie", + "rock" + ], + "uuid": "760b6225-4d4a-4b52-940e-22b1837b02cd", + "domain": "tanukitunes.com", + "_target": { + "id": 6451, + "type": "artist" + }, + "is_local": true, + "description": null, + "creation_date": "2019-06-05T11:48:52.777472Z", + "content_category": "music" + }, + "is_handled": false, + "assigned_to": null, + "target_owner": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter_email": null, + "notes": [] + }, + { + "id": 8, + "uuid": "cf3b9a11-662d-4e99-b579-a95c79e9567e", + "fid": "https://tanukitunes.com/federation/reports/cf3b9a11-662d-4e99-b579-a95c79e9567e", + "creation_date": "2022-09-25T21:51:08.477866Z", + "handled_date": null, + "summary": "I'm pretty sure this is bad juju", + "type": "other", + "target": { + "type": "album", + "id": 5539 + }, + "target_state": { + "id": 5539, + "fid": "https://tanukitunes.com/federation/music/albums/81c04ad7-742e-4e4c-8c86-d0d075444717", + "mbid": "eb4f050a-9830-48ae-bf3a-b5ea712d1857", + "tags": [ + "rock" + ], + "uuid": "81c04ad7-742e-4e4c-8c86-d0d075444717", + "title": "Artificial Heart", + "artist": { + "id": 6451, + "fid": "https://tanukitunes.com/federation/music/artists/760b6225-4d4a-4b52-940e-22b1837b02cd", + "mbid": "d8df7087-06d5-4545-9024-831bb8558ad1", + "name": "Jonathan Coulton", + "tags": [ + "alternative", + "independent", + "indie", + "rock" + ], + "uuid": "760b6225-4d4a-4b52-940e-22b1837b02cd", + "description": null, + "creation_date": "2019-06-05T11:48:52.777472Z", + "content_category": "music" + }, + "domain": "tanukitunes.com", + "_target": { + "id": 5539, + "type": "album" + }, + "is_local": true, + "description": null, + "release_date": "2011-09-02", + "creation_date": "2019-06-05T11:48:52Z" + }, + "is_handled": false, + "assigned_to": null, + "target_owner": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter_email": null, + "notes": [] + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_track_list.json b/tests/data/manage/paginated_manage_track_list.json new file mode 100644 index 0000000000000000000000000000000000000000..9714ca695a4842c99541d3533e6c565e72b620ef --- /dev/null +++ b/tests/data/manage/paginated_manage_track_list.json @@ -0,0 +1,83 @@ +{ + "count": 101637, + "next": "https://tanukitunes.com/api/v1/manage/library/tracks?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 104492, + "fid": "https://tanukitunes.com/federation/music/tracks/896591fa-2ce4-3aca-a980-20c40b38c028", + "mbid": null, + "title": "Teachers Under Attack by the Far Right: The Gabriel Gipe Interview", + "creation_date": "2022-09-23T21:39:06Z", + "position": 1, + "disc_number": 1, + "domain": "tanukitunes.com", + "is_local": true, + "copyright": null, + "license": null, + "artist": { + "id": 7849, + "fid": "https://tanukitunes.com/federation/music/artists/131beb6a-19f6-4ba3-a106-3e0d2c40dcef", + "mbid": null, + "name": "Revolutionary Left Radio", + "creation_date": "2020-04-10T00:35:15.314453Z", + "domain": "tanukitunes.com", + "is_local": true + }, + "album": null, + "attributed_to": null, + "uploads_count": 1, + "tags": [], + "cover": { + "uuid": "6c8a8609-1ce1-411c-b365-68b0ca6918ff", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:04:45.020430Z", + "urls": { + "source": "https://ssl-static.libsyn.com/p/assets/f/a/6/5/fa65ba5d3762a070/Webp.net-resizeimage.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/6c8a8609-1ce1-411c-b365-68b0ca6918ff/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/6c8a8609-1ce1-411c-b365-68b0ca6918ff/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/6c8a8609-1ce1-411c-b365-68b0ca6918ff/proxy?next=large_square_crop" + } + } + }, + { + "id": 104491, + "fid": "https://tanukitunes.com/federation/music/tracks/90b6aede-30bc-3d6c-85d6-2ddd8b22ee91", + "mbid": null, + "title": "Killionaire TV 13: Broox v Mehdi v Samantha", + "creation_date": "2022-09-24T05:57:28Z", + "position": 1, + "disc_number": 1, + "domain": "tanukitunes.com", + "is_local": true, + "copyright": "Little Empire Podcasts", + "license": null, + "artist": { + "id": 10634, + "fid": "https://tanukitunes.com/federation/music/artists/3f5b190c-8807-4c3f-8cea-5ba4684dec8a", + "mbid": null, + "name": "The Worst Idea Of All Time", + "creation_date": "2021-05-12T13:55:57.518147Z", + "domain": "tanukitunes.com", + "is_local": true + }, + "album": null, + "attributed_to": null, + "uploads_count": 1, + "tags": [], + "cover": { + "uuid": "9934b8d3-c81e-4468-bead-68ce5d0cebcb", + "size": 414457, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:55.617643Z", + "urls": { + "source": "https://assets.pippa.io/shows/610d0aee7dad151fe90842ad/1663998822930-94f6f4529e4e3eb05a7c9349bba6e705.jpeg", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/3c/0e/76/663998822930-94f6f4529e4e3eb05a7c9349bba6e705.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T221341Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7e6fd4637471c0f4704927de4a2e3495771f64b73aa6a4f6ff0600d0b9fdfec2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/3c/0e/76/663998822930-94f6f4529e4e3eb05a7c9349bba6e705-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T221341Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e2195e4fb872f8b4026d3b43480461a1d6ba67fa6e2a6371f250d6b5973f35bf", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/3c/0e/76/663998822930-94f6f4529e4e3eb05a7c9349bba6e705-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T221341Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=af7ddfb7a2dad89fd986030f8e14b58240c32565bad54d64c9ca88d44476b2c1" + } + } + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_upload_list.json b/tests/data/manage/paginated_manage_upload_list.json new file mode 100644 index 0000000000000000000000000000000000000000..ecd0a86e4bd122ce54161492976951acd2e99800 --- /dev/null +++ b/tests/data/manage/paginated_manage_upload_list.json @@ -0,0 +1,143 @@ +{ + "count": 97468, + "next": "https://tanukitunes.com/api/v1/manage/library/uploads?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 193919, + "uuid": "55bd602d-ecc2-4e22-85aa-aed6be7a0b9b", + "fid": null, + "domain": null, + "is_local": true, + "audio_file": null, + "listen_url": "/api/v1/listen/896591fa-2ce4-3aca-a980-20c40b38c028/?upload=55bd602d-ecc2-4e22-85aa-aed6be7a0b9b", + "source": "https://traffic.libsyn.com/secure/revolutionaryleftradio/GG.mp3?dest-id=485908", + "filename": "Revolutionary Left Radio - Teachers Under Attack by the Far Right: The Gabriel Gipe Interview.mp3", + "mimetype": "audio/mpeg", + "duration": 7773, + "bitrate": null, + "size": 62176112, + "creation_date": "2022-09-24T22:04:45.030838Z", + "accessed_date": null, + "modification_date": "2022-09-24T22:04:45.030852Z", + "metadata": {}, + "import_date": null, + "import_details": {}, + "import_status": "finished", + "import_metadata": {}, + "import_reference": "9d25f9b1-fe68-4943-8e0d-7252b47c4b23", + "track": { + "id": 104492, + "fid": "https://tanukitunes.com/federation/music/tracks/896591fa-2ce4-3aca-a980-20c40b38c028", + "mbid": null, + "title": "Teachers Under Attack by the Far Right: The Gabriel Gipe Interview", + "creation_date": "2022-09-23T21:39:06Z", + "position": 1, + "disc_number": 1, + "domain": "tanukitunes.com", + "is_local": true, + "copyright": null, + "license": null + }, + "library": { + "id": 130, + "uuid": "7e1fd9dc-9c72-4d22-bf84-8eec4829d384", + "fid": "https://tanukitunes.com/federation/music/libraries/7e1fd9dc-9c72-4d22-bf84-8eec4829d384", + "url": null, + "name": "rssfeed-144d1d40-1a79-425f-b94d-98d55a1a8f37", + "description": null, + "domain": "tanukitunes.com", + "is_local": true, + "creation_date": "2020-04-10T00:35:15.348450Z", + "privacy_level": "me", + "followers_url": "https://tanukitunes.com/federation/music/libraries/7e1fd9dc-9c72-4d22-bf84-8eec4829d384/followers", + "actor": { + "id": 18, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/service", + "preferred_username": "service", + "full_username": "service@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "service", + "summary": null, + "type": "Service", + "creation_date": "2019-05-02T15:00:01Z", + "last_fetch_date": "2019-05-02T15:00:01Z", + "inbox_url": "https://tanukitunes.com/federation/actors/service/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/service/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + } + } + }, + { + "id": 193918, + "uuid": "0aa2160a-e00b-4552-adcb-825897422b48", + "fid": null, + "domain": null, + "is_local": true, + "audio_file": null, + "listen_url": "/api/v1/listen/90b6aede-30bc-3d6c-85d6-2ddd8b22ee91/?upload=0aa2160a-e00b-4552-adcb-825897422b48", + "source": "https://sphinx.acast.com/p/acast/s/worstideaofalltime/e/632e9c492eae270012dda45b/media.mp3", + "filename": "The Worst Idea Of All Time - Killionaire TV 13: Broox v Mehdi v Samantha.mp3", + "mimetype": "audio/mpeg", + "duration": 2378, + "bitrate": null, + "size": 57076416, + "creation_date": "2022-09-24T22:02:55.627370Z", + "accessed_date": null, + "modification_date": "2022-09-24T22:02:55.627383Z", + "metadata": {}, + "import_date": null, + "import_details": {}, + "import_status": "finished", + "import_metadata": {}, + "import_reference": "8a7b849a-b579-4ae3-bf6d-179706f92f46", + "track": { + "id": 104491, + "fid": "https://tanukitunes.com/federation/music/tracks/90b6aede-30bc-3d6c-85d6-2ddd8b22ee91", + "mbid": null, + "title": "Killionaire TV 13: Broox v Mehdi v Samantha", + "creation_date": "2022-09-24T05:57:28Z", + "position": 1, + "disc_number": 1, + "domain": "tanukitunes.com", + "is_local": true, + "copyright": "Little Empire Podcasts", + "license": null + }, + "library": { + "id": 592, + "uuid": "bafa3220-d39a-47f2-a217-da86cfea4208", + "fid": "https://tanukitunes.com/federation/music/libraries/bafa3220-d39a-47f2-a217-da86cfea4208", + "url": null, + "name": "rssfeed-03a3d5d1-c120-4c65-b0e1-860d243bc041", + "description": null, + "domain": "tanukitunes.com", + "is_local": true, + "creation_date": "2021-05-12T13:55:57.543028Z", + "privacy_level": "me", + "followers_url": "https://tanukitunes.com/federation/music/libraries/bafa3220-d39a-47f2-a217-da86cfea4208/followers", + "actor": { + "id": 18, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/service", + "preferred_username": "service", + "full_username": "service@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "service", + "summary": null, + "type": "Service", + "creation_date": "2019-05-02T15:00:01Z", + "last_fetch_date": "2019-05-02T15:00:01Z", + "inbox_url": "https://tanukitunes.com/federation/actors/service/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/service/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + } + } + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_user_list.json b/tests/data/manage/paginated_manage_user_list.json new file mode 100644 index 0000000000000000000000000000000000000000..c6dc35f78a4a8637cfa88bb5611d2f3cfc291a99 --- /dev/null +++ b/tests/data/manage/paginated_manage_user_list.json @@ -0,0 +1,81 @@ +{ + "count": 5, + "next": "https://tanukitunes.com/api/v1/manage/users/users?page=2&page_size=2", + "previous": null, + "results": [ + { + "id": 1, + "username": "doctorworm", + "actor": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "email": "sporiff@funkwhale.audio", + "name": "", + "is_active": true, + "is_staff": true, + "is_superuser": true, + "date_joined": "2018-12-12T21:03:28Z", + "last_activity": "2022-09-25T21:19:06.082307Z", + "permissions": { + "library": true, + "moderation": true, + "settings": true + }, + "privacy_level": "everyone", + "upload_quota": 500000, + "full_username": "doctorworm@tanukitunes.com" + }, + { + "id": 2, + "username": "notdoctorworm", + "actor": { + "id": 2, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/notdoctorworm", + "preferred_username": "notdoctorworm", + "full_username": "notdoctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "notdoctorworm", + "summary": null, + "type": "Person", + "creation_date": "2019-02-14T23:10:00Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/notdoctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/notdoctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "email": "notsporiff@funkwhale.audio", + "name": "", + "is_active": false, + "is_staff": false, + "is_superuser": false, + "date_joined": "2019-02-14T23:10:00Z", + "last_activity": "2022-09-25T21:19:06.082307Z", + "permissions": { + "library": false, + "moderation": false, + "settings": false + }, + "privacy_level": "instance", + "upload_quota": 50000, + "full_username": "notdoctorworm@tanukitunes.com" + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/paginated_manage_user_request_list.json b/tests/data/manage/paginated_manage_user_request_list.json new file mode 100644 index 0000000000000000000000000000000000000000..8e1118ca01d40121c494ee7a003e0cfe526b6bc0 --- /dev/null +++ b/tests/data/manage/paginated_manage_user_request_list.json @@ -0,0 +1,103 @@ +{ + "count": 87, + "next": "https://tanukitunes.com/api/v1/manage/moderation/requests?page=2", + "previous": null, + "results": [ + { + "id": 41, + "uuid": "11976120-7d23-4d7d-8e37-976846f7be75", + "creation_date": "2022-04-28T16:31:48.760949Z", + "handled_date": null, + "type": "signup", + "status": "refused", + "assigned_to": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter": { + "id": 18980, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/jfdhfudhfdfjb", + "preferred_username": "jfdhfudhfdfjb", + "full_username": "jfdhfudhfdfjb@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "jfdhfudhfdfjb", + "summary": null, + "type": "Person", + "creation_date": "2022-04-28T16:31:48.758135Z", + "last_fetch_date": "2022-04-28T16:31:48.758149Z", + "inbox_url": "https://tanukitunes.com/federation/actors/jfdhfudhfdfjb/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/jfdhfudhfdfjb/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "notes": [], + "metadata": { + "How will you use Funkwhale?": "222" + } + }, + { + "id": 40, + "uuid": "878cf1a6-49dc-4794-af3b-92b9a4da1c8c", + "creation_date": "2022-04-28T16:29:50.062217Z", + "handled_date": null, + "type": "signup", + "status": "refused", + "assigned_to": { + "id": 1, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "preferred_username": "doctorworm", + "full_username": "doctorworm@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "doctorworm", + "summary": null, + "type": "Person", + "creation_date": "2018-12-12T22:12:18Z", + "last_fetch_date": "2021-06-13T14:13:41Z", + "inbox_url": "https://tanukitunes.com/federation/actors/doctorworm/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/doctorworm/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "submitter": { + "id": 18979, + "url": null, + "fid": "https://tanukitunes.com/federation/actors/hfdjhjhfgdhvfh", + "preferred_username": "hfdjhjhfgdhvfh", + "full_username": "hfdjhjhfgdhvfh@tanukitunes.com", + "domain": "tanukitunes.com", + "name": "hfdjhjhfgdhvfh", + "summary": null, + "type": "Person", + "creation_date": "2022-04-28T16:29:50.059816Z", + "last_fetch_date": "2022-04-28T16:29:50.059831Z", + "inbox_url": "https://tanukitunes.com/federation/actors/hfdjhjhfgdhvfh/inbox", + "outbox_url": "https://tanukitunes.com/federation/actors/hfdjhjhfgdhvfh/outbox", + "shared_inbox_url": "https://tanukitunes.com/federation/shared/inbox", + "manually_approves_followers": false, + "is_local": true + }, + "notes": [], + "metadata": { + "How will you use Funkwhale?": "22" + } + } + ] +} \ No newline at end of file diff --git a/tests/data/manage/patched_manage_report_request.json b/tests/data/manage/patched_manage_report_request.json new file mode 100644 index 0000000000000000000000000000000000000000..e2f6ed61102585204dd166375054efb9271968c6 --- /dev/null +++ b/tests/data/manage/patched_manage_report_request.json @@ -0,0 +1,3 @@ +{ + "is_handled": true +} \ No newline at end of file diff --git a/tests/data/oauth/paginated_application_list.json b/tests/data/oauth/paginated_application_list.json new file mode 100644 index 0000000000000000000000000000000000000000..571689130315fba1e6d9d8a960cff7dc5559f760 --- /dev/null +++ b/tests/data/oauth/paginated_application_list.json @@ -0,0 +1,23 @@ +{ + "count": 2, + "next": null, + "previous": null, + "results": [ + { + "client_id": "0bxRvjIMbZUYBJH39cJ1j7MBjo0R71axG8cZdYxm", + "name": "Swagger", + "scopes": "read", + "created": "2022-07-18T20:12:20.390955Z", + "updated": "2022-07-18T20:23:08.641340Z", + "token": "very-authentic-definitely-real-token" + }, + { + "client_id": "bVRCxF7F570FGgHRWWGL1JTQiH2KyRereE6tmihp", + "name": "Funkwhale CLI", + "scopes": "read", + "created": "2022-06-17T14:32:36.572114Z", + "updated": "2022-06-17T14:32:36.572136Z", + "token": "another-authentic-definitely-real-token" + } + ] +} \ No newline at end of file diff --git a/tests/data/playlists/paginated_playlist_list.json b/tests/data/playlists/paginated_playlist_list.json new file mode 100644 index 0000000000000000000000000000000000000000..b6c558d239d226401d16f7325f256a9edb91d550 --- /dev/null +++ b/tests/data/playlists/paginated_playlist_list.json @@ -0,0 +1,1651 @@ +{ + "count": 42, + "next": null, + "previous": null, + "results": [ + { + "id": 1, + "name": "The Mouth Experience", + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=135dc10b0fa0838b215529c90ccfdb79540e55acabd42cfbf52166bbece5b9f2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45ed7a1282ed4613007c84a47c561511567688b182fbb8768c9b4667d02b8f1e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f9c1d5d628ebe132747472fbe77f8e5c886af2781e419b87396047218d754cae" + } + } + }, + "modification_date": "2020-07-29T12:51:29.851637Z", + "creation_date": "2018-12-13T09:49:45.464112Z", + "privacy_level": "me", + "tracks_count": 56, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b4cf59394-234a-47db-8b2e-c82a3ff0dcaa-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c148d15fac9ef8669447fe95f36b29fc46359a680f1cae19fdf0b5713d742d66", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/be74e64d2-4746-47d0-8755-b687a2679d4b-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=48b779e14d053bf00dba2559eecaaf999983f5c4720479403b4380b5a4d57a12", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b593fff6f-824d-4621-8245-3e8b3b007744-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08221afaa8f24eb46afc0fb144c8dffd7c90723009aff624f443a80a51ada9da" + ], + "duration": 10101, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 2, + "name": "Best Boingo", + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=135dc10b0fa0838b215529c90ccfdb79540e55acabd42cfbf52166bbece5b9f2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45ed7a1282ed4613007c84a47c561511567688b182fbb8768c9b4667d02b8f1e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f9c1d5d628ebe132747472fbe77f8e5c886af2781e419b87396047218d754cae" + } + } + }, + "modification_date": "2018-12-13T10:07:05.736779Z", + "creation_date": "2018-12-13T10:05:39.842310Z", + "privacy_level": "me", + "tracks_count": 9, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b34f7825d-11cf-49d9-87f4-72b0d51997d0-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e3eed78ee6db4f5d1695c9d53e4d5ec3ca2b503f8f896518f5d75d78db0568b5", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/43/c0/a5/r-489712-1333749041.jpeg-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a2c542610570bda182ff675550d53d66e08d28e10435531625b822c3b7c70b8f", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/bcover_g1Lv3yt-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f3580aacd3a884d962e940deeae71c16e6870bbfaa257131da4a83ff5a936e98" + ], + "duration": 2240, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 3, + "name": "Surprisingly Beautiful", + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=135dc10b0fa0838b215529c90ccfdb79540e55acabd42cfbf52166bbece5b9f2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45ed7a1282ed4613007c84a47c561511567688b182fbb8768c9b4667d02b8f1e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f9c1d5d628ebe132747472fbe77f8e5c886af2781e419b87396047218d754cae" + } + } + }, + "modification_date": "2021-12-06T21:15:30.103790Z", + "creation_date": "2018-12-14T10:27:48.836616Z", + "privacy_level": "me", + "tracks_count": 15, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/14/b99337815-88a4-4296-9a39-34abe4d7bd6d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4e8ff8b9012605143c4792b695f1c5c74f9d6c5761c2aee338310c294cf003e0", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/14/b91abe8c0-f1c9-3427-9c68-361762c6c33f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=126750f9f81f3191b78200fb1150759edb88b301af3624586396411953ca185d", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b5d76ed08-bdac-3401-9440-3e836b432723-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7e686d3c208ec5b550926bc3677047df620d6f3d2a3596a58a1c5ae502d0fc45", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b41f29ae3-8768-4d4a-bfb1-f334cb408569-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5cbe164a56857b0b604ef81ac916fbf49dabe2c4262c85bc09ccd531b6bcb1b9", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b459dd621-8f47-4af6-97f7-2f925e685853-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=09cc31d36945a3bbccc9ce8a1d3d15d2fa29fc1892064083d202371d242f1725" + ], + "duration": 2917, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 10, + "name": "ITZKHildy", + "user": { + "id": 48, + "username": "Cardony152", + "name": "", + "date_joined": "2019-09-05T18:41:31.359511Z", + "avatar": null + }, + "modification_date": "2019-09-05T18:42:07.176982Z", + "creation_date": "2019-09-05T18:42:07.176335Z", + "privacy_level": "instance", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Cardony152", + "url": null, + "creation_date": "2019-09-05T18:41:31.830184Z", + "summary": null, + "preferred_username": "Cardony152", + "name": "Cardony152", + "last_fetch_date": "2019-09-05T18:41:31.830208Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Cardony152@tanukitunes.com", + "is_local": true + } + }, + { + "id": 12, + "name": "Worthwhile", + "user": { + "id": 55, + "username": "kujaw", + "name": "", + "date_joined": "2019-09-08T09:52:03.220704Z", + "avatar": null + }, + "modification_date": "2019-09-08T09:58:39.568664Z", + "creation_date": "2019-09-08T09:58:39.568285Z", + "privacy_level": "everyone", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/kujaw", + "url": null, + "creation_date": "2019-09-08T09:52:03.648551Z", + "summary": null, + "preferred_username": "kujaw", + "name": "kujaw", + "last_fetch_date": "2019-09-08T09:52:03.648579Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "kujaw@tanukitunes.com", + "is_local": true + } + }, + { + "id": 13, + "name": "Thing a Week", + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=135dc10b0fa0838b215529c90ccfdb79540e55acabd42cfbf52166bbece5b9f2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45ed7a1282ed4613007c84a47c561511567688b182fbb8768c9b4667d02b8f1e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f9c1d5d628ebe132747472fbe77f8e5c886af2781e419b87396047218d754cae" + } + } + }, + "modification_date": "2019-09-12T08:05:14.682593Z", + "creation_date": "2019-09-12T08:03:43.693813Z", + "privacy_level": "everyone", + "tracks_count": 53, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/06/05/c3c7c2f1-8926-4d80-a474-8b742ae29f77-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=16746ce092fa360c1ceb43f00403f82430d6e8ecbc8fee0ff58fec57e49a5c5c", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/06/05/taw2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fbc7910a6c25a09f358f1b20e5905b54cacc3a70a2b3cef85dfd4eed31df54b0", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/06/05/9aca242f-48fe-41cd-8b40-10da62e21c8f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=08097a2e9740f317f19ecae0b23419113d5da7c6d86c4a5626f335fe3d8781a6", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/06/05/taw4-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=710b15672a13edfbea16262fc20c65007a7cbe4f6ba272485d56911a825f07de" + ], + "duration": 9769, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + { + "id": 22, + "name": "Reihenhouse EP", + "user": { + "id": 123, + "username": "odosendaidokai", + "name": "", + "date_joined": "2019-10-23T07:29:28.532933Z", + "avatar": { + "uuid": "87fda25e-7dc9-4a8b-b2ea-4b1b7124ca92", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.215370Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0594ed94c7755d998a1f77dbeb21fcec93609b167dc97776566c1fd00407abbb", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=aface4af8484410db5f5192f62dbbe11d367bea3c48e02acd84b1697a748eed0", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a0aec9fe6aaf6ff46d5fdafa4ddcf4956fd5e8091c70379ca339833710af38c7" + } + } + }, + "modification_date": "2019-10-28T00:04:53.019336Z", + "creation_date": "2019-10-25T06:54:27.097112Z", + "privacy_level": "everyone", + "tracks_count": 5, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/10/23/abb58629-8d2e-4989-930c-c8c790a247b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2acaaf03fc9c28a65f2e7e7c5ef11b96be14fb0ecd26f9502b7d5cb1bb020905", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/10/27/7447f4d6-4634-4507-a06c-b12580104aba-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f3b6e46dc27e1f2a4809be43ee16bcf75a5870500f9b51d6c79197587c6ec923" + ], + "duration": 1491, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/odosendaidokai", + "url": null, + "creation_date": "2019-10-23T07:29:28.761005Z", + "summary": null, + "preferred_username": "odosendaidokai", + "name": "odosendaidokai", + "last_fetch_date": "2019-10-23T07:29:28.761019Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "odosendaidokai@tanukitunes.com", + "is_local": true + } + }, + { + "id": 23, + "name": "Playlist For Marian", + "user": { + "id": 143, + "username": "samy", + "name": "", + "date_joined": "2019-11-14T08:49:55.443489Z", + "avatar": null + }, + "modification_date": "2019-12-03T08:20:18.779114Z", + "creation_date": "2019-12-03T07:08:24.264687Z", + "privacy_level": "everyone", + "tracks_count": 4, + "album_covers": [], + "duration": 1214, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/samy", + "url": null, + "creation_date": "2019-11-14T08:49:55.854125Z", + "summary": null, + "preferred_username": "samy", + "name": "samy", + "last_fetch_date": "2019-11-14T08:49:55.854140Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "samy@tanukitunes.com", + "is_local": true + } + }, + { + "id": 27, + "name": "Exploration", + "user": { + "id": 191, + "username": "Molluskempire", + "name": "", + "date_joined": "2019-12-17T05:41:06.229712Z", + "avatar": { + "uuid": "8e564e29-d0bd-4711-9c22-f643bc33101d", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.215730Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/39/a2/a5/7f-0034-4088-97c2-5012e38a79c2.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=af68b5d4c50fa72764166be81ed53b059022b65f273519dca016cc97bc3db96e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/39/a2/a5/7f-0034-4088-97c2-5012e38a79c2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=738770bcfb5acb16c73e325f1915ba617cc3fc1ec538643f2bba1b3aceea02c0", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/39/a2/a5/7f-0034-4088-97c2-5012e38a79c2-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d6b183b59ca98fbeb435bc76966b8441de63e143f6cc0c48c902b16564410102" + } + } + }, + "modification_date": "2019-12-18T04:01:46.438104Z", + "creation_date": "2019-12-18T04:01:37.300683Z", + "privacy_level": "everyone", + "tracks_count": 1, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/56/de/74/b4b1035aa-e4c8-4678-b25d-87f827fbdff2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=052b76da8561701bd955edc7d82955d98b6d8fe73908e84d92fca6831855f391" + ], + "duration": 267, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Molluskempire", + "url": null, + "creation_date": "2019-12-17T05:41:06.731600Z", + "summary": null, + "preferred_username": "Molluskempire", + "name": "Molluskempire", + "last_fetch_date": "2019-12-17T05:41:06.731623Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Molluskempire@tanukitunes.com", + "is_local": true + } + }, + { + "id": 28, + "name": "Dark Ambient", + "user": { + "id": 191, + "username": "Molluskempire", + "name": "", + "date_joined": "2019-12-17T05:41:06.229712Z", + "avatar": { + "uuid": "8e564e29-d0bd-4711-9c22-f643bc33101d", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.215730Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/39/a2/a5/7f-0034-4088-97c2-5012e38a79c2.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=af68b5d4c50fa72764166be81ed53b059022b65f273519dca016cc97bc3db96e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/39/a2/a5/7f-0034-4088-97c2-5012e38a79c2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=738770bcfb5acb16c73e325f1915ba617cc3fc1ec538643f2bba1b3aceea02c0", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/39/a2/a5/7f-0034-4088-97c2-5012e38a79c2-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d6b183b59ca98fbeb435bc76966b8441de63e143f6cc0c48c902b16564410102" + } + } + }, + "modification_date": "2019-12-24T22:51:13.579742Z", + "creation_date": "2019-12-18T04:09:12.940332Z", + "privacy_level": "instance", + "tracks_count": 2, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/58/37/26/ba0737b30-5651-4084-aaaf-b21bb73fd137-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7d5040cc086353796f534f450dd2e7782053845a260d8ace3cdc624f1a8fba8e", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/19/ba488bee3-0240-41d9-8418-150e8eba6b57-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c9d1e99d1e320535be79373107615576b5705bc985abfc8b4607a4b8e9a94713" + ], + "duration": 516, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Molluskempire", + "url": null, + "creation_date": "2019-12-17T05:41:06.731600Z", + "summary": null, + "preferred_username": "Molluskempire", + "name": "Molluskempire", + "last_fetch_date": "2019-12-17T05:41:06.731623Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Molluskempire@tanukitunes.com", + "is_local": true + } + }, + { + "id": 32, + "name": "onda", + "user": { + "id": 202, + "username": "Masi", + "name": "", + "date_joined": "2019-12-21T17:33:13.753324Z", + "avatar": null + }, + "modification_date": "2019-12-21T20:17:46.358118Z", + "creation_date": "2019-12-21T20:16:18.448202Z", + "privacy_level": "instance", + "tracks_count": 7, + "album_covers": [], + "duration": 1735, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Masi", + "url": null, + "creation_date": "2019-12-21T17:33:14.134108Z", + "summary": null, + "preferred_username": "Masi", + "name": "Masi", + "last_fetch_date": "2019-12-21T17:33:14.134123Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Masi@tanukitunes.com", + "is_local": true + } + }, + { + "id": 34, + "name": "Tous des Monstres – Lambesc 2019", + "user": { + "id": 253, + "username": "Nootilus", + "name": "", + "date_joined": "2020-01-20T15:32:09.498654Z", + "avatar": { + "uuid": "5cfd304e-d017-4636-ba55-5c30816003a4", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.219257Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/35/e1/81/f1-5b4f-4683-b3df-6214bbb1dd1d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b94b24115b424b3d860871e57ce463f6c3daae7224cbb859ffd297d3e8c98064", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/35/e1/81/f1-5b4f-4683-b3df-6214bbb1dd1d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a38fb40ee41a2cd6665b3d532ae20eabe5d6837532d33d5297eda2d0c57af8d9", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/35/e1/81/f1-5b4f-4683-b3df-6214bbb1dd1d-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9dcd8b8e75f92a6d0138e179848181636bf5b8be24caff01346dfd42e9c92895" + } + } + }, + "modification_date": "2020-01-21T04:59:45.611537Z", + "creation_date": "2020-01-21T04:59:45.610937Z", + "privacy_level": "everyone", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Nootilus", + "url": null, + "creation_date": "2020-01-20T15:32:09.919793Z", + "summary": null, + "preferred_username": "Nootilus", + "name": "Nootilus", + "last_fetch_date": "2020-01-20T15:32:09.919808Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Nootilus@tanukitunes.com", + "is_local": true + } + }, + { + "id": 37, + "name": "Composiciones", + "user": { + "id": 268, + "username": "roangelesip", + "name": "", + "date_joined": "2020-01-30T04:48:51.679368Z", + "avatar": null + }, + "modification_date": "2020-01-30T04:53:16.881284Z", + "creation_date": "2020-01-30T04:52:40.292477Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [], + "duration": 140, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/roangelesip", + "url": null, + "creation_date": "2020-01-30T04:48:52.001634Z", + "summary": null, + "preferred_username": "roangelesip", + "name": "roangelesip", + "last_fetch_date": "2020-01-30T04:48:52.001650Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "roangelesip@tanukitunes.com", + "is_local": true + } + }, + { + "id": 41, + "name": "Feb 4, 2020", + "user": { + "id": 147, + "username": "arthur", + "name": "", + "date_joined": "2019-11-18T20:59:30.865628Z", + "avatar": null + }, + "modification_date": "2020-02-04T12:01:20.937192Z", + "creation_date": "2020-02-04T12:01:20.925081Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/be/f3/65/bfef0fa68-9f21-4cb3-8f63-0be88868291a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ce0a20b12fb4caea422c71b03e9575509fd219154b1092fe047bd6a71efed5f2" + ], + "duration": 264, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/arthur", + "url": null, + "creation_date": "2019-11-18T20:59:31.218322Z", + "summary": null, + "preferred_username": "arthur", + "name": "arthur", + "last_fetch_date": "2019-11-18T20:59:31.218342Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "arthur@tanukitunes.com", + "is_local": true + } + }, + { + "id": 43, + "name": "Feb 4, 2020", + "user": { + "id": 147, + "username": "arthur", + "name": "", + "date_joined": "2019-11-18T20:59:30.865628Z", + "avatar": null + }, + "modification_date": "2020-02-04T12:04:21.830749Z", + "creation_date": "2020-02-04T12:04:21.815042Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e4/56/9e/attachment_cover-dfe42988-7d0b-4e59-afe6-c02c0d5f7034-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e75df4372813ab41b0dbf1416474c8155ef54960057a1871da773093c97d7cee" + ], + "duration": 386, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/arthur", + "url": null, + "creation_date": "2019-11-18T20:59:31.218322Z", + "summary": null, + "preferred_username": "arthur", + "name": "arthur", + "last_fetch_date": "2019-11-18T20:59:31.218342Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "arthur@tanukitunes.com", + "is_local": true + } + }, + { + "id": 50, + "name": "hellofuncware", + "user": { + "id": 292, + "username": "liltechdude", + "name": "", + "date_joined": "2020-03-02T07:08:04.163742Z", + "avatar": null + }, + "modification_date": "2020-03-02T07:10:09.893909Z", + "creation_date": "2020-03-02T07:09:44.208999Z", + "privacy_level": "instance", + "tracks_count": 6, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/56/de/74/b4b1035aa-e4c8-4678-b25d-87f827fbdff2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=052b76da8561701bd955edc7d82955d98b6d8fe73908e84d92fca6831855f391", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/10/23/abb58629-8d2e-4989-930c-c8c790a247b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2acaaf03fc9c28a65f2e7e7c5ef11b96be14fb0ecd26f9502b7d5cb1bb020905", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2019/10/27/7447f4d6-4634-4507-a06c-b12580104aba-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f3b6e46dc27e1f2a4809be43ee16bcf75a5870500f9b51d6c79197587c6ec923" + ], + "duration": 1758, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/liltechdude", + "url": null, + "creation_date": "2020-03-02T07:08:04.435108Z", + "summary": null, + "preferred_username": "liltechdude", + "name": "liltechdude", + "last_fetch_date": "2020-03-02T07:08:04.435125Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "liltechdude@tanukitunes.com", + "is_local": true + } + }, + { + "id": 51, + "name": "hk", + "user": { + "id": 278, + "username": "alciregi", + "name": "", + "date_joined": "2020-02-03T14:35:45.993383Z", + "avatar": { + "uuid": "51b61b57-2c68-406d-bbe0-caf4077be90d", + "size": 814584, + "mimetype": "image/png", + "creation_date": "2020-02-03T14:47:20.928823Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/95/7e/29/f31.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e84a498cb397abfb6de85a7e7e15f601a4cf992558e667de023db40d8602ef7b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/95/7e/29/f31-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2f68ca92b1a0674026dae6584a8986c14dbe28c6174b2f2c2248f5484ad88deb", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/95/7e/29/f31-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=cdfb06ffeb8741856fe7685f0ab42fd919b49221e3b7bf98cdce2f4fed1a2c26" + } + } + }, + "modification_date": "2020-08-21T13:41:13.878668Z", + "creation_date": "2020-03-06T15:54:01.547539Z", + "privacy_level": "everyone", + "tracks_count": 2, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/24/b8/76/6b34826c-8d8c-421a-a829-9f8f8970cd5f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e30b5e4410f666fbd1cbe03c6494d467b4cb7dc68328d239dcc1733b7ca70c57", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/24/b8/f9/ba1c6e27a-2b5b-4fc7-bbba-2771e40a46de-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=42dbcb8ea001f6f77291741ca0b792438d103c1cc12aafd62511dbea09376557" + ], + "duration": 451, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/alciregi", + "url": null, + "creation_date": "2020-02-03T14:35:46.260097Z", + "summary": null, + "preferred_username": "alciregi", + "name": "alciregi", + "last_fetch_date": "2020-02-03T14:35:46.260114Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "alciregi@tanukitunes.com", + "is_local": true + } + }, + { + "id": 53, + "name": "Hypnossos", + "user": { + "id": 123, + "username": "odosendaidokai", + "name": "", + "date_joined": "2019-10-23T07:29:28.532933Z", + "avatar": { + "uuid": "87fda25e-7dc9-4a8b-b2ea-4b1b7124ca92", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.215370Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0594ed94c7755d998a1f77dbeb21fcec93609b167dc97776566c1fd00407abbb", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=aface4af8484410db5f5192f62dbbe11d367bea3c48e02acd84b1697a748eed0", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a0aec9fe6aaf6ff46d5fdafa4ddcf4956fd5e8091c70379ca339833710af38c7" + } + } + }, + "modification_date": "2020-04-02T08:26:48.603924Z", + "creation_date": "2020-04-02T08:26:05.430110Z", + "privacy_level": "everyone", + "tracks_count": 2, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/f2/5f/3d/attachment_cover-6541696d-9c78-49b1-ae77-d2b9f96e6fe5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=663ef0053022c2bbff4b47163fa217e691aedd27cf333672eaad0d80e27b7601", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/94/c7/25/attachment_cover-2ec993af-ae92-4cfe-bb1f-88576982518c-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=94753220de3243e42117a28d6293f3d105a6f31639bc767eeb476a2a3bef8d0e" + ], + "duration": 643, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/odosendaidokai", + "url": null, + "creation_date": "2019-10-23T07:29:28.761005Z", + "summary": null, + "preferred_username": "odosendaidokai", + "name": "odosendaidokai", + "last_fetch_date": "2019-10-23T07:29:28.761019Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "odosendaidokai@tanukitunes.com", + "is_local": true + } + }, + { + "id": 54, + "name": "202004", + "user": { + "id": 329, + "username": "reef_club", + "name": "", + "date_joined": "2020-04-16T16:48:23.264516Z", + "avatar": null + }, + "modification_date": "2020-04-21T14:39:22.759053Z", + "creation_date": "2020-04-16T17:02:01.541874Z", + "privacy_level": "everyone", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/reef_club", + "url": null, + "creation_date": "2020-04-16T16:48:23.526464Z", + "summary": null, + "preferred_username": "reef_club", + "name": "reef_club", + "last_fetch_date": "2020-04-16T16:48:23.526486Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "reef_club@tanukitunes.com", + "is_local": true + } + }, + { + "id": 55, + "name": "playlist1", + "user": { + "id": 331, + "username": "Serie_S", + "name": "", + "date_joined": "2020-04-18T10:15:48.704656Z", + "avatar": { + "uuid": "b7b973f6-4990-4dd8-b210-190924bf4ba6", + "size": 256297, + "mimetype": "image/jpeg", + "creation_date": "2020-04-18T10:28:55.348898Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/6c/6f/4c/covid19-4689908.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5624eefb14830e2997dbdfe14a45037be5bf691d9676e6fd8082b454d38989cc", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/6c/6f/4c/covid19-4689908-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=53a6438d77bbbb2d5db91f6e435cf965573e917f823d049065d4685091970b5a", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/6c/6f/4c/covid19-4689908-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4edf9a08a0adf9cb4207e4aa3d5546c391446ba7c5649434a6de6d624b6db844" + } + } + }, + "modification_date": "2020-04-18T11:31:27.979740Z", + "creation_date": "2020-04-18T10:34:01.086280Z", + "privacy_level": "everyone", + "tracks_count": 31, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d1/a6/1e/attachment_cover-b464b222-4b48-4077-b2af-e862cfb89a2b-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d39e483198fca8ebf53720b03815e0bb394ff2a3866e80b36cbbd49766d8d074", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c8/ba/41/attachment_cover-c18e00d3-510d-4fab-8bd7-6ebab543261c-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e126cdde5f77022b737d33fcece3ca53705d5b74096c7872c889d1e80660034", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/c3/aa/b6/attachment_cover-77abed15-5b39-43a0-bf8d-0e4e5317045d-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=56e18ea0d956397cb50b211dd69c8e25432b15fce2438004913df6409d3d8a57", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/46/9e/a5/attachment_cover-b735025e-afd5-4fb5-bf0f-791ea0cad44c-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=76c8dc651d8d9cab03a12be945cd39e8e6eafc36c3417b5bb115ab44bed1cb05", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/97/ed/15/attachment_cover-7692a79c-61d6-43e8-b77d-2edec264c9db-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=341d1beddbbac3529118049264a3378c77b43db1b043a0e8e72d200b9236619f" + ], + "duration": 15215, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Serie_S", + "url": null, + "creation_date": "2020-04-18T10:15:48.939659Z", + "summary": null, + "preferred_username": "Serie_S", + "name": "Serie_S", + "last_fetch_date": "2020-04-18T10:15:48.939675Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Serie_S@tanukitunes.com", + "is_local": true + } + }, + { + "id": 57, + "name": "kit 80 s", + "user": { + "id": 329, + "username": "reef_club", + "name": "", + "date_joined": "2020-04-16T16:48:23.264516Z", + "avatar": null + }, + "modification_date": "2020-04-21T15:42:00.528773Z", + "creation_date": "2020-04-21T15:36:52.599363Z", + "privacy_level": "everyone", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/reef_club", + "url": null, + "creation_date": "2020-04-16T16:48:23.526464Z", + "summary": null, + "preferred_username": "reef_club", + "name": "reef_club", + "last_fetch_date": "2020-04-16T16:48:23.526486Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "reef_club@tanukitunes.com", + "is_local": true + } + }, + { + "id": 69, + "name": "Đài tiếng nói nước mắm", + "user": { + "id": 349, + "username": "VNA_Audio", + "name": "", + "date_joined": "2020-05-05T17:41:52.093029Z", + "avatar": { + "uuid": "2f13e593-41d1-400e-9bd7-64e227faeb22", + "size": 24075, + "mimetype": "image/jpeg", + "creation_date": "2020-05-06T15:56:11.759097Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/50/42/a3/ahue11z.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a23b3b41d231bc35f74e8bf48be6d094c8742ffd0751fcdac3a4074953b753f6", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/50/42/a3/ahue11z-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9de3cadf3af3607df6a3a0ed1234f90d5d50ed189c138a09e0ed0de201e9dd20", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/50/42/a3/ahue11z-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=50f1d474b69c5220a5a5c3bb8d597382e92a9fe991c2aca667e551145822cd15" + } + } + }, + "modification_date": "2020-05-09T15:31:05.730839Z", + "creation_date": "2020-05-09T13:40:29.914960Z", + "privacy_level": "everyone", + "tracks_count": 3, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/2b/c7/c3/radio-myanmar-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b9d2a27d2e606a37ec6addd465f834f8540ac70195aa92193c7a6d5e5064e1cc", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/0f/5a/9a/saigon-super-sound-v2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=26d17bb5aef0706c8a538f046acaacc655e451ce9df2219a308166f47aa38f31" + ], + "duration": 461, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/VNA_Audio", + "url": null, + "creation_date": "2020-05-05T17:41:52.332589Z", + "summary": null, + "preferred_username": "VNA_Audio", + "name": "VNA_Audio", + "last_fetch_date": "2020-05-05T17:41:52.332617Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "VNA_Audio@tanukitunes.com", + "is_local": true + } + }, + { + "id": 78, + "name": "Polkas", + "user": { + "id": 285, + "username": "vim", + "name": "", + "date_joined": "2020-02-08T19:27:41Z", + "avatar": null + }, + "modification_date": "2020-11-06T12:54:31.136101Z", + "creation_date": "2020-10-26T21:11:52.744737Z", + "privacy_level": "instance", + "tracks_count": 12, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/f4/b6/b5/attachment_cover-4abcbdf3-fa6e-4d5a-8370-551d4ea7aa36-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c3370ea4eb8182abccaf116658b26c435bb02ec27d68731700ea92ddc2ab6ad5", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/20/ec/70/attachment_cover-14a48777-b022-43c3-be12-9f674a00073a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=287d958e018b9263af98b240019305cd61d105e948a097236f18833d24725797", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e3/66/c2/attachment_cover-00ca2f6b-586c-4450-89f7-a768ab75cb67-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1e27ff087e0ca82c72e31052dbd8750be815a305a9fbc1e55d7f7c961ad37199", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/4b/5b/33/attachment_cover-f0edbe83-1bfb-4b7d-80ed-20089a43bf73-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=90717f9682331622b61d7d5c530b02bccfd8939cbb49c841603a0331f2cf02c4", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/b4/2b/38/attachment_cover-1aeecfca-6eec-4fbe-adda-c71024829807-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d94bd3a54ca9678e1730fbdbc8fb8239d474ebfa8978fe30dc53853a564e613a" + ], + "duration": 3072, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/vim", + "url": null, + "creation_date": "2020-02-08T19:27:41.832556Z", + "summary": null, + "preferred_username": "vim", + "name": "vim", + "last_fetch_date": "2020-02-08T19:27:41.832576Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "vim@tanukitunes.com", + "is_local": true + } + }, + { + "id": 79, + "name": "Wydow", + "user": { + "id": 351, + "username": "wydow", + "name": "", + "date_joined": "2020-05-14T14:22:35Z", + "avatar": { + "uuid": "34a05e38-4678-400f-8cb2-421b0f646575", + "size": 285276, + "mimetype": "image/jpeg", + "creation_date": "2020-05-14T20:50:31.758394Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a4/97/85/photo_2020-02-04_09-07-04.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6c0c1b9f879a862c249e1df1e59785f236a0120a9bde1542a170594f4f36e969", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a4/97/85/photo_2020-02-04_09-07-04-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f6ff54d02666f222ded379ad13bb8d6d49b1c6c0bfe76d5c1f8d961898d3cedc", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a4/97/85/photo_2020-02-04_09-07-04-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bf8e0894ecc3cf9fc17f75d609dc8d3e0b6fa8a01110f6e57a6061c1d1b5be41" + } + } + }, + "modification_date": "2021-10-02T16:38:17.771179Z", + "creation_date": "2020-11-11T10:23:35.964969Z", + "privacy_level": "instance", + "tracks_count": 4, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/65/24/76/cover-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ed1b25031f793255402027883d2dd466501db9bab8549cd6de3cb48893a79090" + ], + "duration": 4341, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/wydow", + "url": null, + "creation_date": "2020-05-14T14:22:36.228781Z", + "summary": null, + "preferred_username": "wydow", + "name": "wydow", + "last_fetch_date": "2020-05-14T14:22:36.228796Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "wydow@tanukitunes.com", + "is_local": true + } + }, + { + "id": 85, + "name": "My Lib", + "user": { + "id": 476, + "username": "Matviyenko", + "name": "", + "date_joined": "2021-01-31T19:31:50.764199Z", + "avatar": null + }, + "modification_date": "2021-01-31T20:00:09.304642Z", + "creation_date": "2021-01-31T20:00:09.303810Z", + "privacy_level": "instance", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Matviyenko", + "url": null, + "creation_date": "2021-01-31T19:31:51.168433Z", + "summary": null, + "preferred_username": "Matviyenko", + "name": "Matviyenko", + "last_fetch_date": "2021-01-31T19:31:51.168455Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Matviyenko@tanukitunes.com", + "is_local": true + } + }, + { + "id": 87, + "name": "with echoes filling up the orbit, but damaged", + "user": { + "id": 491, + "username": "withechoes", + "name": "", + "date_joined": "2021-03-04T11:06:03.925645Z", + "avatar": null + }, + "modification_date": "2021-03-04T11:12:24.093937Z", + "creation_date": "2021-03-04T11:11:32.416686Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [], + "duration": 726, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/withechoes", + "url": null, + "creation_date": "2021-03-04T11:06:04.152529Z", + "summary": null, + "preferred_username": "withechoes", + "name": "withechoes", + "last_fetch_date": "2021-03-04T11:06:04.152555Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "withechoes@tanukitunes.com", + "is_local": true + } + }, + { + "id": 89, + "name": "Produced by finetto.", + "user": { + "id": 495, + "username": "amorogia", + "name": "", + "date_joined": "2021-03-08T13:04:00.770910Z", + "avatar": null + }, + "modification_date": "2021-03-08T14:46:32.641543Z", + "creation_date": "2021-03-08T14:46:21.983693Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [], + "duration": 197, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/amorogia", + "url": null, + "creation_date": "2021-03-08T13:04:01.091287Z", + "summary": null, + "preferred_username": "amorogia", + "name": "amorogia", + "last_fetch_date": "2021-03-08T13:04:01.091311Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "amorogia@tanukitunes.com", + "is_local": true + } + }, + { + "id": 93, + "name": "Malayalam", + "user": { + "id": 509, + "username": "animo", + "name": "", + "date_joined": "2021-05-04T09:08:50.421080Z", + "avatar": null + }, + "modification_date": "2021-06-26T06:59:35.300469Z", + "creation_date": "2021-06-18T23:07:11.687734Z", + "privacy_level": "everyone", + "tracks_count": 92, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/92/e7/96/attachment_cover-73b75d75-263a-4670-8c5d-4c96055c24e7-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=56c51d0fbf75e7629806e9ee49e4e554cb53449def176f868a8eeca8b939e812", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d9/9a/77/attachment_cover-be685acb-9f26-4631-a863-cae892285699-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=728e8ccbd91b846799400267b272dda16cadd91ee1b348ec6e0e87af64371d0e", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a8/9e/72/attachment_cover-7a41eb48-1f48-4390-be35-ecf934a38d59-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d31c122f44c32583c4b4618207ad64b913e7ac4a5c8f39ba9a8c38fce4cabf9d", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/72/c8/69/attachment_cover-565c6e72-5d9d-4519-b7e7-0ba180ab9fab-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d6f5d38b30517d82f22118dfe5a2c8118d9f351dd604aa2053fdde0b29e75e61", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/dc/ec/2f/attachment_cover-a5ccfc67-b062-4601-a50b-76df05934d21-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8516f524f067c343dfef163392bfbab16e9d8e6773d6b8bb301133f4793933d1" + ], + "duration": 22231, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/animo", + "url": null, + "creation_date": "2021-05-04T09:08:50.859888Z", + "summary": null, + "preferred_username": "animo", + "name": "animo", + "last_fetch_date": "2021-05-04T09:08:50.859907Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "animo@tanukitunes.com", + "is_local": true + } + }, + { + "id": 94, + "name": "HAPPY", + "user": { + "id": 509, + "username": "animo", + "name": "", + "date_joined": "2021-05-04T09:08:50.421080Z", + "avatar": null + }, + "modification_date": "2021-06-26T06:54:03.896634Z", + "creation_date": "2021-06-26T06:44:55.049266Z", + "privacy_level": "everyone", + "tracks_count": 22, + "album_covers": [], + "duration": 5325, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/animo", + "url": null, + "creation_date": "2021-05-04T09:08:50.859888Z", + "summary": null, + "preferred_username": "animo", + "name": "animo", + "last_fetch_date": "2021-05-04T09:08:50.859907Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "animo@tanukitunes.com", + "is_local": true + } + }, + { + "id": 95, + "name": "PERFECT", + "user": { + "id": 509, + "username": "animo", + "name": "", + "date_joined": "2021-05-04T09:08:50.421080Z", + "avatar": null + }, + "modification_date": "2021-07-01T05:51:25.131081Z", + "creation_date": "2021-06-26T13:09:51.591799Z", + "privacy_level": "everyone", + "tracks_count": 53, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ef/77/76/attachment_cover-12085f32-24c3-4048-be9e-884b88a0cb37-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=00c089cb003bc8c735814792ea3a25b4014ad4822fac51c2dffe9e632754a023", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cd/24/e6/attachment_cover-f0ca8c21-de0c-4c91-b780-c6dc2640fe95-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ea0397eef68cfed7c1ea66bfd40aee56f14812db1843bc10d7db2657a9a85e55" + ], + "duration": 12329, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/animo", + "url": null, + "creation_date": "2021-05-04T09:08:50.859888Z", + "summary": null, + "preferred_username": "animo", + "name": "animo", + "last_fetch_date": "2021-05-04T09:08:50.859907Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "animo@tanukitunes.com", + "is_local": true + } + }, + { + "id": 96, + "name": "Korean", + "user": { + "id": 509, + "username": "animo", + "name": "", + "date_joined": "2021-05-04T09:08:50.421080Z", + "avatar": null + }, + "modification_date": "2021-07-01T06:11:26.390606Z", + "creation_date": "2021-07-01T06:11:20.637536Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [], + "duration": 247, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/animo", + "url": null, + "creation_date": "2021-05-04T09:08:50.859888Z", + "summary": null, + "preferred_username": "animo", + "name": "animo", + "last_fetch_date": "2021-05-04T09:08:50.859907Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "animo@tanukitunes.com", + "is_local": true + } + }, + { + "id": 97, + "name": "WOOO", + "user": { + "id": 532, + "username": "playtrack44", + "name": "", + "date_joined": "2021-08-19T01:10:33.998273Z", + "avatar": { + "uuid": "b9c83c80-3745-4fad-b8dc-ad318aa887ea", + "size": 11049, + "mimetype": "image/jpeg", + "creation_date": "2021-08-19T10:23:04.261369Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/24/3d/5a/image0.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=21c7510179c31e896f2ef4e59c4737ba6d729ab47dbd75d09eb908425f78f913", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/24/3d/5a/image0-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1efabd0631b72143690a29fde817d6c188473775c2e6ab6ed52aedc017943952", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/24/3d/5a/image0-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c39b284caa58095cc004e7407ba9fd2ba0efde0243a6852da19be40d450c7c20" + } + } + }, + "modification_date": "2021-08-19T10:26:01.413331Z", + "creation_date": "2021-08-19T10:26:01.412678Z", + "privacy_level": "instance", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/playtrack44", + "url": null, + "creation_date": "2021-08-19T01:10:34.340551Z", + "summary": null, + "preferred_username": "playtrack44", + "name": "playtrack44", + "last_fetch_date": "2021-08-19T01:10:34.340568Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "playtrack44@tanukitunes.com", + "is_local": true + } + }, + { + "id": 100, + "name": "Cool mix of everythimh", + "user": { + "id": 390, + "username": "Hadil", + "name": "", + "date_joined": "2020-08-20T23:14:46.934932Z", + "avatar": null + }, + "modification_date": "2021-10-07T21:21:14.330828Z", + "creation_date": "2021-10-07T21:19:43.031251Z", + "privacy_level": "everyone", + "tracks_count": 3, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/56/e8/37/attachment_cover-edb1bda3-4a4d-4f62-a908-c753abc20434-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f47a30519c4953d052a192f15ebe82294136057e23ad6ea48a2b76670da0fb5c" + ], + "duration": 529, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Hadil", + "url": null, + "creation_date": "2020-08-20T23:14:47.300084Z", + "summary": null, + "preferred_username": "Hadil", + "name": "Hadil", + "last_fetch_date": "2020-08-20T23:14:47.300100Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Hadil@tanukitunes.com", + "is_local": true + } + }, + { + "id": 103, + "name": "podcasts", + "user": { + "id": 400, + "username": "mjourdan", + "name": "", + "date_joined": "2020-09-15T17:29:18.627954Z", + "avatar": null + }, + "modification_date": "2021-11-20T12:25:37.693403Z", + "creation_date": "2021-11-20T12:25:34.511489Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [], + "duration": 1208, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/mjourdan", + "url": null, + "creation_date": "2020-09-15T17:29:18.843051Z", + "summary": null, + "preferred_username": "mjourdan", + "name": "mjourdan", + "last_fetch_date": "2020-09-15T17:29:18.843067Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "mjourdan@tanukitunes.com", + "is_local": true + } + }, + { + "id": 104, + "name": "The Inner Thoughts", + "user": { + "id": 170, + "username": "AgustinHaro", + "name": "", + "date_joined": "2019-12-06T16:46:36.333284Z", + "avatar": { + "uuid": "0658bdb8-bfab-48c0-9318-385282292722", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.219699Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/d3/2b/56/40-71dc-4640-827c-b9232d67e3a0.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=328f4be87aecedefc9bc422161b51411fc72c03ed2acb9109184deef6896e433", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/d3/2b/56/40-71dc-4640-827c-b9232d67e3a0-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2b8a669f429af83080b4ac3c47edbfaacd035c562a2ead21b52c207141588bb6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/d3/2b/56/40-71dc-4640-827c-b9232d67e3a0-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6d6b159efae822fd64ec08b4bff4f8eb9a4ff9a158cf6a67b71e435b0d941459" + } + } + }, + "modification_date": "2021-12-05T02:41:49.707916Z", + "creation_date": "2021-12-05T02:40:15.069514Z", + "privacy_level": "everyone", + "tracks_count": 8, + "album_covers": [], + "duration": 1654, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/AgustinHaro", + "url": null, + "creation_date": "2019-12-06T16:46:36.740978Z", + "summary": null, + "preferred_username": "AgustinHaro", + "name": "AgustinHaro", + "last_fetch_date": "2019-12-06T16:46:36.740994Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "AgustinHaro@tanukitunes.com", + "is_local": true + } + }, + { + "id": 107, + "name": "Hybrid", + "user": { + "id": 538, + "username": "Fede", + "name": "", + "date_joined": "2021-12-05T04:21:05.769851Z", + "avatar": { + "uuid": "ec2fc096-7488-412e-9db3-5a23feed9f0b", + "size": 144748, + "mimetype": "image/jpeg", + "creation_date": "2021-12-05T04:30:07.007709Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/24/69/41/filo.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c9f3eb4fdd12cbd0657f72abde708d73333029c596906859154f26d43515e66c", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/24/69/41/filo-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9ccd425ad5661acfdb63a18ef89c0d669619f1b492c5a29cceaa1d52bc82f5e6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/24/69/41/filo-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=069e9fd143e9746dcf13f9f4a9829443621229d3cc66df4f6ee5440710ce82a6" + } + } + }, + "modification_date": "2021-12-05T14:26:05.047526Z", + "creation_date": "2021-12-05T14:23:56.195469Z", + "privacy_level": "everyone", + "tracks_count": 8, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/01/f1/27/attachment_cover-009b5b4b-ee81-4902-90a8-8d85a06a92ec-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8fad6aa43e99dd225a9bea87bb4fc62e82959939623a69e449e5bd7397d27ec2" + ], + "duration": 2521, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/Fede", + "url": null, + "creation_date": "2021-12-05T04:21:06.024031Z", + "summary": null, + "preferred_username": "Fede", + "name": "Fede", + "last_fetch_date": "2021-12-05T04:21:06.024046Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Fede@tanukitunes.com", + "is_local": true + } + }, + { + "id": 111, + "name": "SE Asia mish-mash", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45042e523ec55d3c2e0ccdb151d9253ec5b8c94a3cf9db614f64ae0581dd4931", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=27536e81028c89e76f64286565e521b3e012bdd9f2119b75ce333614e9211a00", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b8371acf1fb76ed334019f57f1a029164e652ec68a399e46146e8f4bc3695d98" + } + } + }, + "modification_date": "2022-03-11T07:32:31.657417Z", + "creation_date": "2022-03-11T04:05:30.820876Z", + "privacy_level": "instance", + "tracks_count": 52, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/0f/5a/9a/saigon-super-sound-v2-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=26d17bb5aef0706c8a538f046acaacc655e451ce9df2219a308166f47aa38f31", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/2b/c7/c3/radio-myanmar-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b9d2a27d2e606a37ec6addd465f834f8540ac70195aa92193c7a6d5e5064e1cc", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/90/b5/7c/attachment_cover-fef3e1c8-9fc5-4425-8a1f-e1cd8e70917a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b7a5b4a70a3a1047f17af0643c14f2d9cf250cbb51db4f59fc2b1561af1f8d85", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/b7/82/78/electric-cambodia-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a819916f484a16dc6f291cdf232eee97a2aa023b446f8eb5dd6e10511223f3f7", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/42/f3/8a/cambodia-rock-intensified-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5e98ee48adf1b6f1080d899d4a445957b9097657c568290af7ef092a170a71cf" + ], + "duration": 12219, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + } + }, + { + "id": 112, + "name": "Lofi hiphop", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45042e523ec55d3c2e0ccdb151d9253ec5b8c94a3cf9db614f64ae0581dd4931", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=27536e81028c89e76f64286565e521b3e012bdd9f2119b75ce333614e9211a00", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b8371acf1fb76ed334019f57f1a029164e652ec68a399e46146e8f4bc3695d98" + } + } + }, + "modification_date": "2022-03-27T10:10:37.467802Z", + "creation_date": "2022-03-13T06:56:04.632175Z", + "privacy_level": "everyone", + "tracks_count": 83, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/08/8b/68/attachment_cover-4a59cca6-55eb-4136-b6de-eca0ad1558b9-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=571018c4b3f3a19fd10cb2a9c89a1464908372a81d32b9efd5c5d21c8138e328", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/b9/db/attachment_cover-419a4ecf-7865-44f7-b69d-e6b5a5e55840-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=aae20468b3f6ebe5293f75e4e1330648d167ca7974328d2c488dcd6280270382", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7a/10/db/attachment_cover-12d80806-6048-471c-be65-d29285087cc9-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a038419f62dbb0cd6fa793664d10f2f7900004ce96492fdfa7a54e696361b21b", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a1/c3/dd/attachment_cover-4463bc63-5948-4661-ab50-0808cecf442a-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ccd1f81a3639332508f73682e2c2159cf1928c7528287dc91ee59a4557438dc1", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/e7/29/bb/attachment_cover-d8b3d65a-beb3-4360-ae82-b69cd1e04196-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192127Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=cb187b30bcca7681fa98e5fa0a287324da960473e111a3c1c1d86126786c9a91" + ], + "duration": 14751, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/dragfyre", + "url": null, + "creation_date": "2022-03-04T12:45:48.648596Z", + "summary": null, + "preferred_username": "dragfyre", + "name": "dragfyre", + "last_fetch_date": "2022-03-04T12:45:48.648613Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "dragfyre@tanukitunes.com", + "is_local": true + } + }, + { + "id": 113, + "name": "GReeeN", + "user": { + "id": 559, + "username": "313", + "name": "", + "date_joined": "2022-03-22T20:37:39.292266Z", + "avatar": null + }, + "modification_date": "2022-03-23T19:53:33.379357Z", + "creation_date": "2022-03-23T19:53:19.017378Z", + "privacy_level": "instance", + "tracks_count": 1, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/313", + "url": null, + "creation_date": "2022-03-22T20:37:39.558672Z", + "summary": null, + "preferred_username": "313", + "name": "313", + "last_fetch_date": "2022-03-22T20:37:39.558692Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "313@tanukitunes.com", + "is_local": true + } + }, + { + "id": 114, + "name": "Tschiller", + "user": { + "id": 559, + "username": "313", + "name": "", + "date_joined": "2022-03-22T20:37:39.292266Z", + "avatar": null + }, + "modification_date": "2022-03-23T20:09:08.632053Z", + "creation_date": "2022-03-23T20:08:30.527058Z", + "privacy_level": "instance", + "tracks_count": 11, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/33/54/2e/attachment_cover-3517356f-6657-4a60-a82f-5afcac170b2d-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a08e816e731e8f491e3bef000b8d36bad9ce99c8017ac49645abb22a14057a4e" + ], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/313", + "url": null, + "creation_date": "2022-03-22T20:37:39.558672Z", + "summary": null, + "preferred_username": "313", + "name": "313", + "last_fetch_date": "2022-03-22T20:37:39.558692Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "313@tanukitunes.com", + "is_local": true + } + }, + { + "id": 115, + "name": "bebra", + "user": { + "id": 564, + "username": "sleroq", + "name": "", + "date_joined": "2022-04-03T20:01:58.042161Z", + "avatar": { + "uuid": "ad56e8b2-570f-4baa-9847-ef481b602323", + "size": 296210, + "mimetype": "image/jpeg", + "creation_date": "2022-04-03T20:55:33.553910Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/d2/0e/f1/cool_oser_cut-3.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=327e6f31c03e7f19722866ac58eb0ec32987087a5e06a07c160c6e9e1a21f8dc", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d2/0e/f1/cool_oser_cut-3-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e3c157222bc135ac5f01db48946596838c385328edc93ba6e6f9bc18d6e3d4c6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/d2/0e/f1/cool_oser_cut-3-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0144a0b04186fa8627fab3eae142c262dc5ddeb4795567d50a0acde38458e567" + } + } + }, + "modification_date": "2022-04-03T20:18:49.755215Z", + "creation_date": "2022-04-03T20:18:49.754867Z", + "privacy_level": "instance", + "tracks_count": 0, + "album_covers": [], + "duration": null, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/sleroq", + "url": null, + "creation_date": "2022-04-03T20:01:58.390922Z", + "summary": null, + "preferred_username": "sleroq", + "name": "sleroq", + "last_fetch_date": "2022-04-03T20:01:58.390935Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "sleroq@tanukitunes.com", + "is_local": true + } + }, + { + "id": 116, + "name": "Radionica Top 2021", + "user": { + "id": 589, + "username": "julianlibre", + "name": "", + "date_joined": "2022-05-06T03:09:08.973601Z", + "avatar": null + }, + "modification_date": "2022-05-16T00:50:15.063155Z", + "creation_date": "2022-05-06T13:48:30.900769Z", + "privacy_level": "everyone", + "tracks_count": 95, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/21/04/90/attachment_cover-f21391a7-8cbd-4206-9626-121b8a5fefb7-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=75d30bb406725ef12c22edf54f061a91677db77f8cfbb67bf2c556eef50fb127", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/46/22/e4/attachment_cover-3e75dea8-8338-4cdc-b8fd-76db3eb61521-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=3e036fd2fb6ed1875f9b563268b6915181e055a231dbb659231876ecd58f85dd", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/9c/1d/attachment_cover-e04f499c-3917-41aa-9b1d-70e255d79911-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a50c6f189b6c0fa3a2cd3d3f9844a6e565cfcc50abb0003c68e56733b012a70e", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/8f/46/attachment_cover-704f10cc-02a7-4050-b3ac-78e75061c280-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c101328ed8c689b4a4b2ecf73c967c9d592bb65167e7206c3b06b7cb79f47b1f", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/fd/12/53/attachment_cover-2a1a246e-3769-4d4f-8720-412266425d94-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T192128Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=17939b3b74ce38e9c17eb3512624a85ff39e90a6da875534be754b8a43880da8" + ], + "duration": 21786, + "is_playable": false, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/julianlibre", + "url": null, + "creation_date": "2022-05-06T03:09:09.274159Z", + "summary": null, + "preferred_username": "julianlibre", + "name": "julianlibre", + "last_fetch_date": "2022-05-06T03:09:09.274174Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "julianlibre@tanukitunes.com", + "is_local": true + } + } + ] +} \ No newline at end of file diff --git a/tests/data/playlists/playlist.json b/tests/data/playlists/playlist.json new file mode 100644 index 0000000000000000000000000000000000000000..52e4508d6612d8b6fbadac464fb67d21413f1f8f --- /dev/null +++ b/tests/data/playlists/playlist.json @@ -0,0 +1,47 @@ +{ + "id": 1, + "name": "The Mouth Experience", + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T134407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6b5f8bed223327e5c279129400ff38b0248c1d425bbb2a70f0d4ea4dd6921dd9", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T134407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=297eb52700acbe9d3eabbeadf249299d66fdfb02f4c325663cb9110a585a3e5b", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T134407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b1686af6308f4eb681f98f680b3922f68458fd65aa0219e035f075a704b62c39" + } + } + }, + "modification_date": "2020-07-29T12:51:29.851637Z", + "creation_date": "2018-12-13T09:49:45.464112Z", + "privacy_level": "me", + "tracks_count": 56, + "album_covers": [ + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b4cf59394-234a-47db-8b2e-c82a3ff0dcaa-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T134407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2755b473522d5445176f6bd8858b5cf1d926079f160e89d40ca5103a4ade2d6a", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/be74e64d2-4746-47d0-8755-b687a2679d4b-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T134407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f85eb3f3fc7d3098279b8cd4d919075d0cac90fdb407a8f0fbeb4b9a4f8ea46a", + "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/albums/covers/2018/12/13/b593fff6f-824d-4621-8245-3e8b3b007744-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T134407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ad5dd9509238ead385763d79d7b2b92da5317129f4c79d4f87f2f6031c5bc314" + ], + "duration": 10101, + "is_playable": true, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } +} \ No newline at end of file diff --git a/tests/data/radios/paginated_radio_list.json b/tests/data/radios/paginated_radio_list.json new file mode 100644 index 0000000000000000000000000000000000000000..facb8642f939a418e04e4d5c07fa8055dd4d1301 --- /dev/null +++ b/tests/data/radios/paginated_radio_list.json @@ -0,0 +1,492 @@ +{ + "count": 15, + "next": null, + "previous": null, + "results": [ + { + "id": 8, + "is_public": true, + "name": "test", + "creation_date": "2019-08-15T01:26:21.189530Z", + "user": { + "id": 35, + "username": "google00", + "name": "", + "date_joined": "2019-08-15T01:25:43.526900Z", + "avatar": null + }, + "config": [], + "description": "test" + }, + { + "id": 25, + "is_public": true, + "name": "8bit / Chiptunes", + "creation_date": "2022-03-16T01:11:04.967505Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "8bit", + "8bits", + "Chiptune", + "ChiptuneRock", + "ChiptunePunk" + ] + } + ], + "description": "Blips and bops." + }, + { + "id": 9, + "is_public": false, + "name": "Alternative", + "creation_date": "2019-12-16T20:29:58.822695Z", + "user": { + "id": 1, + "username": "doctorworm", + "name": "", + "date_joined": "2018-12-12T21:03:28Z", + "avatar": { + "uuid": "1570fd01-5e0a-488b-8f06-2227b7710770", + "size": 6112, + "mimetype": "image/png", + "creation_date": "2022-01-14T18:26:02.061783Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/5e/58/8d/avatar-headshot-high-quality.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0bb3f8c8dd563622941b58752ea5ce7c8f692617969f069dfc4992a380b4dfd2", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2ea031177851628111bfef12d9ed77401a915e50029585540e46c8f8a030d9d7", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/5e/58/8d/avatar-headshot-high-quality-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d8b5263d73b318490c09d8c4d0e2950e3ee6c1332e262c0e2769a6933af584cf" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "alternative", + "AlternativeRock", + "AlternativeMetal", + "AlternRock" + ] + } + ], + "description": "Alternative rock, pop, and other outsider stuff" + }, + { + "id": 21, + "is_public": true, + "name": "Instrumental & Lo-fi Hip Hop", + "creation_date": "2022-03-11T08:25:35.407925Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "not": false, + "type": "tag", + "names": [ + "LoFiHipHop", + "InstrumentalHipHop", + "HipHopBeats", + "Beats", + "Chillhop", + "ChillHipHop" + ] + } + ], + "description": "Just some beats." + }, + { + "id": 23, + "is_public": true, + "name": "Boom Bap & Hip Hop", + "creation_date": "2022-03-11T08:33:37.837284Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "BoomBap", + "HipHop", + "HipHopBeats", + "InstrumentalHipHop" + ] + } + ], + "description": "Boom Bap and Hip Hop with some instrumentals and beats thrown in." + }, + { + "id": 24, + "is_public": true, + "name": "Just Lo-fi", + "creation_date": "2022-03-13T03:23:06.649915Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "LoFi", + "LoFiHipHop", + "Chillhop", + "ChillHipHop" + ] + }, + { + "ids": [ + 291, + 364, + 1434, + 1437, + 1583 + ], + "not": true, + "type": "artist", + "names": [ + "R. Stevie Moore", + "Inside the Mind", + "The Old Codger (with R. Stevie Moore)", + "R. Stevie Moore (with Irwin Chusid)", + "Future Sauce" + ] + } + ], + "description": "Lo-fi chillout tracks. Mix of vocal and instrumental." + }, + { + "id": 11, + "is_public": true, + "name": "Odo Sendaidokai Radio Station", + "creation_date": "2020-04-02T09:56:17.367014Z", + "user": { + "id": 123, + "username": "odosendaidokai", + "name": "", + "date_joined": "2019-10-23T07:29:28.532933Z", + "avatar": { + "uuid": "87fda25e-7dc9-4a8b-b2ea-4b1b7124ca92", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.215370Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=012f47b044546f247ccb2fa9ecc2fd82489f7aa781cfb4210e658f7a0e95e9a0", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a272130c7c079a3e5765a57f558a5dcffdd61ee0ddd258401316994c611e6b46", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/c4/8b/50/97-2429-462b-a4c2-3c4704c217dd-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=bea9c204f6c0d22815d060316e7f8f5d334767ec8b04042b1762f4e6502d0f1d" + } + } + }, + "config": [ + { + "ids": [ + 6509 + ], + "type": "artist", + "names": [ + "Odo Sendaidokai" + ] + } + ], + "description": "Songs and Stems from Odo Sendaidokai" + }, + { + "id": 12, + "is_public": true, + "name": "Radio S", + "creation_date": "2020-04-18T13:06:55.935366Z", + "user": { + "id": 331, + "username": "Serie_S", + "name": "", + "date_joined": "2020-04-18T10:15:48.704656Z", + "avatar": { + "uuid": "b7b973f6-4990-4dd8-b210-190924bf4ba6", + "size": 256297, + "mimetype": "image/jpeg", + "creation_date": "2020-04-18T10:28:55.348898Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/6c/6f/4c/covid19-4689908.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=db4b4b3df5dec93f43301bb2c8cb5f0f09c1bfde5550c35bd53772f15f4dbb27", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/6c/6f/4c/covid19-4689908-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1a28239ce57ce73647e7cba1d571962b60afc1d4aa8b3d4bd3c5e49cb68e4e96", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/6c/6f/4c/covid19-4689908-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=fa691f9fa861182761f638cffa2c71bdf306f9c79c17d102a469ebf6d603ed69" + } + } + }, + "config": [], + "description": "serie S" + }, + { + "id": 14, + "is_public": true, + "name": "Bluesyjazz", + "creation_date": "2020-08-17T02:10:00.086768Z", + "user": { + "id": 170, + "username": "AgustinHaro", + "name": "", + "date_joined": "2019-12-06T16:46:36.333284Z", + "avatar": { + "uuid": "0658bdb8-bfab-48c0-9318-385282292722", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-01-29T13:36:35.219699Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/users/avatars/d3/2b/56/40-71dc-4640-827c-b9232d67e3a0.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=4927cb8063a0f9536b06ed067b0a5751493b55f2445fc96666056010c3fae2f4", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/d3/2b/56/40-71dc-4640-827c-b9232d67e3a0-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=de47d4471e3673f7eed7893a9caae0accbad444978a0140a2897ba68fa51cc61", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/users/avatars/d3/2b/56/40-71dc-4640-827c-b9232d67e3a0-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ebc20bd7704d193bfb472d7fa489d8ef7253544c311aceef72c781457b0bff55" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "Blues", + "Jazz", + "SoulJazz", + "OldTime", + "JazzFunk", + "CoolJazz" + ] + } + ], + "description": "" + }, + { + "id": 16, + "is_public": true, + "name": "Dartboard Goalies Radio", + "creation_date": "2021-04-06T04:18:54.759315Z", + "user": { + "id": 290, + "username": "yellingj", + "name": "", + "date_joined": "2020-02-23T23:22:52.488447Z", + "avatar": null + }, + "config": [], + "description": "Underground Rock and Roll from Upstate NY" + }, + { + "id": 18, + "is_public": true, + "name": "Testradio", + "creation_date": "2021-12-12T09:53:59.592542Z", + "user": { + "id": 526, + "username": "gcrkrause", + "name": "", + "date_joined": "2021-07-24T12:42:24.707534Z", + "avatar": null + }, + "config": [ + { + "not": false, + "type": "tag", + "names": [ + "Jazz", + "Fusion" + ] + } + ], + "description": "this is the most amazing test radio ever" + }, + { + "id": 19, + "is_public": true, + "name": "Lorem Ipsum", + "creation_date": "2021-12-21T07:25:04.174694Z", + "user": { + "id": 526, + "username": "gcrkrause", + "name": "", + "date_joined": "2021-07-24T12:42:24.707534Z", + "avatar": null + }, + "config": [], + "description": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \n\nDuis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet," + }, + { + "id": 26, + "is_public": true, + "name": "Classical", + "creation_date": "2022-04-25T05:29:01.644725Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "Classical" + ] + } + ], + "description": "Just the \"Classical\" tag." + }, + { + "id": 22, + "is_public": true, + "name": "Breakbeats, DnB, Jungle", + "creation_date": "2022-03-11T08:29:54.114419Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "Breakbeat", + "IdmElectronicBreakbeat", + "TechnoElectronicBreakbeat", + "IdmElectronicElectroBreakbeatAcidTechno", + "IdmExperimentalElectronicElectroBreakbeat", + "Jungle", + "TribeDnBJungle", + "DrumnBass", + "DrumAndBass", + "scratch", + "Turntablism" + ] + } + ], + "description": "Just some (broken) beats." + }, + { + "id": 28, + "is_public": true, + "name": "Reggae", + "creation_date": "2022-06-23T03:45:58.961615Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=2d3b31bf406cba202d25dfb48d84d10448735a8394869a437eb1fd30ff09b3a1", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=765080a302feee797a750f255d80e3e75eb4ce62026e5d2f47a6f44d4ce36f40", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220419Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0cef79f0fecbee667033688e5782c47b753840cde9fae65011c1d101279b94e3" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "Reggae", + "SkaReggae", + "ReggaeDub", + "reggaeton", + "RocksteadyReggae", + "SkaRocksteadyReggae" + ] + } + ], + "description": "" + } + ] +} \ No newline at end of file diff --git a/tests/data/radios/radio.json b/tests/data/radios/radio.json new file mode 100644 index 0000000000000000000000000000000000000000..66214d533dd9b6839fc083184dacd957042b7c1f --- /dev/null +++ b/tests/data/radios/radio.json @@ -0,0 +1,37 @@ +{ + "id": 25, + "is_public": true, + "name": "8bit / Chiptunes", + "creation_date": "2022-03-16T01:11:04.967505Z", + "user": { + "id": 553, + "username": "dragfyre", + "name": "", + "date_joined": "2022-03-04T12:45:48.284984Z", + "avatar": { + "uuid": "9c5d6425-7187-4a52-b819-613118a8e2d1", + "size": 53433, + "mimetype": "image/jpeg", + "creation_date": "2022-03-11T03:44:26.441841Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a0/7e/91/8f261ef8992c1c6f.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220441Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=a36aef89b9579c25ee0f5d1278c6d829d0340a6fd07dbe75f34e855c79f1557e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-200x200-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220441Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=51d9045f7d9b1557de2ce17b736ca2fe924919de0712e40ba58d0fcbb13b975e", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a0/7e/91/8f261ef8992c1c6f-crop-c0-5__0-5-600x600-95.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220923%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220923T220441Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=c88b5366a2ea2caf1bbdcbfc5901c8e02276b849a0f51068235333cc29856048" + } + } + }, + "config": [ + { + "type": "tag", + "names": [ + "8bit", + "8bits", + "Chiptune", + "ChiptuneRock", + "ChiptunePunk" + ] + } + ], + "description": "Blips and bops." + } \ No newline at end of file diff --git a/tests/data/radios/radio_filters.json b/tests/data/radios/radio_filters.json new file mode 100644 index 0000000000000000000000000000000000000000..5ea718acd5148bfeaa43892150502dafbca2a5d0 --- /dev/null +++ b/tests/data/radios/radio_filters.json @@ -0,0 +1,44 @@ +[ + { + "type": "artist", + "label": "Artist", + "help_text": "Select tracks for a given artist", + "fields": [ + { + "name": "ids", + "type": "list", + "subtype": "number", + "autocomplete": "/api/v1/search", + "autocomplete_qs": "q={query}", + "autocomplete_fields": { + "remoteValues": "artists", + "name": "name", + "value": "id" + }, + "label": "Artist", + "placeholder": "Select artists" + } + ] + }, + { + "type": "tag", + "label": "Tag", + "help_text": "Select tracks with a given tag", + "fields": [ + { + "name": "names", + "type": "list", + "subtype": "string", + "autocomplete": "/api/v1/search", + "autocomplete_fields": { + "remoteValues": "tags", + "name": "name", + "value": "name" + }, + "autocomplete_qs": "q={query}", + "label": "Tags", + "placeholder": "Select tags" + } + ] + } +] \ No newline at end of file diff --git a/tests/data/radios/radio_session.json b/tests/data/radios/radio_session.json new file mode 100644 index 0000000000000000000000000000000000000000..662915e04729076f9ec1e32eef4aa1e776d586a7 --- /dev/null +++ b/tests/data/radios/radio_session.json @@ -0,0 +1,9 @@ +{ + "id": 1444, + "radio_type": "custom", + "related_object_id": null, + "user": 1, + "creation_date": "2022-09-25T21:16:51.147552Z", + "custom_radio": 9, + "config": null +} \ No newline at end of file diff --git a/tests/data/radios/radio_session_request.json b/tests/data/radios/radio_session_request.json new file mode 100644 index 0000000000000000000000000000000000000000..057c768783e930427fa80e4f891faf07fde2557f --- /dev/null +++ b/tests/data/radios/radio_session_request.json @@ -0,0 +1,6 @@ +{ + "radio_type": "custom", + "related_object_id": null, + "custom_radio": 9, + "config": null +} \ No newline at end of file diff --git a/tests/data/rate_limit/rate_limit.json b/tests/data/rate_limit/rate_limit.json new file mode 100644 index 0000000000000000000000000000000000000000..b4c03865f642467070e69506946d856ced60539b --- /dev/null +++ b/tests/data/rate_limit/rate_limit.json @@ -0,0 +1,333 @@ +{ + "enabled": true, + "ident": { + "type": "anonymous", + "id": "172.18.0.1" + }, + "scopes": [ + { + "id": "anonymous-create", + "rate": "1000/day", + "description": "Anonymous POST requests", + "limit": 1000, + "duration": 86400, + "remaining": 1000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "anonymous-destroy", + "rate": "1000/day", + "description": "Anonymous DELETE requests on resource detail", + "limit": 1000, + "duration": 86400, + "remaining": 1000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "anonymous-list", + "rate": "10000/day", + "description": "Anonymous GET requests on resource lists", + "limit": 10000, + "duration": 86400, + "remaining": 1645, + "available": null, + "available_seconds": null, + "reset": 1664113699, + "reset_seconds": 86394 + }, + { + "id": "anonymous-oauth-app", + "rate": "10/day", + "description": "Anonymous OAuth app creation", + "limit": 10, + "duration": 86400, + "remaining": 10, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "anonymous-reports", + "rate": "10/day", + "description": "Anonymous report submission", + "limit": 10, + "duration": 86400, + "remaining": 10, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "anonymous-retrieve", + "rate": "10000/day", + "description": "Anonymous GET requests on resource detail", + "limit": 10000, + "duration": 86400, + "remaining": 9782, + "available": null, + "available_seconds": null, + "reset": 1664113634, + "reset_seconds": 86329 + }, + { + "id": "anonymous-update", + "rate": "1000/day", + "description": "Anonymous PATCH and PUT requests on resource detail", + "limit": 1000, + "duration": 86400, + "remaining": 1000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "anonymous-wildcard", + "rate": "1000/h", + "description": "Anonymous requests not covered by other limits", + "limit": 1000, + "duration": 3600, + "remaining": 977, + "available": null, + "available_seconds": null, + "reset": 1664030548, + "reset_seconds": 3243 + }, + { + "id": "authenticated-create", + "rate": "1000/hour", + "description": "Authenticated POST requests", + "limit": 1000, + "duration": 3600, + "remaining": 1000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-destroy", + "rate": "500/hour", + "description": "Authenticated DELETE requests on resource detail", + "limit": 500, + "duration": 3600, + "remaining": 500, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-list", + "rate": "10000/hour", + "description": "Authenticated GET requests on resource lists", + "limit": 10000, + "duration": 3600, + "remaining": 10000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-oauth-app", + "rate": "10/hour", + "description": "Authenticated OAuth app creation", + "limit": 10, + "duration": 3600, + "remaining": 10, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-reports", + "rate": "100/day", + "description": "Authenticated report submission", + "limit": 100, + "duration": 86400, + "remaining": 100, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-retrieve", + "rate": "10000/hour", + "description": "Authenticated GET requests on resource detail", + "limit": 10000, + "duration": 3600, + "remaining": 10000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-update", + "rate": "1000/hour", + "description": "Authenticated PATCH and PUT requests on resource detail", + "limit": 1000, + "duration": 3600, + "remaining": 1000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "authenticated-wildcard", + "rate": "2000/h", + "description": "Authenticated requests not covered by other limits", + "limit": 2000, + "duration": 3600, + "remaining": 2000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "fetch", + "rate": "200/d", + "description": "Fetch remote objects", + "limit": 200, + "duration": 86400, + "remaining": 200, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "login", + "rate": "30/hour", + "description": "Login", + "limit": 30, + "duration": 3600, + "remaining": 30, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "oauth-authorize", + "rate": "100/hour", + "description": "OAuth app authorization", + "limit": 100, + "duration": 3600, + "remaining": 100, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "oauth-revoke-token", + "rate": "100/hour", + "description": "OAuth token deletion", + "limit": 100, + "duration": 3600, + "remaining": 100, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "oauth-token", + "rate": "100/hour", + "description": "OAuth token creation", + "limit": 100, + "duration": 3600, + "remaining": 100, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "password-change", + "rate": "20/h", + "description": "Password change (when authenticated)", + "limit": 20, + "duration": 3600, + "remaining": 20, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "password-reset", + "rate": "20/h", + "description": "Password reset request", + "limit": 20, + "duration": 3600, + "remaining": 20, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "password-reset-confirm", + "rate": "20/h", + "description": "Password reset confirmation", + "limit": 20, + "duration": 3600, + "remaining": 20, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "signup", + "rate": "10/day", + "description": "Account creation", + "limit": 10, + "duration": 86400, + "remaining": 10, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "subsonic", + "rate": "2000/hour", + "description": "All subsonic API requests", + "limit": 2000, + "duration": 3600, + "remaining": 2000, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + }, + { + "id": "verify-email", + "rate": "20/h", + "description": "Email address confirmation", + "limit": 20, + "duration": 3600, + "remaining": 20, + "available": null, + "available_seconds": null, + "reset": null, + "reset_seconds": null + } + ] +} \ No newline at end of file diff --git a/tests/data/subscriptions/paginated_subscription_list.json b/tests/data/subscriptions/paginated_subscription_list.json new file mode 100644 index 0000000000000000000000000000000000000000..edd44ec49eefec231fef595ed0f822a6e85eaed9 --- /dev/null +++ b/tests/data/subscriptions/paginated_subscription_list.json @@ -0,0 +1,1875 @@ +{ + "count": 29, + "next": null, + "previous": null, + "results": [ + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/c3df71ed-405a-4732-83f8-4f39ba030b7a", + "uuid": "c3df71ed-405a-4732-83f8-4f39ba030b7a", + "creation_date": "2022-08-31T15:06:44.932164Z", + "channel": { + "uuid": "a80c05f8-9332-4aa2-8231-2d91b285a4fa", + "artist": { + "id": 12984, + "fid": "https://tanukitunes.com/federation/music/artists/a2c51eec-77dd-493c-b57a-d3a271aaa78a", + "mbid": null, + "name": "Serious Trouble", + "creation_date": "2022-07-29T00:23:42.590992Z", + "modification_date": "2022-09-22T20:30:24Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "An irreverent podcast about the law from Josh Barro and Ken White.", + "content_type": "text/plain", + "html": "<p>An irreverent podcast about the law from Josh Barro and Ken White.</p>" + }, + "attachment_cover": { + "uuid": "a46a941b-535d-45cc-8fde-2f96f05974b2", + "size": 48579, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:04:35.189115Z", + "urls": { + "source": "https://substackcdn.com/feed/podcast/906465/8304b8163a0aee7dba424b4492ff198e.jpg", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/57/37/39/8304b8163a0aee7dba424b4492ff198e.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=cf03d7cc09265cc40498cd98d9e669190cf6b28f7397cdcb02c26fc981c580de", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/57/37/39/8304b8163a0aee7dba424b4492ff198e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=6af38660aca2cf4b8cbc1bd5ab3206e4361b7d6bcbabc5f179e17e1a0aee4851", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/57/37/39/8304b8163a0aee7dba424b4492ff198e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=903a566921c4de345f158a55d9628a9dea9e5fdc3b6573cdc2db219b53b8e630" + } + }, + "channel": 536 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2022-07-29T00:23:42.618855Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "Very Serious Media", + "owner_name": "Josh Barro and Ken White", + "owner_email": null, + "itunes_category": "News", + "itunes_subcategory": "News Commentary" + }, + "rss_url": "https://api.substack.com/feed/podcast/906465.rss", + "url": "https://www.serioustrouble.show/podcast", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/9d6fa807-c871-4896-8c58-5dc57add7fc3", + "uuid": "9d6fa807-c871-4896-8c58-5dc57add7fc3", + "creation_date": "2022-08-04T07:25:16.081717Z", + "channel": { + "uuid": "ec694a63-0039-4d9f-be17-6b30b70e78a8", + "artist": { + "id": 8042, + "fid": "https://tanukitunes.com/federation/music/artists/490e3f8a-66b2-4bd3-a9a1-8b3e1aba09b0", + "mbid": null, + "name": "Ciarán Ainsworth", + "creation_date": "2020-04-13T18:04:02.353252Z", + "modification_date": "2022-05-03T14:34:14.975075Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "A channel for my personal recordings. The good, the bad, the ugly.", + "content_type": "text/markdown", + "html": "<p>A channel for my personal recordings. The good, the bad, the ugly.</p>" + }, + "attachment_cover": null, + "channel": 41 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "actor": { + "fid": "https://tanukitunes.com/federation/actors/ciaranainsworth", + "url": null, + "creation_date": "2020-04-13T18:04:02.528240Z", + "summary": null, + "preferred_username": "ciaranainsworth", + "name": "Ciarán Ainsworth", + "last_fetch_date": "2020-04-13T18:04:02.528255Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "ciaranainsworth@tanukitunes.com", + "is_local": true + }, + "creation_date": "2020-04-13T18:04:02.373598Z", + "metadata": {}, + "rss_url": "https://tanukitunes.com/api/v1/channels/ciaranainsworth/rss", + "url": null, + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/9d00123f-2253-4732-b9dc-4ad6937cecd9", + "uuid": "9d00123f-2253-4732-b9dc-4ad6937cecd9", + "creation_date": "2022-07-29T11:25:05.582204Z", + "channel": { + "uuid": "6a295796-7203-45d5-8595-dd7de42fabe1", + "artist": { + "id": 12985, + "fid": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "mbid": null, + "name": "Hard Men Working Hard", + "creation_date": "2022-07-29T11:24:42.398366Z", + "modification_date": "2022-07-29T11:24:42.398456Z", + "is_local": false, + "content_category": "music", + "description": { + "text": "<p>Nice music by three good boys: Zenki, Vys and Lakembra</p>", + "content_type": "text/html", + "html": "<p>Nice music by three good boys: Zenki, Vys and Lakembra</p>" + }, + "attachment_cover": { + "uuid": "32c40aec-6e25-4b4c-bdf6-017f3ac8153b", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-25T14:48:09.206421Z", + "urls": { + "source": "https://am.pirateradio.social/media/attachments/93/8f/38/hmwh-resized.png", + "original": "https://tanukitunes.com/api/v1/attachments/32c40aec-6e25-4b4c-bdf6-017f3ac8153b/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/32c40aec-6e25-4b4c-bdf6-017f3ac8153b/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/32c40aec-6e25-4b4c-bdf6-017f3ac8153b/proxy?next=large_square_crop" + } + }, + "channel": 537 + }, + "attributed_to": { + "fid": "https://am.pirateradio.social/federation/actors/hmwh", + "url": "https://am.pirateradio.social/@hmwh", + "creation_date": "2022-07-29T11:24:42.383772Z", + "summary": null, + "preferred_username": "hmwh", + "name": "hmwh", + "last_fetch_date": "2022-09-25T14:48:09.170659Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hmwh@am.pirateradio.social", + "is_local": false + }, + "actor": { + "fid": "https://am.pirateradio.social/federation/actors/hardmenworkinghard", + "url": "https://am.pirateradio.social/channels/hardmenworkinghard", + "creation_date": "2022-07-29T11:24:41.919153Z", + "summary": null, + "preferred_username": "hardmenworkinghard", + "name": "Hard Men Working Hard", + "last_fetch_date": "2022-08-08T00:21:34.141046Z", + "domain": "am.pirateradio.social", + "type": "Person", + "manually_approves_followers": false, + "full_username": "hardmenworkinghard@am.pirateradio.social", + "is_local": false + }, + "creation_date": "2022-07-29T11:24:42.444456Z", + "metadata": {}, + "rss_url": "https://am.pirateradio.social/api/v1/channels/hardmenworkinghard/rss", + "url": "https://am.pirateradio.social/channels/hardmenworkinghard", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/41af6b63-c4eb-444e-9878-2868d3f3e185", + "uuid": "41af6b63-c4eb-444e-9878-2868d3f3e185", + "creation_date": "2022-07-29T00:24:09.253072Z", + "channel": { + "uuid": "ef1d2c18-89a1-4a34-992c-c34b211a694c", + "artist": { + "id": 7708, + "fid": "https://tanukitunes.com/federation/music/artists/55a3ccdf-84f9-4417-98e5-5b7f70af3674", + "mbid": null, + "name": "BSD Now", + "creation_date": "2020-04-01T14:46:27.931795Z", + "modification_date": "2022-09-15T07:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.\nThe show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day.", + "content_type": "text/plain", + "html": "<p>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.<br>The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day.</p>" + }, + "attachment_cover": { + "uuid": "c4e39874-678e-4d2f-98d1-7a7a0e391957", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:30.890262Z", + "urls": { + "source": "https://assets.fireside.fm/file/fireside-images/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4", + "original": "https://tanukitunes.com/api/v1/attachments/c4e39874-678e-4d2f-98d1-7a7a0e391957/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/c4e39874-678e-4d2f-98d1-7a7a0e391957/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/c4e39874-678e-4d2f-98d1-7a7a0e391957/proxy?next=large_square_crop" + } + }, + "channel": 26 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-01T14:46:27.964592Z", + "metadata": { + "explicit": null, + "language": "en-us", + "copyright": "© 2022 Allan Jude", + "owner_name": "Allan Jude", + "owner_email": "feedback@bsdnow.tv", + "itunes_category": "News", + "itunes_subcategory": "Tech News" + }, + "rss_url": "https://feeds.fireside.fm/bsdnow/rss", + "url": "https://www.bsdnow.tv", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/1f21b828-98ad-4e5a-a6e1-b715e9523809", + "uuid": "1f21b828-98ad-4e5a-a6e1-b715e9523809", + "creation_date": "2022-07-20T19:50:12.469705Z", + "channel": { + "uuid": "d15eb928-6b81-48e9-b743-4982a5ca7ead", + "artist": { + "id": 12972, + "fid": "https://tanukitunes.com/federation/music/artists/46bb5b73-3259-4375-984a-3188e29a00fd", + "mbid": null, + "name": "The Backend Engineering Show with Hussein Nasser", + "creation_date": "2022-07-20T19:50:04.443150Z", + "modification_date": "2022-09-01T04:06:07Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Welcome to the Backend Engineering Show podcast with your host Hussein Nasser. If you like software engineering you’ve come to the right place. I discuss all sorts of software engineering technologies and news with specific focus on the backend. All opinions are my own. \n\nMost of my content in the podcast is an audio version of videos I post on my youtube channel here http://www.youtube.com/c/HusseinNasser-software-engineering \n\nBuy me a coffee \nhttps://www.buymeacoffee.com/hnasr\n\n🧑🏫 Courses I Teach\nhttps://husseinnasser.com/courses", + "content_type": "text/plain", + "html": "<p>Welcome to the Backend Engineering Show podcast with your host Hussein Nasser. If you like software engineering you’ve come to the right place. I discuss all sorts of software engineering technologies and news with specific focus on the backend. All opinions are my own. </p><p>Most of my content in the podcast is an audio version of videos I post on my youtube channel here <a href=\"http://www.youtube.com/c/HusseinNasser-software-engineering\">http://www.youtube.com/c/HusseinNasser-software-engineering</a> </p><p>Buy me a coffee <br><a href=\"https://www.buymeacoffee.com/hnasr\">https://www.buymeacoffee.com/hnasr</a></p><p>🧑🏫 Courses I Teach<br><a href=\"https://husseinnasser.com/courses\">https://husseinnasser.com/courses</a></p>" + }, + "attachment_cover": { + "uuid": "391d1351-dde1-4866-9211-493639faa22d", + "size": 975773, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:03:59.499112Z", + "urls": { + "source": "https://d3t3ozftmdmh3i.cloudfront.net/production/podcast_uploaded_nologo/222061/222061-1626111277047-d82a050054721.jpg", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/35/bd/66/222061-1626111277047-d82a050054721.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=9ab5244940c626b69bd2150bb3c7ce842ac60c50e8a46d8f1007b8c4a0653870", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/35/bd/66/222061-1626111277047-d82a050054721-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=7b77740984c9c547e9c3195f986f56ceded415a0a28aec0fcca989f735f545ff", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/35/bd/66/222061-1626111277047-d82a050054721-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=773074288ee14c0e82f789126359a3f90d2c48f756e16e1079568982b022aaff" + } + }, + "channel": 530 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2022-07-20T19:50:04.485755Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "Hussein Nasser", + "owner_name": "Hussein Nasser", + "owner_email": null, + "itunes_category": "Technology", + "itunes_subcategory": null + }, + "rss_url": "https://anchor.fm/s/1eb6d14/podcast/rss", + "url": "https://database.husseinnasser.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/f64b4cfa-cc33-492e-90c0-d486bf055379", + "uuid": "f64b4cfa-cc33-492e-90c0-d486bf055379", + "creation_date": "2021-06-02T19:06:13.459063Z", + "channel": { + "uuid": "1ff2c20f-7931-4c94-987a-3a2da3ac9589", + "artist": { + "id": 10672, + "fid": "https://tanukitunes.com/federation/music/artists/2bcbaa2f-1610-4e83-afa7-b9cf4e197f84", + "mbid": null, + "name": "Dungeons and Daddies", + "creation_date": "2021-06-02T19:06:11.495097Z", + "modification_date": "2022-09-20T16:00:20Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "A Dungeons and Dragons podcast about four dads from our world transported into a realm of high fantasy and magic and their quest to rescue their sons.<br /><hr /><p style=\"color: grey; font-size: 0.75em;\"> Hosted on Acast. See <a href=\"https://acast.com/privacy\" rel=\"noopener noreferrer\" style=\"color: grey;\" target=\"_blank\">acast.com/privacy</a> for more information.</p>", + "content_type": "text/html", + "html": "A Dungeons and Dragons podcast about four dads from our world transported into a realm of high fantasy and magic and their quest to rescue their sons.<br><p> Hosted on Acast. See <a href=\"https://acast.com/privacy\">acast.com/privacy</a> for more information.</p>" + }, + "attachment_cover": { + "uuid": "bbfac3b0-a301-4fda-b263-0d62902b926e", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:03:29.031683Z", + "urls": { + "source": "https://assets.pippa.io/shows/61b7633a16956271a5e9503b/show-cover.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/bbfac3b0-a301-4fda-b263-0d62902b926e/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/bbfac3b0-a301-4fda-b263-0d62902b926e/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/bbfac3b0-a301-4fda-b263-0d62902b926e/proxy?next=large_square_crop" + } + }, + "channel": 411 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2021-06-02T19:06:11.525471Z", + "metadata": { + "explicit": true, + "language": "en", + "copyright": "© 2019 Dungeons and Daddies", + "owner_name": "Dungeons and Daddies", + "owner_email": "info+46e42ca7-4921-5f04-a297-1970e72fd86d@mg.pippa.io", + "itunes_category": "Comedy", + "itunes_subcategory": "Improv" + }, + "rss_url": "https://rss.acast.com/dungeons-and-daddies", + "url": "http://dungeonsanddaddies.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/517b75e7-7839-416e-a923-a0cf524c632f", + "uuid": "517b75e7-7839-416e-a923-a0cf524c632f", + "creation_date": "2021-05-12T13:56:05.781906Z", + "channel": { + "uuid": "812ad918-2dce-4088-92a5-c34f6bd650df", + "artist": { + "id": 10634, + "fid": "https://tanukitunes.com/federation/music/artists/3f5b190c-8807-4c3f-8cea-5ba4684dec8a", + "mbid": null, + "name": "The Worst Idea Of All Time", + "creation_date": "2021-05-12T13:55:57.518147Z", + "modification_date": "2022-09-24T05:57:28Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "TWIOAT is an award-winning smash hit comedy podcast hosted by kiwi comedians Guy 'Flash' Montgomery and Tim 'Timbly' Batt (known jointly as the Frost Fellas, The Boiz, etc). The pair have been punishing themselves with movies for your enjoyment since Feb 2014, starting by watching and reviewing Grown Ups 2 once a week, every week, for a full year. They applied the same treatment to Sex and The City 2, Sex and The City, We Are You Friends and are now watching and reviewing every softcore adult film in the Emmanuelle franchise. Sub projects include My Week With Cats, where the pair went to see CATS (2019) at the cinema every day for a week, and Podcast In A Tree which saw them record while in different trees around Aotearoa New Zealand.<br /><hr /><p style=\"color: grey; font-size: 0.75em;\"> Hosted on Acast. See <a href=\"https://acast.com/privacy\" rel=\"noopener noreferrer\" style=\"color: grey;\" target=\"_blank\">acast.com/privacy</a> for more information.</p>", + "content_type": "text/html", + "html": "TWIOAT is an award-winning smash hit comedy podcast hosted by kiwi comedians Guy 'Flash' Montgomery and Tim 'Timbly' Batt (known jointly as the Frost Fellas, The Boiz, etc). The pair have been punishing themselves with movies for your enjoyment since Feb 2014, starting by watching and reviewing Grown Ups 2 once a week, every week, for a full year. They applied the same treatment to Sex and The City 2, Sex and The City, We Are You Friends and are now watching and reviewing every softcore adult film in the Emmanuelle franchise. Sub projects include My Week With Cats, where the pair went to see CATS (2019) at the cinema every day for a week, and Podcast In A Tree which saw them record while in different trees around Aotearoa New Zealand.<br><p> Hosted on Acast. See <a href=\"https://acast.com/privacy\">acast.com/privacy</a> for more information.</p>" + }, + "attachment_cover": { + "uuid": "04f0a1de-da2f-4949-b6b8-a59a7263b07b", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:55.435957Z", + "urls": { + "source": "https://assets.pippa.io/shows/610d0aee7dad151fe90842ad/show-cover.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/04f0a1de-da2f-4949-b6b8-a59a7263b07b/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/04f0a1de-da2f-4949-b6b8-a59a7263b07b/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/04f0a1de-da2f-4949-b6b8-a59a7263b07b/proxy?next=large_square_crop" + } + }, + "channel": 405 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2021-05-12T13:55:57.550853Z", + "metadata": { + "explicit": true, + "language": "en", + "copyright": "Little Empire Podcasts", + "owner_name": "Tim Batt", + "owner_email": "info+fc4a3126-378d-4439-9b05-0a367ce68e08@mg.pippa.io", + "itunes_category": "Comedy", + "itunes_subcategory": null + }, + "rss_url": "https://rss.acast.com/worstideaofalltime", + "url": "https://www.worstideaofalltime.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/5e8c7b6e-a0a6-445b-bf59-f72e4b08a59c", + "uuid": "5e8c7b6e-a0a6-445b-bf59-f72e4b08a59c", + "creation_date": "2020-12-06T19:58:51.397316Z", + "channel": { + "uuid": "085f7c0d-f30f-4f31-b67b-8bc0b507f1fa", + "artist": { + "id": 10022, + "fid": "https://tanukitunes.com/federation/music/artists/da149da0-fcf8-424a-ae28-ef0a4be5a731", + "mbid": null, + "name": "How Did This Get Made?", + "creation_date": "2020-12-06T19:58:49.618658Z", + "modification_date": "2022-09-23T04:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Have you ever seen a movie so bad that it's amazing? Paul Scheer, June Diane Raphael and Jason Mantzoukas want to hear about it! We'll watch it with our funniest friends, and report back to you with the results.", + "content_type": "text/plain", + "html": "<p>Have you ever seen a movie so bad that it's amazing? Paul Scheer, June Diane Raphael and Jason Mantzoukas want to hear about it! We'll watch it with our funniest friends, and report back to you with the results.</p>" + }, + "attachment_cover": { + "uuid": "77daa49d-101f-4c5d-a03d-0268054d6bf8", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:15.179088Z", + "urls": { + "source": "https://image.simplecastcdn.com/images/a35fca4e-944a-4ccb-bc7b-d678b2c11e9d/9a9cbdd6-22c3-4a6f-be04-49316ffeeaa7/3000x3000/ear-cover-hdtgm-3000x3000-r2017-final.jpg?aid=rss_feed", + "original": "https://tanukitunes.com/api/v1/attachments/77daa49d-101f-4c5d-a03d-0268054d6bf8/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/77daa49d-101f-4c5d-a03d-0268054d6bf8/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/77daa49d-101f-4c5d-a03d-0268054d6bf8/proxy?next=large_square_crop" + } + }, + "channel": 199 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-12-06T19:58:49.642302Z", + "metadata": { + "explicit": true, + "language": "en-us", + "copyright": "2021 Earwolf and Paul Scheer, June Diane Raphael, Jason Mantzoukas", + "owner_name": "Earwolf", + "owner_email": "howdidthisgetmade@earwolf.com", + "itunes_category": "Comedy", + "itunes_subcategory": null + }, + "rss_url": "https://www.omnycontent.com/d/playlist/aaea4e69-af51-495e-afc9-a9760146922b/64b5de49-d653-47c4-afe1-ab0600144b4b/87b34f0a-5ff9-491e-957c-ab0600144b63/podcast.rss", + "url": "http://www.earwolf.com/show/how-did-this-get-made/", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/b99bd9af-86c3-4306-9452-defb08762d42", + "uuid": "b99bd9af-86c3-4306-9452-defb08762d42", + "creation_date": "2020-12-03T19:21:05.758427Z", + "channel": { + "uuid": "cb9f3cdd-33d5-4fb9-a174-1740ee288394", + "artist": { + "id": 10012, + "fid": "https://tanukitunes.com/federation/music/artists/827aa1f6-e307-46dd-bc71-b46b0a59b46a", + "mbid": null, + "name": "Teaching Python", + "creation_date": "2020-12-03T19:21:04.071655Z", + "modification_date": "2022-09-19T04:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "A podcast by Kelly Paredes and Sean Tibor about their adventures teaching middle school computer science, problem-solving, handling failure, frustration, and victory through the lens of the Python programming language.\nKelly Paredes has taught all over the world and specializes in curriculum design and development. She currently teaches sixth and seventh-grade computer science at Pine Crest School in Fort Lauderdale, Florida. This is her fourth year using Python.\nSean Tibor has worked in marketing and technical management roles selling toothpaste and toothbrushes, designing chemical inventory and tv media databases, enrolling online nursing students, and founding a digital marketing agency. This is his fourth year teaching Python to seventh and eighth-grade students at Pine Crest School in Fort Lauderdale, Florida.", + "content_type": "text/plain", + "html": "<p>A podcast by Kelly Paredes and Sean Tibor about their adventures teaching middle school computer science, problem-solving, handling failure, frustration, and victory through the lens of the Python programming language.<br>Kelly Paredes has taught all over the world and specializes in curriculum design and development. She currently teaches sixth and seventh-grade computer science at Pine Crest School in Fort Lauderdale, Florida. This is her fourth year using Python.<br>Sean Tibor has worked in marketing and technical management roles selling toothpaste and toothbrushes, designing chemical inventory and tv media databases, enrolling online nursing students, and founding a digital marketing agency. This is his fourth year teaching Python to seventh and eighth-grade students at Pine Crest School in Fort Lauderdale, Florida.</p>" + }, + "attachment_cover": { + "uuid": "067fe88f-0908-4b0d-85d6-8f899d02585e", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:01:57.413016Z", + "urls": { + "source": "https://assets.fireside.fm/file/fireside-images/podcasts/images/c/c8ea6bdf-0c80-46e7-a00a-639d7dc2be91/cover.jpg?v=3", + "original": "https://tanukitunes.com/api/v1/attachments/067fe88f-0908-4b0d-85d6-8f899d02585e/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/067fe88f-0908-4b0d-85d6-8f899d02585e/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/067fe88f-0908-4b0d-85d6-8f899d02585e/proxy?next=large_square_crop" + } + }, + "channel": 192 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-12-03T19:21:04.091264Z", + "metadata": { + "explicit": null, + "language": "en-us", + "copyright": "© 2022 Sean Tibor and Kelly Paredes", + "owner_name": "Sean Tibor and Kelly Paredes", + "owner_email": "sean.tibor@gmail.com", + "itunes_category": "Education", + "itunes_subcategory": null + }, + "rss_url": "https://feeds.fireside.fm/teachingpython/rss", + "url": "https://www.teachingpython.fm", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/989a0969-35c9-4abc-8bc0-39235c616d7c", + "uuid": "989a0969-35c9-4abc-8bc0-39235c616d7c", + "creation_date": "2020-12-03T19:21:03.385268Z", + "channel": { + "uuid": "251b5018-ae8c-4ef2-b5e9-d5658667ce97", + "artist": { + "id": 10011, + "fid": "https://tanukitunes.com/federation/music/artists/91f9dd49-979c-4bab-a0e5-27afdf34f9e5", + "mbid": null, + "name": "The Python Podcast.__init__", + "creation_date": "2020-12-03T19:21:01.255336Z", + "modification_date": "2022-09-19T01:16:31Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "The weekly podcast about the Python programming language, its ecosystem, and its community. Tune in for engaging, educational, and technical discussions about the broad range of industries, individuals, and applications that rely on Python.", + "content_type": "text/plain", + "html": "<p>The weekly podcast about the Python programming language, its ecosystem, and its community. Tune in for engaging, educational, and technical discussions about the broad range of industries, individuals, and applications that rely on Python.</p>" + }, + "attachment_cover": { + "uuid": "09b34ce5-9b02-4715-aff3-bca313c3aae0", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T22:02:10.140839Z", + "urls": { + "source": "https://www.podcastinit.com/app/uploads/revised_logo_with_title_large.png", + "original": "https://tanukitunes.com/api/v1/attachments/09b34ce5-9b02-4715-aff3-bca313c3aae0/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/09b34ce5-9b02-4715-aff3-bca313c3aae0/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/09b34ce5-9b02-4715-aff3-bca313c3aae0/proxy?next=large_square_crop" + } + }, + "channel": 191 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-12-03T19:21:01.268346Z", + "metadata": { + "explicit": null, + "language": "en-US", + "copyright": "© 2022 Tobias Macey", + "owner_name": "Tobias Macey", + "owner_email": "hosts@podcastinit.com", + "itunes_category": "Technology", + "itunes_subcategory": null + }, + "rss_url": "https://www.podcastinit.com/feed/mp3/", + "url": "https://www.pythonpodcast.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/da4c5176-239f-45a0-95ef-041eaadb1095", + "uuid": "da4c5176-239f-45a0-95ef-041eaadb1095", + "creation_date": "2020-12-03T19:20:59.470244Z", + "channel": { + "uuid": "6bfbdcda-0b17-40b6-b76f-b48251226b19", + "artist": { + "id": 10010, + "fid": "https://tanukitunes.com/federation/music/artists/a3388328-075c-48e2-a5fb-3717903753fe", + "mbid": null, + "name": "Talk Python To Me", + "creation_date": "2020-12-03T19:20:58.733305Z", + "modification_date": "2022-09-22T08:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Talk Python to Me is a weekly podcast hosted by developer and entrepreneur Michael Kennedy. We dive deep into the popular packages and software developers, data scientists, and incredible hobbyists doing amazing things with Python. If you're new to Python, you'll quickly learn the ins and outs of the community by hearing from the leaders. And if you've been Pythoning for years, you'll learn about your favorite packages and the hot new ones coming out of open source.", + "content_type": "text/plain", + "html": "<p>Talk Python to Me is a weekly podcast hosted by developer and entrepreneur Michael Kennedy. We dive deep into the popular packages and software developers, data scientists, and incredible hobbyists doing amazing things with Python. If you're new to Python, you'll quickly learn the ins and outs of the community by hearing from the leaders. And if you've been Pythoning for years, you'll learn about your favorite packages and the hot new ones coming out of open source.</p>" + }, + "attachment_cover": { + "uuid": "7465d157-0a52-4eea-a842-5e54b49d00b3", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T22:03:34.602532Z", + "urls": { + "source": "https://talkpython.fm/static/img/podcast-theme-img_1400_v3.png", + "original": "https://tanukitunes.com/api/v1/attachments/7465d157-0a52-4eea-a842-5e54b49d00b3/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/7465d157-0a52-4eea-a842-5e54b49d00b3/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/7465d157-0a52-4eea-a842-5e54b49d00b3/proxy?next=large_square_crop" + } + }, + "channel": 190 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-12-03T19:20:58.748389Z", + "metadata": { + "explicit": null, + "language": "en-us", + "copyright": "Copyright 2015-2022", + "owner_name": "Michael Kennedy", + "owner_email": "mikeckennedy@gmail.com", + "itunes_category": "Technology", + "itunes_subcategory": null + }, + "rss_url": "https://talkpython.fm/episodes/rss", + "url": "https://talkpython.fm/", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/fa325e9f-af75-4c50-b1e8-830c575cb609", + "uuid": "fa325e9f-af75-4c50-b1e8-830c575cb609", + "creation_date": "2020-10-13T15:22:27.819224Z", + "channel": { + "uuid": "9dda45fd-ec81-4ece-8ed1-d03ac0be7b03", + "artist": { + "id": 9675, + "fid": "https://tanukitunes.com/federation/music/artists/2380c42f-76e8-4afc-b9d2-fb32bac950ee", + "mbid": null, + "name": "Software Engineering Radio - The Podcast for Professional Software Developers", + "creation_date": "2020-10-13T15:02:22.040856Z", + "modification_date": "2022-09-21T16:18:37Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Software Engineering Radio is a podcast targeted at the professional software developer. The goal is to be a lasting educational resource, not a newscast. Every 10 days, a new episode is published that covers all topics software engineering. Episodes are either tutorials on a specific topic, or an interview with a well-known character from the software engineering world. All SE Radio episodes are original content — we do not record conferences or talks given in other venues. Each episode comprises two speakers to ensure a lively listening experience. SE Radio is an independent and non-commercial organization.", + "content_type": "text/plain", + "html": "<p>Software Engineering Radio is a podcast targeted at the professional software developer. The goal is to be a lasting educational resource, not a newscast. Every 10 days, a new episode is published that covers all topics software engineering. Episodes are either tutorials on a specific topic, or an interview with a well-known character from the software engineering world. All SE Radio episodes are original content — we do not record conferences or talks given in other venues. Each episode comprises two speakers to ensure a lively listening experience. SE Radio is an independent and non-commercial organization.</p>" + }, + "attachment_cover": { + "uuid": "3ce11858-ecf9-4b1a-a6a2-f9b165ce732e", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:03:24.551365Z", + "urls": { + "source": "http://media.computer.org/sponsored/podcast/se-radio/se-radio-logo-1400x1475.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/3ce11858-ecf9-4b1a-a6a2-f9b165ce732e/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/3ce11858-ecf9-4b1a-a6a2-f9b165ce732e/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/3ce11858-ecf9-4b1a-a6a2-f9b165ce732e/proxy?next=large_square_crop" + } + }, + "channel": 138 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-10-13T15:02:22.073089Z", + "metadata": { + "explicit": null, + "language": "en-us", + "copyright": "(c)2006-2015 SE-Radio Team. All content is licensed under the Creative Commons 2.5 license (see http://creativecommons.org/licenses/by-nc-nd/2.5/)", + "owner_name": null, + "owner_email": "team@se-radio.net", + "itunes_category": "Technology", + "itunes_subcategory": null + }, + "rss_url": "http://feeds.feedburner.com/se-radio", + "url": "https://www.se-radio.net", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/e33486d8-5af6-4529-b8ca-b9caaa5b686c", + "uuid": "e33486d8-5af6-4529-b8ca-b9caaa5b686c", + "creation_date": "2020-10-13T15:22:11.388815Z", + "channel": { + "uuid": "60419ce5-9297-4693-b19d-15585cfdaa23", + "artist": { + "id": 9679, + "fid": "https://tanukitunes.com/federation/music/artists/1b41e3b4-c49e-4f98-ba6e-fe6a61d7a049", + "mbid": null, + "name": "cpp.chat", + "creation_date": "2020-10-13T15:20:46.888342Z", + "modification_date": "2022-02-11T00:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Each fortnight, or thereabouts, we chat with guests from the C++ community about what they're doing, what interests them, and what's going on in the world of C++", + "content_type": "text/plain", + "html": "<p>Each fortnight, or thereabouts, we chat with guests from the C++ community about what they're doing, what interests them, and what's going on in the world of C++</p>" + }, + "attachment_cover": { + "uuid": "15330bb4-cecb-46be-854d-69a5fa8c97b3", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:03:42.379033Z", + "urls": { + "source": "https://cpp.chat/assets/cover_medium.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/15330bb4-cecb-46be-854d-69a5fa8c97b3/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/15330bb4-cecb-46be-854d-69a5fa8c97b3/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/15330bb4-cecb-46be-854d-69a5fa8c97b3/proxy?next=large_square_crop" + } + }, + "channel": 142 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-10-13T15:20:46.910605Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": null, + "owner_name": "Jon Kalb & Phil Nash", + "owner_email": "cppchat@philnash.me", + "itunes_category": "News", + "itunes_subcategory": "Tech News" + }, + "rss_url": "https://feeds.fireside.fm/cppchat/rss", + "url": "https://cpp.chat", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/a5abd97f-75b5-4d52-97b5-d9feec724bf2", + "uuid": "a5abd97f-75b5-4d52-97b5-d9feec724bf2", + "creation_date": "2020-10-13T15:06:51.201999Z", + "channel": { + "uuid": "178e77d9-b6b3-4247-916d-5fb5a1f73065", + "artist": { + "id": 9678, + "fid": "https://tanukitunes.com/federation/music/artists/0674e663-ca14-4c89-8068-a6dd86bb69da", + "mbid": null, + "name": "CoRecursive: Coding Stories", + "creation_date": "2020-10-13T15:06:49.507463Z", + "modification_date": "2022-09-02T10:00:02Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "The stories and people behind the code. Hear stories of software development from interesting people.", + "content_type": "text/plain", + "html": "<p>The stories and people behind the code. Hear stories of software development from interesting people.</p>" + }, + "attachment_cover": { + "uuid": "e9fcaa1b-6d1a-4779-8708-f7690907cc28", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T22:01:47.612270Z", + "urls": { + "source": "https://ssl-static.libsyn.com/p/assets/d/7/a/5/d7a5a500931246e3/Coding_Stories.png", + "original": "https://tanukitunes.com/api/v1/attachments/e9fcaa1b-6d1a-4779-8708-f7690907cc28/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/e9fcaa1b-6d1a-4779-8708-f7690907cc28/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/e9fcaa1b-6d1a-4779-8708-f7690907cc28/proxy?next=large_square_crop" + } + }, + "channel": 141 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-10-13T15:06:49.534264Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "", + "owner_name": null, + "owner_email": "Adam@corecursive.com", + "itunes_category": "News", + "itunes_subcategory": "Tech News" + }, + "rss_url": "https://corecursive.com/feed", + "url": "http://corecursive.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/c58ff234-fc30-46a3-bf2f-1e3a430b0067", + "uuid": "c58ff234-fc30-46a3-bf2f-1e3a430b0067", + "creation_date": "2020-10-13T15:05:59.420236Z", + "channel": { + "uuid": "1e7493a5-da60-4cbf-a563-741e0d6b5fdc", + "artist": { + "id": 9676, + "fid": "https://tanukitunes.com/federation/music/artists/fe967a52-1f1f-4171-ba16-279da54bea2a", + "mbid": null, + "name": "CppCast", + "creation_date": "2020-10-13T15:05:51.583526Z", + "modification_date": "2022-05-12T00:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": null, + "attachment_cover": { + "uuid": "bd90c630-d408-40d3-8637-4e35f2fd02dd", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T21:00:06.501107Z", + "urls": { + "source": "../img/logo-square.png", + "original": "https://tanukitunes.com/api/v1/attachments/bd90c630-d408-40d3-8637-4e35f2fd02dd/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/bd90c630-d408-40d3-8637-4e35f2fd02dd/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/bd90c630-d408-40d3-8637-4e35f2fd02dd/proxy?next=large_square_crop" + } + }, + "channel": 139 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-10-13T15:05:51.597954Z", + "metadata": { + "explicit": false, + "language": "en-us", + "copyright": "", + "owner_name": null, + "owner_email": null, + "itunes_category": null, + "itunes_subcategory": null + }, + "rss_url": "https://cppcast.com/episode/index.xml", + "url": "https://cppcast.com/", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/5b9aeadf-bd6b-46f3-8d52-f99be3818113", + "uuid": "5b9aeadf-bd6b-46f3-8d52-f99be3818113", + "creation_date": "2020-10-13T14:59:49.164284Z", + "channel": { + "uuid": "8bd7b832-ab8c-4001-be0d-52c51eb910e5", + "artist": { + "id": 9674, + "fid": "https://tanukitunes.com/federation/music/artists/766e1251-075d-46cd-968e-e4699467c7e3", + "mbid": null, + "name": "Maintainable", + "creation_date": "2020-10-13T14:59:46.629958Z", + "modification_date": "2022-09-19T07:05:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Feel like you’re hitting a wall with your existing software projects? You're not alone. On the Maintainable software podcast, we speak with seasoned practitioners who have worked past the problems often associated with technical debt and legacy code.\n\nIn each episode, our guests will share stories and outline tangible, real-world approaches to software challenges. In turn, you'll uncover new ways of thinking about how to improve your software project's maintainability. We're in this together. Enjoy the show!", + "content_type": "text/plain", + "html": "<p>Feel like you’re hitting a wall with your existing software projects? You're not alone. On the Maintainable software podcast, we speak with seasoned practitioners who have worked past the problems often associated with technical debt and legacy code.</p><p>In each episode, our guests will share stories and outline tangible, real-world approaches to software challenges. In turn, you'll uncover new ways of thinking about how to improve your software project's maintainability. We're in this together. Enjoy the show!</p>" + }, + "attachment_cover": { + "uuid": "f3b56200-c4b9-44be-8e3a-a08ba0a72c51", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:03:15.367954Z", + "urls": { + "source": "https://image.simplecastcdn.com/images/d4c323fd-afaa-4b98-9a29-0b4c80b447b9/b878e177-a030-42aa-8e43-31f7f24c91cd/3000x3000/maintainable-curl.jpg?aid=rss_feed", + "original": "https://tanukitunes.com/api/v1/attachments/f3b56200-c4b9-44be-8e3a-a08ba0a72c51/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/f3b56200-c4b9-44be-8e3a-a08ba0a72c51/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/f3b56200-c4b9-44be-8e3a-a08ba0a72c51/proxy?next=large_square_crop" + } + }, + "channel": 137 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-10-13T14:59:46.670958Z", + "metadata": { + "explicit": true, + "language": "en-us", + "copyright": "© 2022 Maintainable Software Podcast", + "owner_name": "Robby Russell", + "owner_email": "hello@maintainable.fm", + "itunes_category": "Technology", + "itunes_subcategory": "Careers" + }, + "rss_url": "https://feeds.simplecast.com/7y1CbAbN", + "url": "https://maintainable.fm", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/2ae8f2ea-52fd-494a-a6d3-a842f35e91aa", + "uuid": "2ae8f2ea-52fd-494a-a6d3-a842f35e91aa", + "creation_date": "2020-05-07T17:11:28.968188Z", + "channel": { + "uuid": "246ea982-5b71-448c-bdc6-029532468e63", + "artist": { + "id": 8502, + "fid": "https://tanukitunes.com/federation/music/artists/4f40f207-be7e-423d-b9e3-989ef3a5b0f5", + "mbid": null, + "name": "Sardonicast", + "creation_date": "2020-05-07T17:11:26.992143Z", + "modification_date": "2022-09-19T15:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "We're Sardonicast! A podcast featuring the \"talents\" of Ralph (RalphTheMovieMaker), Alex (I Hate Everything) and Adam (Your Movie Sucks).", + "content_type": "text/plain", + "html": "<p>We're Sardonicast! A podcast featuring the \"talents\" of Ralph (RalphTheMovieMaker), Alex (I Hate Everything) and Adam (Your Movie Sucks).</p>" + }, + "attachment_cover": { + "uuid": "3b99a48c-6eda-4ec7-886c-383cabb9134e", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:27.686020Z", + "urls": { + "source": "https://assets.fireside.fm/file/fireside-images/podcasts/images/7/7c9512b1-32b3-422f-896d-79c339c5f99b/cover.jpg?v=2", + "original": "https://tanukitunes.com/api/v1/attachments/3b99a48c-6eda-4ec7-886c-383cabb9134e/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/3b99a48c-6eda-4ec7-886c-383cabb9134e/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/3b99a48c-6eda-4ec7-886c-383cabb9134e/proxy?next=large_square_crop" + } + }, + "channel": 77 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-05-07T17:11:27.030347Z", + "metadata": { + "explicit": true, + "language": "en-us", + "copyright": "© 2022 Sardonicast", + "owner_name": "Sardonicast", + "owner_email": "sardonicast@gmail.com", + "itunes_category": "Arts", + "itunes_subcategory": null + }, + "rss_url": "https://feeds.fireside.fm/sardonicast/rss", + "url": "https://sardonicast.fireside.fm", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/f6a2583e-6450-4548-a5c9-77b6471d0985", + "uuid": "f6a2583e-6450-4548-a5c9-77b6471d0985", + "creation_date": "2020-05-07T06:29:34.876304Z", + "channel": { + "uuid": "def87c0c-d489-4011-8970-6a0174531a5b", + "artist": { + "id": 8500, + "fid": "https://tanukitunes.com/federation/music/artists/186f6132-dfc0-4e1e-a16d-c5ba719a9223", + "mbid": null, + "name": "The Verdict Podcast", + "creation_date": "2020-05-07T06:29:34.782893Z", + "modification_date": "2020-05-07T06:29:34.782993Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "A look under the hood of the tech industry from the Verdict.co.uk team. Not a Ted Cruz podcast.", + "content_type": "text/plain", + "html": "<p>A look under the hood of the tech industry from the <a href=\"http://Verdict.co.uk\">Verdict.co.uk</a> team. Not a Ted Cruz podcast.</p>" + }, + "attachment_cover": { + "uuid": "022fa6c4-af0f-4ef7-aeb3-148c4d8d59ee", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:01:55.783064Z", + "urls": { + "source": "https://pbcdn1.podbean.com/imglogo/image-logo/7251569/verdict-podcast.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/022fa6c4-af0f-4ef7-aeb3-148c4d8d59ee/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/022fa6c4-af0f-4ef7-aeb3-148c4d8d59ee/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/022fa6c4-af0f-4ef7-aeb3-148c4d8d59ee/proxy?next=large_square_crop" + } + }, + "channel": 75 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-05-07T06:29:34.820689Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "Copyright 2020 All rights reserved.", + "owner_name": "verdictuk", + "owner_email": "lucy.ingham@pmgoperations.com", + "itunes_category": "Technology", + "itunes_subcategory": null + }, + "rss_url": "https://feed.podbean.com/verdictuk/feed.xml", + "url": "https://verdictuk.podbean.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/3cfada57-e085-4b14-9f92-b73dd82afeaf", + "uuid": "3cfada57-e085-4b14-9f92-b73dd82afeaf", + "creation_date": "2020-05-04T16:46:29.537104Z", + "channel": { + "uuid": "be1d5f7a-6e8b-436a-9d8b-7fd72b5152d6", + "artist": { + "id": 8498, + "fid": "https://tanukitunes.com/federation/music/artists/0cc314ca-7375-4214-9680-451cfb3a9a23", + "mbid": null, + "name": "Backlisted", + "creation_date": "2020-05-04T16:46:26.212234Z", + "modification_date": "2022-09-20T00:01:04Z", + "is_local": true, + "content_category": "podcast", + "description": null, + "attachment_cover": { + "uuid": "39c87682-4e13-417c-acd3-294f599999db", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-25T00:05:08.480405Z", + "urls": { + "source": "https://i1.sndcdn.com/avatars-000190919571-rmda96-original.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/39c87682-4e13-417c-acd3-294f599999db/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/39c87682-4e13-417c-acd3-294f599999db/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/39c87682-4e13-417c-acd3-294f599999db/proxy?next=large_square_crop" + } + }, + "channel": 74 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-05-04T16:46:26.228289Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "All rights reserved", + "owner_name": "Unbound", + "owner_email": null, + "itunes_category": "Arts", + "itunes_subcategory": null + }, + "rss_url": "http://feeds.soundcloud.com/users/soundcloud:users:13730980/sounds.rss", + "url": "https://www.backlisted.fm/", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/d9a29d12-f1ee-4138-ba7a-4d9b43475ede", + "uuid": "d9a29d12-f1ee-4138-ba7a-4d9b43475ede", + "creation_date": "2020-04-28T17:44:20.395286Z", + "channel": { + "uuid": "9922db70-b064-4c6a-b1f3-b9be878b3b4c", + "artist": { + "id": 8476, + "fid": "https://tanukitunes.com/federation/music/artists/99a7ae8f-4627-4d9d-a415-940d2bbd7670", + "mbid": null, + "name": "SleepyCabin", + "creation_date": "2020-04-28T17:44:17.572552Z", + "modification_date": "2020-04-28T17:44:17.572657Z", + "is_local": true, + "content_category": "podcast", + "description": null, + "attachment_cover": { + "uuid": "adcd1faf-0ebc-4bf0-9a37-3f431a131429", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-25T00:05:15.990768Z", + "urls": { + "source": "https://i1.sndcdn.com/avatars-000104482354-x2dmxw-original.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/adcd1faf-0ebc-4bf0-9a37-3f431a131429/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/adcd1faf-0ebc-4bf0-9a37-3f431a131429/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/adcd1faf-0ebc-4bf0-9a37-3f431a131429/proxy?next=large_square_crop" + } + }, + "channel": 59 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-28T17:44:17.595549Z", + "metadata": { + "explicit": true, + "language": "en", + "copyright": "All rights reserved", + "owner_name": "SleepyCabin", + "owner_email": null, + "itunes_category": "Comedy", + "itunes_subcategory": null + }, + "rss_url": "http://feeds.soundcloud.com/users/soundcloud:users:108438041/sounds.rss", + "url": "http://www.reddit.com/r/SleepyCabin", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/3bc72758-9113-4bfa-9077-bcd1058f89c7", + "uuid": "3bc72758-9113-4bfa-9077-bcd1058f89c7", + "creation_date": "2020-04-11T17:18:26.829431Z", + "channel": { + "uuid": "16d909eb-5f73-4881-a54a-cd81c3902d39", + "artist": { + "id": 7912, + "fid": "https://tanukitunes.com/federation/music/artists/d8b20278-5626-4ca6-8eb7-5223e5623f8d", + "mbid": null, + "name": "MusicalSplaining", + "creation_date": "2020-04-11T17:18:26.604567Z", + "modification_date": "2022-09-13T10:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "A podcast to unite people who love and hate musicals", + "content_type": "text/plain", + "html": "<p>A podcast to unite people who love and hate musicals</p>" + }, + "attachment_cover": { + "uuid": "322da13f-7983-4a0c-a047-619d5b9b9f70", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:49.730761Z", + "urls": { + "source": "https://content.production.cdn.art19.com/images/55/11/15/e2/551115e2-4ef2-4f6b-85c0-5e874a537ce8/65496b7c7754719901cea10130c741d33286b7ecb41a4f370259003066a9840837f72aeaa6a25df99ffc79cc322f6b32b8fde944e196ef83aff78c7deb25a40c.jpeg", + "original": "https://tanukitunes.com/api/v1/attachments/322da13f-7983-4a0c-a047-619d5b9b9f70/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/322da13f-7983-4a0c-a047-619d5b9b9f70/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/322da13f-7983-4a0c-a047-619d5b9b9f70/proxy?next=large_square_crop" + } + }, + "channel": 39 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-11T17:18:26.631220Z", + "metadata": { + "explicit": false, + "language": "en", + "copyright": "© ©musicalsplaining 2022", + "owner_name": "Lindsay Ellis and Kaveh Taherian", + "owner_email": "musicalsplaining@standard.tv", + "itunes_category": "Music", + "itunes_subcategory": null + }, + "rss_url": "https://musicalsplaining.libsyn.com/rss", + "url": "https://art19.com/shows/musicalsplaining", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/cdb6f43f-ba5f-4c68-9712-1eae06b6d3e6", + "uuid": "cdb6f43f-ba5f-4c68-9712-1eae06b6d3e6", + "creation_date": "2020-04-11T15:16:14.534433Z", + "channel": { + "uuid": "ec1f3330-2304-48fa-a8fe-f5b02d6956a1", + "artist": { + "id": 7911, + "fid": "https://tanukitunes.com/federation/music/artists/4d5d1b83-7f02-4720-9a2f-c15524a0ad43", + "mbid": null, + "name": "Oddity", + "creation_date": "2020-04-11T15:16:13.696142Z", + "modification_date": "2020-04-11T15:16:13.696221Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Oddity: the podcast which explores all things strange and unexplained.", + "content_type": "text/plain", + "html": "<p>Oddity: the podcast which explores all things strange and unexplained.</p>" + }, + "attachment_cover": { + "uuid": "11fe867a-9f4a-41d1-9bf9-0fa82f148b4b", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T22:02:17.659557Z", + "urls": { + "source": "https://images.theabcdn.com/i/29402830.png", + "original": "https://tanukitunes.com/api/v1/attachments/11fe867a-9f4a-41d1-9bf9-0fa82f148b4b/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/11fe867a-9f4a-41d1-9bf9-0fa82f148b4b/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/11fe867a-9f4a-41d1-9bf9-0fa82f148b4b/proxy?next=large_square_crop" + } + }, + "channel": 38 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-11T15:16:13.720599Z", + "metadata": { + "explicit": null, + "language": "en-us", + "copyright": null, + "owner_name": "Oddity", + "owner_email": "rss+4920499-9ac2dfb2b0e93526c14706d96842bed36349cc02@audioboom.com", + "itunes_category": "Society & Culture", + "itunes_subcategory": null + }, + "rss_url": "https://audioboom.com/channels/4920499.rss", + "url": "https://audioboom.com/channel/oddity", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/b1907d2f-210c-4571-95f1-5835c3e62d04", + "uuid": "b1907d2f-210c-4571-95f1-5835c3e62d04", + "creation_date": "2020-04-11T15:12:12.389328Z", + "channel": { + "uuid": "e10016c4-21df-4154-aa3a-b662a6ab36db", + "artist": { + "id": 7910, + "fid": "https://tanukitunes.com/federation/music/artists/29d24347-65e4-44fe-8b55-e70324940ff1", + "mbid": null, + "name": "Uncanny Japan - Japanese Folklore, Folktales, Myths and Language", + "creation_date": "2020-04-11T15:12:10.662066Z", + "modification_date": "2022-09-16T00:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Looking for a podcast on Japan's mysterious culture? Try listening to Bram Stoker Award Finalist and Clarion West 2015 Graduate Thersa Matsuura's Uncanny Japan Podcast and experience all that is weird about Japan—strange superstitions, folktales, cultural oddities, and interesting language quirks—and not found anywhere else!", + "content_type": "text/plain", + "html": "<p>Looking for a podcast on Japan's mysterious culture? Try listening to Bram Stoker Award Finalist and Clarion West 2015 Graduate Thersa Matsuura's Uncanny Japan Podcast and experience all that is weird about Japan—strange superstitions, folktales, cultural oddities, and interesting language quirks—and not found anywhere else!</p>" + }, + "attachment_cover": { + "uuid": "ef5184d2-bb84-40e8-bc53-7ae99f90afa3", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:01:41.561502Z", + "urls": { + "source": "https://ssl-static.libsyn.com/p/assets/b/8/c/9/b8c9b84b8405fe36d959afa2a1bf1c87/UJ_PodcastCover_with_skylark_laurel.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/ef5184d2-bb84-40e8-bc53-7ae99f90afa3/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/ef5184d2-bb84-40e8-bc53-7ae99f90afa3/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/ef5184d2-bb84-40e8-bc53-7ae99f90afa3/proxy?next=large_square_crop" + } + }, + "channel": 37 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-11T15:12:10.692459Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "Copyright ©2022 Uncanny Productions", + "owner_name": null, + "owner_email": "uncannyjapan@gmail.com", + "itunes_category": "Society & Culture", + "itunes_subcategory": "Places & Travel" + }, + "rss_url": "http://uncannyjapan.libsyn.com/rss", + "url": "https://www.uncannyjapan.com/", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/a474e98b-795f-4763-8fb3-a1ea1da96f6a", + "uuid": "a474e98b-795f-4763-8fb3-a1ea1da96f6a", + "creation_date": "2020-04-11T15:07:56.740167Z", + "channel": { + "uuid": "5633b14e-9da3-4db9-9670-137a91afc45d", + "artist": { + "id": 7909, + "fid": "https://tanukitunes.com/federation/music/artists/295cd9c0-36f8-47c4-adbf-3a3b3b63fd60", + "mbid": null, + "name": "The Folklore Podcast", + "creation_date": "2020-04-11T15:07:54.796601Z", + "modification_date": "2022-09-14T12:35:36Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Folklore: Beliefs, traditions & culture of the people. Traditional folklore themes from around the world. One episode each month features a special guest from the field of folklore. Recalling our forgotten history, recording the new. The Folklore Podcast", + "content_type": "text/plain", + "html": "<p>Folklore: Beliefs, traditions & culture of the people. Traditional folklore themes from around the world. One episode each month features a special guest from the field of folklore. Recalling our forgotten history, recording the new. The Folklore Podcast</p>" + }, + "attachment_cover": { + "uuid": "86597da9-987b-4dcd-a250-eac860929b6c", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:39.935975Z", + "urls": { + "source": "https://assets.blubrry.com/coverart/orig/370335-593715.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/86597da9-987b-4dcd-a250-eac860929b6c/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/86597da9-987b-4dcd-a250-eac860929b6c/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/86597da9-987b-4dcd-a250-eac860929b6c/proxy?next=large_square_crop" + } + }, + "channel": 36 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-11T15:07:54.816189Z", + "metadata": { + "explicit": false, + "language": "en", + "copyright": "Copyright 2022 The Folklore Podcast", + "owner_name": "Mark Norman", + "owner_email": null, + "itunes_category": "History", + "itunes_subcategory": "Entertainment News" + }, + "rss_url": "https://feeds.blubrry.com/feeds/thefolklorepodcast.xml", + "url": "https://blubrry.com/thefolklorepodcast/", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/18395521-e363-4dc4-8974-028db6f7edd6", + "uuid": "18395521-e363-4dc4-8974-028db6f7edd6", + "creation_date": "2020-04-10T00:35:20.841161Z", + "channel": { + "uuid": "cbfb0355-f33d-455a-b059-141ddcbad097", + "artist": { + "id": 7849, + "fid": "https://tanukitunes.com/federation/music/artists/131beb6a-19f6-4ba3-a106-3e0d2c40dcef", + "mbid": null, + "name": "Revolutionary Left Radio", + "creation_date": "2020-04-10T00:35:15.314453Z", + "modification_date": "2022-09-23T21:39:06Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Discussing political philosophy, current events, activism, and the inevitable historical downfall of capitalism from a revolutionary leftist perspective.", + "content_type": "text/plain", + "html": "<p>Discussing political philosophy, current events, activism, and the inevitable historical downfall of capitalism from a revolutionary leftist perspective.</p>" + }, + "attachment_cover": { + "uuid": "ebcf51ac-4393-4944-93e3-d4075238f4fd", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:04:44.739649Z", + "urls": { + "source": "https://ssl-static.libsyn.com/p/assets/f/a/6/5/fa65ba5d3762a070/Webp.net-resizeimage.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/ebcf51ac-4393-4944-93e3-d4075238f4fd/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/ebcf51ac-4393-4944-93e3-d4075238f4fd/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/ebcf51ac-4393-4944-93e3-d4075238f4fd/proxy?next=large_square_crop" + } + }, + "channel": 31 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-10T00:35:15.356476Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "", + "owner_name": null, + "owner_email": "therevolutionaryleft@gmail.com", + "itunes_category": "News", + "itunes_subcategory": "Politics" + }, + "rss_url": "http://revolutionaryleftradio.libsyn.com/rss", + "url": "http://revolutionaryleftradio.libsyn.com/website", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/67a34c86-e8b4-4ff1-bcd9-f4edbd633bd9", + "uuid": "67a34c86-e8b4-4ff1-bcd9-f4edbd633bd9", + "creation_date": "2020-04-05T13:50:00.786652Z", + "channel": { + "uuid": "bf6bf974-ac2c-49b0-8545-2289c868e6d1", + "artist": { + "id": 7834, + "fid": "https://tanukitunes.com/federation/music/artists/f9ed7ad9-19e2-43b3-8b1a-7c652c5b5ac6", + "mbid": null, + "name": "Ubuntu Podcast", + "creation_date": "2020-04-05T13:49:58.984224Z", + "modification_date": "2021-09-30T14:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": null, + "attachment_cover": { + "uuid": "373b1aa2-f6c5-41b5-823c-300fb9b23282", + "size": null, + "mimetype": "image/png", + "creation_date": "2022-09-24T22:03:06.643051Z", + "urls": { + "source": "https://ubuntupodcast.org/wp-content/uploads/2015/12/uplogo_388-150x150.png", + "original": "https://tanukitunes.com/api/v1/attachments/373b1aa2-f6c5-41b5-823c-300fb9b23282/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/373b1aa2-f6c5-41b5-823c-300fb9b23282/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/373b1aa2-f6c5-41b5-823c-300fb9b23282/proxy?next=large_square_crop" + } + }, + "channel": 28 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-05T13:49:59.079139Z", + "metadata": { + "explicit": false, + "language": "en-GB", + "copyright": null, + "owner_name": null, + "owner_email": null, + "itunes_category": null, + "itunes_subcategory": null + }, + "rss_url": "https://ubuntupodcast.org/feed/", + "url": "https://ubuntupodcast.org", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/a74db001-d391-4f50-934b-fc50e654dd2f", + "uuid": "a74db001-d391-4f50-934b-fc50e654dd2f", + "creation_date": "2020-04-04T21:40:23.679394Z", + "channel": { + "uuid": "88a6b1d4-ff21-44b8-b117-45d791409bba", + "artist": { + "id": 7721, + "fid": "https://tanukitunes.com/federation/music/artists/ecb4678e-070d-47ad-87ff-4a7c5a36b0cf", + "mbid": null, + "name": "JAR Media Posdact", + "creation_date": "2020-04-04T21:40:21.024876Z", + "modification_date": "2022-09-19T21:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "A podcast about nothing.", + "content_type": "text/plain", + "html": "<p>A podcast about nothing.</p>" + }, + "attachment_cover": { + "uuid": "48c73a73-2e2d-472b-ba35-aac3fee1966e", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:02:04.915807Z", + "urls": { + "source": "https://pbcdn1.podbean.com/imglogo/image-logo/3587499/Podcast_Thumb.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/48c73a73-2e2d-472b-ba35-aac3fee1966e/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/48c73a73-2e2d-472b-ba35-aac3fee1966e/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/48c73a73-2e2d-472b-ba35-aac3fee1966e/proxy?next=large_square_crop" + } + }, + "channel": 27 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-04-04T21:40:21.057494Z", + "metadata": { + "explicit": true, + "language": "en", + "copyright": "", + "owner_name": "JAR Media", + "owner_email": "jarmediaofficial@gmail.com", + "itunes_category": "Comedy", + "itunes_subcategory": null + }, + "rss_url": "https://jarmedia.podbean.com/feed.xml", + "url": "https://jarmedia.podbean.com", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/6d493fd8-0504-4193-8698-abeea2c7f423", + "uuid": "6d493fd8-0504-4193-8698-abeea2c7f423", + "creation_date": "2020-03-23T16:05:38.529346Z", + "channel": { + "uuid": "560c11d9-fd3d-4e5d-a707-ade03e9a49e7", + "artist": { + "id": 7028, + "fid": "https://tanukitunes.com/federation/music/artists/395cbdb0-7c83-4337-af7a-1f44e5c981ea", + "mbid": null, + "name": "The Official Podcast", + "creation_date": "2020-03-23T16:05:29.528316Z", + "modification_date": "2020-08-07T00:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "The Official Podcast is where four international man friends congregate to discuss just about everything. Featuring dumb questions, YouTube celebrities, childish giggling, burger puns, more dumb questions, fatherly advice, bad dating stories, even more dumb questions, and a slew of guest stars, The Official Podcast is a weekly show with a little something for everyone. Jackson, Andrew, Charlie, and Kaya gather to talk about only the most important things in life every Thursday at 8pm EST.", + "content_type": "text/plain", + "html": "<p>The Official Podcast is where four international man friends congregate to discuss just about everything. Featuring dumb questions, YouTube celebrities, childish giggling, burger puns, more dumb questions, fatherly advice, bad dating stories, even more dumb questions, and a slew of guest stars, The Official Podcast is a weekly show with a little something for everyone. Jackson, Andrew, Charlie, and Kaya gather to talk about only the most important things in life every Thursday at 8pm EST.</p>" + }, + "attachment_cover": { + "uuid": "d6b5acaf-f186-492e-8e4a-9dd8ca95adb2", + "size": 220081, + "mimetype": "image/png", + "creation_date": "2020-08-07T04:00:02.178546Z", + "urls": { + "source": "https://d3t3ozftmdmh3i.cloudfront.net/staging/podcast_uploaded_nologo/5900909/0777a89d4d4fe6dc.png", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/7b/ac/24/0777a89d4d4fe6dc.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=86c30597af3a1fed8ac6e4034f4cda4e3053194b237ca60342df7f49fa083d56", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7b/ac/24/0777a89d4d4fe6dc-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=0e922d25256c43463c6d5aaba7a57298b06f5d1070120397841e1410dd60643c", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/7b/ac/24/0777a89d4d4fe6dc-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211041Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=35880461b0e2fdad1094feb105a26553dbce6d8f42b31557beb5a6621cc55c35" + } + }, + "channel": 15 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-03-23T16:05:29.562405Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "The Official Podcast", + "owner_name": "The Official Podcast", + "owner_email": null, + "itunes_category": "Comedy", + "itunes_subcategory": null + }, + "rss_url": "https://feeds.megaphone.fm/TOP7784625980", + "url": "https://cms.megaphone.fm/channel/TOP7784625980", + "downloads_count": 0 + } + }, + { + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/e65c46ef-ed7f-43d5-8cff-82c4c3276d03", + "uuid": "e65c46ef-ed7f-43d5-8cff-82c4c3276d03", + "creation_date": "2020-03-13T13:41:32.556729Z", + "channel": { + "uuid": "447f0d7f-62f7-4455-93c9-afdaaae0bbea", + "artist": { + "id": 7023, + "fid": "https://tanukitunes.com/federation/music/artists/e298c322-78b2-40bf-97fe-18acec3818b6", + "mbid": null, + "name": "Welcome to Night Vale", + "creation_date": "2020-03-13T13:41:22.034933Z", + "modification_date": "2022-09-15T04:00:00Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "Twice-monthly community updates for the small desert town of Night Vale, where every conspiracy theory is true. Turn on your radio and hide. Never listened before? It's an ongoing radio show. Start with the current episode, and you'll catch on in no time. Or, go right to Episode 1 if you wanna binge-listen.", + "content_type": "text/plain", + "html": "<p>Twice-monthly community updates for the small desert town of Night Vale, where every conspiracy theory is true. Turn on your radio and hide. Never listened before? It's an ongoing radio show. Start with the current episode, and you'll catch on in no time. Or, go right to Episode 1 if you wanna binge-listen.</p>" + }, + "attachment_cover": { + "uuid": "804aee99-508a-4ede-b388-d431d8ac5039", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2022-09-25T04:06:26.886540Z", + "urls": { + "source": "https://f.prxu.org/126/images/1f749c5d-c83a-4db9-8112-a3245da49c54/nightvalelogo-web4.jpg", + "original": "https://tanukitunes.com/api/v1/attachments/804aee99-508a-4ede-b388-d431d8ac5039/proxy?next=original", + "medium_square_crop": "https://tanukitunes.com/api/v1/attachments/804aee99-508a-4ede-b388-d431d8ac5039/proxy?next=medium_square_crop", + "large_square_crop": "https://tanukitunes.com/api/v1/attachments/804aee99-508a-4ede-b388-d431d8ac5039/proxy?next=large_square_crop" + } + }, + "channel": 11 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2020-03-13T13:41:22.085151Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "2016, Night Vale Presents", + "owner_name": null, + "owner_email": "info@welcometonightvale.com", + "itunes_category": "Fiction", + "itunes_subcategory": "Science Fiction" + }, + "rss_url": "http://feeds.nightvalepresents.com/welcometonightvalepodcast", + "url": "http://welcometonightvale.com", + "downloads_count": 0 + } + } + ] +} \ No newline at end of file diff --git a/tests/data/subscriptions/subscription.json b/tests/data/subscriptions/subscription.json new file mode 100644 index 0000000000000000000000000000000000000000..4b045ae088bfa8f08e41f80b39a904e5acacd8cf --- /dev/null +++ b/tests/data/subscriptions/subscription.json @@ -0,0 +1,65 @@ +{ + "approved": true, + "fid": "https://tanukitunes.com/federation/actors/doctorworm#follows/c3df71ed-405a-4732-83f8-4f39ba030b7a", + "uuid": "c3df71ed-405a-4732-83f8-4f39ba030b7a", + "creation_date": "2022-08-31T15:06:44.932164Z", + "channel": { + "uuid": "a80c05f8-9332-4aa2-8231-2d91b285a4fa", + "artist": { + "id": 12984, + "fid": "https://tanukitunes.com/federation/music/artists/a2c51eec-77dd-493c-b57a-d3a271aaa78a", + "mbid": null, + "name": "Serious Trouble", + "creation_date": "2022-07-29T00:23:42.590992Z", + "modification_date": "2022-09-22T20:30:24Z", + "is_local": true, + "content_category": "podcast", + "description": { + "text": "An irreverent podcast about the law from Josh Barro and Ken White.", + "content_type": "text/plain", + "html": "<p>An irreverent podcast about the law from Josh Barro and Ken White.</p>" + }, + "attachment_cover": { + "uuid": "a46a941b-535d-45cc-8fde-2f96f05974b2", + "size": 48579, + "mimetype": "image/jpeg", + "creation_date": "2022-09-24T22:04:35.189115Z", + "urls": { + "source": "https://substackcdn.com/feed/podcast/906465/8304b8163a0aee7dba424b4492ff198e.jpg", + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/57/37/39/8304b8163a0aee7dba424b4492ff198e.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211113Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=63b9ab340444ef485575003c5b39aec5becf017e4e291a50d06e6418d14ecf14", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/57/37/39/8304b8163a0aee7dba424b4492ff198e-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211113Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=df5530164b636c8eaac14381ffad0a783a34731ddb4b7a8d92743251bb0142ce", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/57/37/39/8304b8163a0aee7dba424b4492ff198e-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T211113Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e3e72ff52b7be1bb79c427d02d4afc7b2d83b65ee0c00503800bb2c91eb78d71" + } + }, + "channel": 536 + }, + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/service", + "url": null, + "creation_date": "2019-05-02T15:00:01Z", + "summary": null, + "preferred_username": "service", + "name": "service", + "last_fetch_date": "2019-05-02T15:00:01Z", + "domain": "tanukitunes.com", + "type": "Service", + "manually_approves_followers": false, + "full_username": "service@tanukitunes.com", + "is_local": true + }, + "actor": null, + "creation_date": "2022-07-29T00:23:42.618855Z", + "metadata": { + "explicit": null, + "language": "en", + "copyright": "Very Serious Media", + "owner_name": "Josh Barro and Ken White", + "owner_email": null, + "itunes_category": "News", + "itunes_subcategory": "News Commentary" + }, + "rss_url": "https://api.substack.com/feed/podcast/906465.rss", + "url": "https://www.serioustrouble.show/podcast", + "downloads_count": 0 + } +} \ No newline at end of file diff --git a/tests/data/subscriptions/subscription_all.json b/tests/data/subscriptions/subscription_all.json new file mode 100644 index 0000000000000000000000000000000000000000..74a8c2badd4fb948ebde68cff4bd834600ea07e9 --- /dev/null +++ b/tests/data/subscriptions/subscription_all.json @@ -0,0 +1,121 @@ +{ + "results": [ + { + "uuid": "c3df71ed-405a-4732-83f8-4f39ba030b7a", + "channel": "a80c05f8-9332-4aa2-8231-2d91b285a4fa" + }, + { + "uuid": "9d6fa807-c871-4896-8c58-5dc57add7fc3", + "channel": "ec694a63-0039-4d9f-be17-6b30b70e78a8" + }, + { + "uuid": "9d00123f-2253-4732-b9dc-4ad6937cecd9", + "channel": "6a295796-7203-45d5-8595-dd7de42fabe1" + }, + { + "uuid": "41af6b63-c4eb-444e-9878-2868d3f3e185", + "channel": "ef1d2c18-89a1-4a34-992c-c34b211a694c" + }, + { + "uuid": "1f21b828-98ad-4e5a-a6e1-b715e9523809", + "channel": "d15eb928-6b81-48e9-b743-4982a5ca7ead" + }, + { + "uuid": "f64b4cfa-cc33-492e-90c0-d486bf055379", + "channel": "1ff2c20f-7931-4c94-987a-3a2da3ac9589" + }, + { + "uuid": "517b75e7-7839-416e-a923-a0cf524c632f", + "channel": "812ad918-2dce-4088-92a5-c34f6bd650df" + }, + { + "uuid": "5e8c7b6e-a0a6-445b-bf59-f72e4b08a59c", + "channel": "085f7c0d-f30f-4f31-b67b-8bc0b507f1fa" + }, + { + "uuid": "b99bd9af-86c3-4306-9452-defb08762d42", + "channel": "cb9f3cdd-33d5-4fb9-a174-1740ee288394" + }, + { + "uuid": "989a0969-35c9-4abc-8bc0-39235c616d7c", + "channel": "251b5018-ae8c-4ef2-b5e9-d5658667ce97" + }, + { + "uuid": "da4c5176-239f-45a0-95ef-041eaadb1095", + "channel": "6bfbdcda-0b17-40b6-b76f-b48251226b19" + }, + { + "uuid": "fa325e9f-af75-4c50-b1e8-830c575cb609", + "channel": "9dda45fd-ec81-4ece-8ed1-d03ac0be7b03" + }, + { + "uuid": "e33486d8-5af6-4529-b8ca-b9caaa5b686c", + "channel": "60419ce5-9297-4693-b19d-15585cfdaa23" + }, + { + "uuid": "a5abd97f-75b5-4d52-97b5-d9feec724bf2", + "channel": "178e77d9-b6b3-4247-916d-5fb5a1f73065" + }, + { + "uuid": "c58ff234-fc30-46a3-bf2f-1e3a430b0067", + "channel": "1e7493a5-da60-4cbf-a563-741e0d6b5fdc" + }, + { + "uuid": "5b9aeadf-bd6b-46f3-8d52-f99be3818113", + "channel": "8bd7b832-ab8c-4001-be0d-52c51eb910e5" + }, + { + "uuid": "2ae8f2ea-52fd-494a-a6d3-a842f35e91aa", + "channel": "246ea982-5b71-448c-bdc6-029532468e63" + }, + { + "uuid": "f6a2583e-6450-4548-a5c9-77b6471d0985", + "channel": "def87c0c-d489-4011-8970-6a0174531a5b" + }, + { + "uuid": "3cfada57-e085-4b14-9f92-b73dd82afeaf", + "channel": "be1d5f7a-6e8b-436a-9d8b-7fd72b5152d6" + }, + { + "uuid": "d9a29d12-f1ee-4138-ba7a-4d9b43475ede", + "channel": "9922db70-b064-4c6a-b1f3-b9be878b3b4c" + }, + { + "uuid": "3bc72758-9113-4bfa-9077-bcd1058f89c7", + "channel": "16d909eb-5f73-4881-a54a-cd81c3902d39" + }, + { + "uuid": "cdb6f43f-ba5f-4c68-9712-1eae06b6d3e6", + "channel": "ec1f3330-2304-48fa-a8fe-f5b02d6956a1" + }, + { + "uuid": "b1907d2f-210c-4571-95f1-5835c3e62d04", + "channel": "e10016c4-21df-4154-aa3a-b662a6ab36db" + }, + { + "uuid": "a474e98b-795f-4763-8fb3-a1ea1da96f6a", + "channel": "5633b14e-9da3-4db9-9670-137a91afc45d" + }, + { + "uuid": "18395521-e363-4dc4-8974-028db6f7edd6", + "channel": "cbfb0355-f33d-455a-b059-141ddcbad097" + }, + { + "uuid": "67a34c86-e8b4-4ff1-bcd9-f4edbd633bd9", + "channel": "bf6bf974-ac2c-49b0-8545-2289c868e6d1" + }, + { + "uuid": "a74db001-d391-4f50-934b-fc50e654dd2f", + "channel": "88a6b1d4-ff21-44b8-b117-45d791409bba" + }, + { + "uuid": "6d493fd8-0504-4193-8698-abeea2c7f423", + "channel": "560c11d9-fd3d-4e5d-a707-ade03e9a49e7" + }, + { + "uuid": "e65c46ef-ed7f-43d5-8cff-82c4c3276d03", + "channel": "447f0d7f-62f7-4455-93c9-afdaaae0bbea" + } + ], + "count": 29 +} \ No newline at end of file diff --git a/tests/data/tags/paginated_tag_list.json b/tests/data/tags/paginated_tag_list.json new file mode 100644 index 0000000000000000000000000000000000000000..6b437ecdc0e2525f8190557d67f8034c617768c1 --- /dev/null +++ b/tests/data/tags/paginated_tag_list.json @@ -0,0 +1,207 @@ +{ + "count": 1869, + "next": "https://soundship.de/api/v1/tags?page=2", + "previous": null, + "results": [ + { + "name": "1", + "creation_date": "2020-12-12T15:59:46.074364Z" + }, + { + "name": "1939", + "creation_date": "2020-06-10T10:21:12.408094Z" + }, + { + "name": "1Komma5", + "creation_date": "2022-04-17T01:13:22.068342Z" + }, + { + "name": "2016", + "creation_date": "2022-06-02T13:05:19.492487Z" + }, + { + "name": "2020", + "creation_date": "2020-05-10T12:12:20.024327Z" + }, + { + "name": "365DaysProject", + "creation_date": "2021-03-11T05:52:08.292900Z" + }, + { + "name": "3D", + "creation_date": "2021-03-22T09:03:02.295827Z" + }, + { + "name": "5", + "creation_date": "2020-12-12T15:59:46.074751Z" + }, + { + "name": "5g", + "creation_date": "2020-12-15T14:00:30.791654Z" + }, + { + "name": "80s", + "creation_date": "2020-05-08T16:46:21.343829Z" + }, + { + "name": "811143", + "creation_date": "2020-11-08T15:00:49.757279Z" + }, + { + "name": "8bit", + "creation_date": "2020-05-08T16:12:33.355486Z" + }, + { + "name": "8BITELECTRO", + "creation_date": "2020-05-08T16:24:05.180031Z" + }, + { + "name": "8BITELECTRODANCE", + "creation_date": "2020-05-08T16:24:05.213845Z" + }, + { + "name": "9B", + "creation_date": "2020-10-20T20:30:22.331386Z" + }, + { + "name": "9C", + "creation_date": "2020-10-20T20:42:36.456187Z" + }, + { + "name": "A", + "creation_date": "2020-09-21T07:27:48.788500Z" + }, + { + "name": "A20", + "creation_date": "2021-07-14T15:23:27.659510Z" + }, + { + "name": "A49", + "creation_date": "2020-08-27T10:42:48.723692Z" + }, + { + "name": "Abend", + "creation_date": "2021-02-05T12:58:46.878776Z" + }, + { + "name": "Abenteuer", + "creation_date": "2021-08-23T02:30:37.126269Z" + }, + { + "name": "abitur", + "creation_date": "2020-05-18T17:33:23.739232Z" + }, + { + "name": "Ableismus", + "creation_date": "2021-01-02T16:41:34.067291Z" + }, + { + "name": "abm", + "creation_date": "2020-05-08T16:09:32.643982Z" + }, + { + "name": "Abstract", + "creation_date": "2020-05-08T16:13:00.097692Z" + }, + { + "name": "ACappella", + "creation_date": "2021-11-01T15:47:26.656334Z" + }, + { + "name": "acf", + "creation_date": "2020-12-16T15:49:18.211413Z" + }, + { + "name": "achtsamkeit", + "creation_date": "2020-08-13T18:00:00.839590Z" + }, + { + "name": "Acid", + "creation_date": "2020-05-08T16:20:03.566712Z" + }, + { + "name": "AcidHouse", + "creation_date": "2020-05-08T16:51:21.537219Z" + }, + { + "name": "AcidJazz", + "creation_date": "2021-03-02T12:03:39.968807Z" + }, + { + "name": "AcidPunk", + "creation_date": "2020-05-08T16:43:39.401616Z" + }, + { + "name": "AcousicPiano", + "creation_date": "2020-05-08T16:22:38.200147Z" + }, + { + "name": "acousmatic", + "creation_date": "2021-08-30T15:57:49.751212Z" + }, + { + "name": "Acoustic", + "creation_date": "2020-05-08T16:08:21.539470Z" + }, + { + "name": "AcousticGuitar", + "creation_date": "2020-05-08T16:53:13.452245Z" + }, + { + "name": "AcousticJazz", + "creation_date": "2020-05-08T16:32:07.019658Z" + }, + { + "name": "AcousticMusic", + "creation_date": "2021-03-02T11:34:48.005313Z" + }, + { + "name": "AcousticPiano", + "creation_date": "2020-05-08T16:22:38.115020Z" + }, + { + "name": "AcousticReaggae", + "creation_date": "2020-05-08T16:25:30.270039Z" + }, + { + "name": "ActionAdventureGame", + "creation_date": "2022-09-03T02:29:22.045657Z" + }, + { + "name": "ActionRolePlayingGame", + "creation_date": "2022-05-06T10:53:32.663715Z" + }, + { + "name": "activism", + "creation_date": "2021-06-17T11:58:20.744881Z" + }, + { + "name": "actualités", + "creation_date": "2021-09-25T22:51:51.126594Z" + }, + { + "name": "acústico", + "creation_date": "2022-02-16T22:37:41.864159Z" + }, + { + "name": "Adamczak", + "creation_date": "2020-08-04T08:42:45.657396Z" + }, + { + "name": "adaptations", + "creation_date": "2020-12-29T10:47:10.660112Z" + }, + { + "name": "ads", + "creation_date": "2021-03-27T04:15:20.054661Z" + }, + { + "name": "adventure", + "creation_date": "2021-08-23T02:30:37.125898Z" + }, + { + "name": "AdventureGame", + "creation_date": "2022-04-02T16:53:27.793463Z" + } + ] +} \ No newline at end of file diff --git a/tests/data/tags/tag.json b/tests/data/tags/tag.json new file mode 100644 index 0000000000000000000000000000000000000000..dcd70ed9e59709f8bba567dfe4c713d1fe35e73f --- /dev/null +++ b/tests/data/tags/tag.json @@ -0,0 +1,4 @@ +{ + "name": "Rock", + "creation_date": "2020-05-07T10:05:24.310601Z" +} \ No newline at end of file diff --git a/tests/data/tracks/paginated_track_list.json b/tests/data/tracks/paginated_track_list.json new file mode 100644 index 0000000000000000000000000000000000000000..b28e99db472a4e3e30bc433b753260f6862b03d5 --- /dev/null +++ b/tests/data/tracks/paginated_track_list.json @@ -0,0 +1,4061 @@ +{ + "count": 83766, + "next": "https://soundship.de/api/v1/tracks?page=2", + "previous": null, + "results": [ + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/0ee4b76c-0cdd-4b61-ae5b-aeb874800ee8/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160872, + "fid": "https://soundship.de/federation/music/tracks/0ee4b76c-0cdd-4b61-ae5b-aeb874800ee8", + "mbid": "8c44420f-03fe-4b41-a92d-35a4ef3449e9", + "title": "Azoy Tanztmen", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:55:00.826635Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/389ff6f2-856b-4c1d-b29f-1341d1eddbc7/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160871, + "fid": "https://soundship.de/federation/music/tracks/389ff6f2-856b-4c1d-b29f-1341d1eddbc7", + "mbid": "5daf1abf-b94d-4daa-9747-d90f8333667c", + "title": "Divinity", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:54:44.916009Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/571eab8d-110c-456c-a532-deaf6df97dbe/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160870, + "fid": "https://soundship.de/federation/music/tracks/571eab8d-110c-456c-a532-deaf6df97dbe", + "mbid": "4f2338b5-4a43-446a-92a6-7d285c186c26", + "title": "Andy's Ride", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:54:09.385906Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/75f54fa8-0572-4703-84b2-b758ae8820a3/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160869, + "fid": "https://soundship.de/federation/music/tracks/75f54fa8-0572-4703-84b2-b758ae8820a3", + "mbid": "957be56b-fd59-4232-b97b-983a8767b072", + "title": "Makedonsko Devojce", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:53:51.501263Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/1e24e3d1-1abb-4bd1-856e-5f15d6e457fe/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160868, + "fid": "https://soundship.de/federation/music/tracks/1e24e3d1-1abb-4bd1-856e-5f15d6e457fe", + "mbid": "076563b3-9a5b-437b-9c58-46192bc55a1b", + "title": "Flight of the Ladybug", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:53:26.739955Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/46f25ff4-568f-461b-aab5-745e1a7c053c/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160867, + "fid": "https://soundship.de/federation/music/tracks/46f25ff4-568f-461b-aab5-745e1a7c053c", + "mbid": "bee8b1f1-3958-49aa-9bfe-1f93399f8ccc", + "title": "Wedding Waltz", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:53:22.632030Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/7cd558bd-4701-42b2-bd49-e07661e1dd9b/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160866, + "fid": "https://soundship.de/federation/music/tracks/7cd558bd-4701-42b2-bd49-e07661e1dd9b", + "mbid": "83db513e-d833-487d-9489-b6efed39945b", + "title": "Angry Bird's Wedding", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:52:25.922476Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a9f555a5-6cd0-4d9e-b6e7-f582d339ec3c/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160865, + "fid": "https://soundship.de/federation/music/tracks/a9f555a5-6cd0-4d9e-b6e7-f582d339ec3c", + "mbid": "cde07de2-ca36-4f36-83aa-92bd1f631619", + "title": "Itamar Freilach", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:52:08.718267Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e3873d4a-dbc3-4d5f-99a0-3495f4da8763/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160864, + "fid": "https://soundship.de/federation/music/tracks/e3873d4a-dbc3-4d5f-99a0-3495f4da8763", + "mbid": "72373e56-1e50-4241-ad6c-da76db545f3c", + "title": "Asturias", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:51:46.926429Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b1dc44d5-5aac-4469-9345-78bdeda72761/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160863, + "fid": "https://soundship.de/federation/music/tracks/b1dc44d5-5aac-4469-9345-78bdeda72761", + "mbid": "2aee414e-cd1d-4b0a-9c42-5f5e50f7e732", + "title": "Di Zilberne Chassene", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:51:30.298727Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/86da8527-dc1e-4ab8-adfd-33e333de6b4e/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160862, + "fid": "https://soundship.de/federation/music/tracks/86da8527-dc1e-4ab8-adfd-33e333de6b4e", + "mbid": "2e5d5eba-667a-4f1a-96da-222b177cab1e", + "title": "Reb Motenju", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:51:19.502259Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ee59e2d51555cf45e8c113a1e2fcc1bccfc7ef8c703a71200d973a9cb2335045", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f1f3dc2e66e36d2234539c1288dfed4bf5f49c992eb8ba536d4759e5910a6333", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133156Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=ac3b74158359e30bc5080402cb83c177b496c345469b4c31218d6cc0b98f266d" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/c1ef33be-f432-424c-bca7-16057d56b610/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160861, + "fid": "https://soundship.de/federation/music/tracks/c1ef33be-f432-424c-bca7-16057d56b610", + "mbid": "c1be6e31-8e0a-4bd4-8d6d-51ff78bebfe4", + "title": "Rayman Legends", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:50:55.149242Z", + "is_local": true, + "position": 12, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5f87c5398d29f1f66ef0aed8ae89dc66d15cc6745cd669271bbad127d75e1042", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=16fbce3a271cd697934c963c69e8424eb638627e1b718d95bba058687274f733", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1c217ab683e1d8ce98b8d093b7e2e76bca3f92b84544d403ecbe6e23e414981" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/d136fd4f-166e-40f0-b8f7-58b3a3152b54/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160860, + "fid": "https://soundship.de/federation/music/tracks/d136fd4f-166e-40f0-b8f7-58b3a3152b54", + "mbid": "385a69ed-4db9-4712-90d4-cb6f4a980a64", + "title": "Klezmer's Freilach", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:50:40.031591Z", + "is_local": true, + "position": 13, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5f87c5398d29f1f66ef0aed8ae89dc66d15cc6745cd669271bbad127d75e1042", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=16fbce3a271cd697934c963c69e8424eb638627e1b718d95bba058687274f733", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1c217ab683e1d8ce98b8d093b7e2e76bca3f92b84544d403ecbe6e23e414981" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/fd0fe963-99f0-420c-9001-0a07d5388038/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160859, + "fid": "https://soundship.de/federation/music/tracks/fd0fe963-99f0-420c-9001-0a07d5388038", + "mbid": "caec11c5-4ed2-4a8e-8d9b-779336221814", + "title": "The Secret of Monkey Island Bonus", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:50:19.546089Z", + "is_local": true, + "position": 14, + "disc_number": 1, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8550, + "fid": "https://soundship.de/federation/music/albums/17c04f0c-10d4-4799-a776-002ff00c176a", + "mbid": "97ddeabb-af27-4f32-8428-62fb2b5a605d", + "title": "klezWerk n°1", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-09-19", + "cover": { + "uuid": "736d85a8-785b-4d5a-95d5-96a021d2afc8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T11:49:48.553552Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5f87c5398d29f1f66ef0aed8ae89dc66d15cc6745cd669271bbad127d75e1042", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=16fbce3a271cd697934c963c69e8424eb638627e1b718d95bba058687274f733", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/d4/7e/9e/attachment_cover-17c04f0c-10d4-4799-a776-002ff00c176a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c1c217ab683e1d8ce98b8d093b7e2e76bca3f92b84544d403ecbe6e23e414981" + } + }, + "creation_date": "2022-09-23T11:49:48.540064Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/afcd5edd-16fd-4c2c-a71b-19d3a474e81a/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160858, + "fid": "https://soundship.de/federation/music/tracks/afcd5edd-16fd-4c2c-a71b-19d3a474e81a", + "mbid": "a0a89b42-13e5-4bfd-bf53-330ac223b4ee", + "title": "The Happy Nigun Bonus", + "artist": { + "id": 8315, + "fid": "https://soundship.de/federation/music/artists/013e9d08-3647-47c6-95b3-89e3c326495a", + "mbid": "a2b7caae-45ae-41cf-bd73-480e19741892", + "name": "Klezwerk", + "creation_date": "2022-09-23T11:49:48.514365Z", + "modification_date": "2022-09-23T11:49:48.514830Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T11:49:50.453275Z", + "is_local": true, + "position": 15, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/825dbb39-2aee-47be-8e55-43cd00d35920/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160857, + "fid": "https://soundship.de/federation/music/tracks/825dbb39-2aee-47be-8e55-43cd00d35920", + "mbid": null, + "title": "Azoy Tanztmen", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:15:32.219588Z", + "is_local": true, + "position": 1, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4132a820-f9f9-4cfd-bf7b-456b16884597/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160856, + "fid": "https://soundship.de/federation/music/tracks/4132a820-f9f9-4cfd-bf7b-456b16884597", + "mbid": null, + "title": "Divinity", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:15:14.606528Z", + "is_local": true, + "position": 2, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4d8ab58e-4c6f-446b-834a-24671f1c552f/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160855, + "fid": "https://soundship.de/federation/music/tracks/4d8ab58e-4c6f-446b-834a-24671f1c552f", + "mbid": null, + "title": "Andy's Ride", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:14:46.237503Z", + "is_local": true, + "position": 3, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a6e4fe96-0074-428e-8fff-6fbe97a61bd0/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160854, + "fid": "https://soundship.de/federation/music/tracks/a6e4fe96-0074-428e-8fff-6fbe97a61bd0", + "mbid": null, + "title": "Makedonsko Devojce", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:14:32.606828Z", + "is_local": true, + "position": 4, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/1bf27388-2105-4854-8408-c925fdd7830a/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160853, + "fid": "https://soundship.de/federation/music/tracks/1bf27388-2105-4854-8408-c925fdd7830a", + "mbid": null, + "title": "Flight of the Ladybug", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:14:06.794754Z", + "is_local": true, + "position": 5, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a5097f6c-1867-47b5-b8b2-61a0c661ff39/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160852, + "fid": "https://soundship.de/federation/music/tracks/a5097f6c-1867-47b5-b8b2-61a0c661ff39", + "mbid": null, + "title": "Wedding Waltz", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:14:03.191948Z", + "is_local": true, + "position": 6, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/d23efae0-492b-437f-a2d2-0f49d3f6f664/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160851, + "fid": "https://soundship.de/federation/music/tracks/d23efae0-492b-437f-a2d2-0f49d3f6f664", + "mbid": null, + "title": "Angry Bird's Wedding", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:12:43.768348Z", + "is_local": true, + "position": 7, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/bb031517-2a3a-40d6-8d43-bf6d4ec235a9/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160850, + "fid": "https://soundship.de/federation/music/tracks/bb031517-2a3a-40d6-8d43-bf6d4ec235a9", + "mbid": null, + "title": "Itamar Freilach", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:11:58.671978Z", + "is_local": true, + "position": 8, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3eda8740-8a2a-4c2b-b9b0-cca315ffb1bd/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160849, + "fid": "https://soundship.de/federation/music/tracks/3eda8740-8a2a-4c2b-b9b0-cca315ffb1bd", + "mbid": null, + "title": "Asturias", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:11:36.339375Z", + "is_local": true, + "position": 9, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/5f7325ba-e41f-4ead-935f-30fd29efd54f/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160848, + "fid": "https://soundship.de/federation/music/tracks/5f7325ba-e41f-4ead-935f-30fd29efd54f", + "mbid": null, + "title": "Di Zilberne Chassene", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:11:18.566143Z", + "is_local": true, + "position": 10, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/0c1ee6b9-3dca-4874-862f-b86bc91b6349/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160847, + "fid": "https://soundship.de/federation/music/tracks/0c1ee6b9-3dca-4874-862f-b86bc91b6349", + "mbid": null, + "title": "Reb Motenju", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:11:07.129265Z", + "is_local": true, + "position": 11, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3a2b83d5-26a5-409c-91ee-642652408b7a/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160846, + "fid": "https://soundship.de/federation/music/tracks/3a2b83d5-26a5-409c-91ee-642652408b7a", + "mbid": null, + "title": "Rayman Legends", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:10:41.637498Z", + "is_local": true, + "position": 12, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/78d79542-4d99-4acc-a3f9-252527281c2d/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160845, + "fid": "https://soundship.de/federation/music/tracks/78d79542-4d99-4acc-a3f9-252527281c2d", + "mbid": null, + "title": "Klezmer's Freilach", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:10:25.050466Z", + "is_local": true, + "position": 13, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/1d485646-d92c-471f-9b8e-574d0106b1c7/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160844, + "fid": "https://soundship.de/federation/music/tracks/1d485646-d92c-471f-9b8e-574d0106b1c7", + "mbid": null, + "title": "The Secret of Monkey Island_Bonus", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:10:01.903203Z", + "is_local": true, + "position": 14, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8549, + "fid": "https://soundship.de/federation/music/albums/b9df7885-cb71-4205-b4b4-120fa4b3595f", + "mbid": null, + "title": "klezWerk n°1", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "release_date": "2022-01-01", + "cover": { + "uuid": "d6f82093-b021-4bf7-b41a-c36963e7eca8", + "size": 228439, + "mimetype": "image/jpeg", + "creation_date": "2022-09-23T06:09:32.069278Z", + "urls": { + "source": null, + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=8e709a8cfeb800d19a278f0cafb954ec7a0e37cd35b216638628c53b28d2e7e8", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e93f2d8a126e9d740072fa5d9734a078a983a60387b1bf1da67a8109b942d342", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/6f/df/69/attachment_cover-b9df7885-cb71-4205-b4b4-120fa4b3595f-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=9146d297229cb4eca13adbb120015aafdc88638272f57537e288b590f28f2d22" + } + }, + "creation_date": "2022-09-23T06:09:32.049042Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/91615bf2-ef95-45d1-80be-0835ec9889e3/", + "tags": [], + "attributed_to": { + "fid": "https://soundship.de/federation/actors/gcrkrause", + "url": "https://soundship.de/@gcrkrause", + "creation_date": "2020-05-06T21:50:06.764553Z", + "summary": null, + "preferred_username": "gcrkrause", + "name": "gcrkrause", + "last_fetch_date": "2021-03-02T11:32:16.414473Z", + "domain": "soundship.de", + "type": "Person", + "manually_approves_followers": false, + "full_username": "gcrkrause@soundship.de", + "is_local": true + }, + "id": 160843, + "fid": "https://soundship.de/federation/music/tracks/91615bf2-ef95-45d1-80be-0835ec9889e3", + "mbid": null, + "title": "The Happy Nigun_Bonus", + "artist": { + "id": 8314, + "fid": "https://soundship.de/federation/music/artists/857cec9f-f005-4b25-8ae2-6e05cbe9b9a1", + "mbid": "None", + "name": "Klezwerk", + "creation_date": "2022-09-23T06:09:32.021091Z", + "modification_date": "2022-09-23T06:09:32.021390Z", + "is_local": true, + "content_category": "music" + }, + "creation_date": "2022-09-23T06:09:34.012435Z", + "is_local": true, + "position": 15, + "disc_number": null, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "d9bf980b-3672-46a2-8c67-2f10c64e3e0a", + "listen_url": "/api/v1/listen/8e3cb310-e4aa-43cc-9abe-c93bded7142f/?upload=d9bf980b-3672-46a2-8c67-2f10c64e3e0a", + "size": 9922064, + "duration": 242, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/8e3cb310-e4aa-43cc-9abe-c93bded7142f/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160804, + "fid": "https://zik.canevas.eu/federation/music/tracks/c6d30c1e-451b-486f-b0de-8c245bd1122c", + "mbid": "46911e8b-3acb-4949-b761-4c98cc6bcb9f", + "title": "Encore from Nagoya", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:12:37.708795Z", + "is_local": false, + "position": 3, + "disc_number": 6, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "937b62c9-ded6-4540-bb6e-db5ed1cb53d2", + "listen_url": "/api/v1/listen/f299f326-ae00-49ae-a336-0668a4b7de6b/?upload=937b62c9-ded6-4540-bb6e-db5ed1cb53d2", + "size": 20397653, + "duration": 502, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/f299f326-ae00-49ae-a336-0668a4b7de6b/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160803, + "fid": "https://zik.canevas.eu/federation/music/tracks/b4d81b62-d7f7-4ec0-8ce5-72d137e556e6", + "mbid": "4852947c-e47e-40b7-8212-19cb646e9f43", + "title": "Encore from Tokyo", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:12:23.548043Z", + "is_local": false, + "position": 2, + "disc_number": 6, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "88ce3748-bf83-441b-bb7b-a1379199e945", + "listen_url": "/api/v1/listen/9e33d96e-67b4-4aa2-9499-1ae61c1c49c9/?upload=88ce3748-bf83-441b-bb7b-a1379199e945", + "size": 26491538, + "duration": 656, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/9e33d96e-67b4-4aa2-9499-1ae61c1c49c9/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160802, + "fid": "https://zik.canevas.eu/federation/music/tracks/cb794670-8823-43f1-9e67-6c3727e3dc92", + "mbid": "64c9245b-a25e-4a39-8708-3c064f403b44", + "title": "Encore from Sapporo", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:12:22.028628Z", + "is_local": false, + "position": 1, + "disc_number": 6, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "5835a654-48ba-4237-ba2c-aca78f5713ba", + "listen_url": "/api/v1/listen/201cbd81-6dac-4806-9022-05f7e8fb5882/?upload=5835a654-48ba-4237-ba2c-aca78f5713ba", + "size": 81698681, + "duration": 2035, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/201cbd81-6dac-4806-9022-05f7e8fb5882/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160801, + "fid": "https://zik.canevas.eu/federation/music/tracks/1a8ccb06-4ac7-44eb-a496-694d6ef89945", + "mbid": "cf2f1ea7-894c-447f-b638-b218f595e2f2", + "title": "Sapporo, November 18, 1976, Part 2", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:12:10.759173Z", + "is_local": false, + "position": 2, + "disc_number": 5, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "825518f6-5e57-426e-940e-c290455a20d0", + "listen_url": "/api/v1/listen/a4ccf64b-fc49-4ff1-9f7b-2093300d3918/?upload=825518f6-5e57-426e-940e-c290455a20d0", + "size": 98880984, + "duration": 2465, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/a4ccf64b-fc49-4ff1-9f7b-2093300d3918/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160800, + "fid": "https://zik.canevas.eu/federation/music/tracks/73fd58ad-ff57-4526-a8bf-fff76aaacc54", + "mbid": "aa4d35f1-6b6e-4640-ac2c-03b0f7d6d115", + "title": "Sapporo, November 18, 1976, Part 1", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:11:31.593340Z", + "is_local": false, + "position": 1, + "disc_number": 5, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "c2bc8ca4-7f83-49ea-8329-6da9a06c696b", + "listen_url": "/api/v1/listen/34b2bbbb-42a5-48c8-a103-0511a48f2692/?upload=c2bc8ca4-7f83-49ea-8329-6da9a06c696b", + "size": 85153114, + "duration": 2121, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/34b2bbbb-42a5-48c8-a103-0511a48f2692/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160799, + "fid": "https://zik.canevas.eu/federation/music/tracks/a3f647bf-4ecb-405c-86b7-a2efbb3b6f9c", + "mbid": "830684a5-4003-4ec4-8bd6-1b102e23f0b2", + "title": "Tokyo, November 14, 1976, Part 2", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:10:39.491457Z", + "is_local": false, + "position": 2, + "disc_number": 4, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "f0f43a0f-c40e-4cbc-b93f-29a595090e7c", + "listen_url": "/api/v1/listen/18c69b2e-8de6-4817-b0eb-04f1fb35aadc/?upload=f0f43a0f-c40e-4cbc-b93f-29a595090e7c", + "size": 97149588, + "duration": 2421, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/18c69b2e-8de6-4817-b0eb-04f1fb35aadc/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160798, + "fid": "https://zik.canevas.eu/federation/music/tracks/3d67263c-3b48-42eb-b026-fcfb17f2cee9", + "mbid": "79c20812-651d-4991-8d33-6d4608481229", + "title": "Tokyo, November 14, 1976, Part 1", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:09:39.714646Z", + "is_local": false, + "position": 1, + "disc_number": 4, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "efcba5ee-1380-4143-bef9-14f1a551c4be", + "listen_url": "/api/v1/listen/d0773951-7ae5-40f1-bf4f-20d08824ff7c/?upload=efcba5ee-1380-4143-bef9-14f1a551c4be", + "size": 96113049, + "duration": 2395, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/d0773951-7ae5-40f1-bf4f-20d08824ff7c/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160797, + "fid": "https://zik.canevas.eu/federation/music/tracks/a4d3e53b-0e93-4058-b2fa-56096e192a7b", + "mbid": "791ee85a-ecf1-4cb8-8ff0-cf2caf4ee6f2", + "title": "Nagoya, November 12, 1976, Part 2", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:06:35.894791Z", + "is_local": false, + "position": 2, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "a50a1884-e1ea-4cb3-bfcc-a8e1b57de3e6", + "listen_url": "/api/v1/listen/42c58015-2b40-4431-b4a6-83ef7968f323/?upload=a50a1884-e1ea-4cb3-bfcc-a8e1b57de3e6", + "size": 85724673, + "duration": 2136, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/42c58015-2b40-4431-b4a6-83ef7968f323/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160795, + "fid": "https://zik.canevas.eu/federation/music/tracks/f8b63358-ac34-43da-a81d-f9a14d7950fa", + "mbid": "7c76881c-79b4-4ac0-99ce-cabe72c74190", + "title": "Nagoya, November 12, 1976, Part 1", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:01:35.026266Z", + "is_local": false, + "position": 1, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "faf1413f-9091-4182-aaa5-269b8794f576", + "listen_url": "/api/v1/listen/a0496a2c-07a6-49d2-b8e7-42a61cf9a3df/?upload=faf1413f-9091-4182-aaa5-269b8794f576", + "size": 75146837, + "duration": 1869, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/a0496a2c-07a6-49d2-b8e7-42a61cf9a3df/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160793, + "fid": "https://zik.canevas.eu/federation/music/tracks/2de00be5-2c07-49fa-9454-cefd774a3958", + "mbid": "2a5b40b6-315c-4ea3-862b-2180be86c184", + "title": "Osaka, November 8, 1976, Part 2", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:00:35.087415Z", + "is_local": false, + "position": 2, + "disc_number": 2, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "97c35b3e-6fde-4103-8529-70315cf2d731", + "listen_url": "/api/v1/listen/ec660b0d-2208-4009-8ac8-1bdb250bfcf9/?upload=97c35b3e-6fde-4103-8529-70315cf2d731", + "size": 93904746, + "duration": 2337, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/ec660b0d-2208-4009-8ac8-1bdb250bfcf9/", + "tags": [ + "Ambient", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160792, + "fid": "https://zik.canevas.eu/federation/music/tracks/78218f67-7eff-4b9f-a1b2-1f09e5630b04", + "mbid": "810e6656-950d-4e78-a73e-5fe3ce40d766", + "title": "Osaka, November 8, 1976, Part 1", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:00:33.227995Z", + "is_local": false, + "position": 1, + "disc_number": 2, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "f0f696da-0732-40fe-bb16-0c345700bc42", + "listen_url": "/api/v1/listen/75dc313e-71a4-443d-b78e-bbfe1c8d8161/?upload=f0f696da-0732-40fe-bb16-0c345700bc42", + "size": 82173862, + "duration": 2044, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/75dc313e-71a4-443d-b78e-bbfe1c8d8161/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160796, + "fid": "https://zik.canevas.eu/federation/music/tracks/9f6999c5-33d1-4cff-a6ca-857fea8c236f", + "mbid": "e38299d2-358a-4e4a-9847-0ba59244e5f5", + "title": "Kyoto, November 5, 1976, Part 2", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T19:00:31.338410Z", + "is_local": false, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8541, + "fid": "https://zik.canevas.eu/federation/music/albums/a928cfc2-ee76-4068-8e1f-32ddd954ae91", + "mbid": "b9e1463b-b996-428d-be71-64382209cfd3", + "title": "Sun Bear Concerts", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "1990-09-17", + "cover": { + "uuid": "7dce1451-8532-4569-804b-91c0fcf17766", + "size": 199938, + "mimetype": "image/jpeg", + "creation_date": "2022-09-07T19:10:45.630769Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/08/6a/55/attachment_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04a937ef82519969106e700283f926b1ddfc9218f9a0c2472c2a3a3bcae1663d", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=555a35c1c925f79d1f09adc939c0a10450dd8ed8b7f1781b25d697214697bf55", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/f9/de/52/ent_cover-a928cfc2-ee76-4068-8e1f-32ddd954ae91-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=80299b709d62d1f91d1dd7c90819dd28a24ef94ff7ba3c846aee764e5008b3b2" + } + }, + "creation_date": "2022-09-07T18:54:30.287252Z", + "is_local": false, + "tracks_count": 13 + }, + "uploads": [ + { + "uuid": "272f2636-e7f7-4203-b7b8-add1b1b422bf", + "listen_url": "/api/v1/listen/80d7cf90-5ec7-49ea-964a-32708404979b/?upload=272f2636-e7f7-4203-b7b8-add1b1b422bf", + "size": 105790870, + "duration": 2634, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/80d7cf90-5ec7-49ea-964a-32708404979b/", + "tags": [ + "Ambient", + "Classical", + "Electronic", + "Jazz" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160794, + "fid": "https://zik.canevas.eu/federation/music/tracks/1f96f388-aa0a-4ac2-8b2c-374f77212d12", + "mbid": "079c5bb4-07d3-46bd-be2a-6269858dae4b", + "title": "Kyoto, November 5, 1976, Part 1", + "artist": { + "id": 8293, + "fid": "https://musique.libellules.eu/federation/music/artists/8bfaf391-369f-43f5-b98a-d3f97298411c", + "mbid": "061c4920-3ea6-4835-98f6-02f3b82f5e3a", + "name": "Keith Jarrett", + "creation_date": "2019-03-04T23:47:50.008392Z", + "modification_date": "2022-09-03T00:33:48.335641Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-07T18:54:34.534986Z", + "is_local": false, + "position": 1, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "1fb26ef0-60d0-498e-a6ab-a9ede144e66c", + "listen_url": "/api/v1/listen/e08894ce-40cb-45e5-972e-888a33d3f481/?upload=1fb26ef0-60d0-498e-a6ab-a9ede144e66c", + "size": 104224089, + "duration": 2554, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/e08894ce-40cb-45e5-972e-888a33d3f481/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Ambient", + "Electronic", + "Fantasy", + "Jazz", + "RhythmAndBlues", + "RolePlayingVideoGame", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160782, + "fid": "https://zik.canevas.eu/federation/music/tracks/f39bd88d-c369-4265-9008-496ef0e41a95", + "mbid": "5d0b7e43-18d9-4fd5-a09e-0e6209926d8a", + "title": "Skyrim Atmospheres", + "artist": { + "id": 8308, + "fid": "https://zik.canevas.eu/federation/music/artists/f0e6e2e0-5a6d-4176-beac-558f27b325f6", + "mbid": "None", + "name": "Jeremy Soule/Mark Lampert", + "creation_date": "2022-09-02T23:56:01.907544Z", + "modification_date": "2022-09-03T03:12:31.890902Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:56:01.993870Z", + "is_local": false, + "position": 1, + "disc_number": 4, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "ffafe8fe-4703-4334-a72e-823502559d4c", + "listen_url": "/api/v1/listen/e8f02447-e162-4985-8284-dc3ca87df808/?upload=ffafe8fe-4703-4334-a72e-823502559d4c", + "size": 23759427, + "duration": 545, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/e8f02447-e162-4985-8284-dc3ca87df808/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Ambient", + "Electronic", + "Fantasy", + "Jazz", + "Rock", + "RolePlayingVideoGame", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160781, + "fid": "https://zik.canevas.eu/federation/music/tracks/3e454abc-2da5-4c3a-8294-02518ae7a220", + "mbid": "8cb8f1a2-8daa-4d68-8876-faf98650a117", + "title": "Wind Guide You", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:53:37.688710Z", + "is_local": false, + "position": 18, + "disc_number": 3, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "0d82c075-bc6f-4de4-b734-e9bbe8815ce1", + "listen_url": "/api/v1/listen/63268dd8-f875-4dd9-a4f7-57d22b0147d8/?upload=0d82c075-bc6f-4de4-b734-e9bbe8815ce1", + "size": 10668404, + "duration": 218, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/63268dd8-f875-4dd9-a4f7-57d22b0147d8/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Ambient", + "Electronic", + "Fantasy", + "Jazz", + "RhythmAndBlues", + "RolePlayingVideoGame", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160780, + "fid": "https://zik.canevas.eu/federation/music/tracks/ad896f7d-734f-4b4f-856b-4a1737a3c9f9", + "mbid": "6a53f5b9-76d8-4f49-a8f6-4774d2f478a0", + "title": "Sovngarde", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:53:27.796042Z", + "is_local": false, + "position": 17, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "43459c1c-ed5a-4c00-bd45-f51c5a9a3837", + "listen_url": "/api/v1/listen/9d6c38bd-1f46-4f23-9fbc-cdc7fe707dcf/?upload=43459c1c-ed5a-4c00-bd45-f51c5a9a3837", + "size": 8343239, + "duration": 160, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/9d6c38bd-1f46-4f23-9fbc-cdc7fe707dcf/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Dance", + "Electronic", + "Fantasy", + "Rock", + "RolePlayingVideoGame", + "Techno", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160779, + "fid": "https://zik.canevas.eu/federation/music/tracks/9866769f-c117-47d2-99fb-f9097fe85517", + "mbid": "8bbdcb50-eb75-4a92-8d95-9e45207c5a7b", + "title": "Shattered Shields", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:53:09.629706Z", + "is_local": false, + "position": 16, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "2655f01f-c504-4cbb-b256-305453380869", + "listen_url": "/api/v1/listen/79fc4145-9f63-4f2e-a5f2-21024274976c/?upload=2655f01f-c504-4cbb-b256-305453380869", + "size": 8239687, + "duration": 157, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/79fc4145-9f63-4f2e-a5f2-21024274976c/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Electronic", + "Fantasy", + "RhythmAndBlues", + "Rock", + "RolePlayingVideoGame", + "Techno", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160778, + "fid": "https://zik.canevas.eu/federation/music/tracks/d753cd44-158e-4b4d-8d00-92908f3a9c7f", + "mbid": "d4dccaab-705b-4373-84a9-03c34417492a", + "title": "Death in the Darkness", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:53:06.224014Z", + "is_local": false, + "position": 15, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "0bf04c21-2214-4cfa-abd6-c8ec2160272c", + "listen_url": "/api/v1/listen/bc7ae4c8-f02c-4208-a35d-a04482c6d166/?upload=0bf04c21-2214-4cfa-abd6-c8ec2160272c", + "size": 11490491, + "duration": 238, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/bc7ae4c8-f02c-4208-a35d-a04482c6d166/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Ambient", + "Electronic", + "Fantasy", + "RhythmAndBlues", + "Rock", + "RolePlayingVideoGame", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160777, + "fid": "https://zik.canevas.eu/federation/music/tracks/06086fe8-cd2c-4a83-ad7b-848a6df3f7d9", + "mbid": "b819dbcb-533e-443f-89b4-ea8ef54ea01d", + "title": "Sky Above, Voice Within", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:53:02.591650Z", + "is_local": false, + "position": 14, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + }, + { + "cover": null, + "album": { + "id": 8539, + "fid": "https://zik.canevas.eu/federation/music/albums/2bfb4d7c-9f7c-441a-ba3e-2205ace3a268", + "mbid": "3233e76f-8038-4c35-bf9c-caeff3127225", + "title": "The Elder Scrolls V: Skyrim: Original Game Soundtrack", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2011-11-11", + "cover": { + "uuid": "a22e24b6-644a-46b7-abff-4580383588a2", + "size": 412903, + "mimetype": "image/jpeg", + "creation_date": "2022-09-03T02:29:22.024149Z", + "urls": { + "source": "https://zik.canevas.eu/media/attachments/96/c5/e7/attachment_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg", + "original": "https://s3.j19.planetexpress.cc/georg-funkwhale/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=613d6c55d365968676af474819a74b0cc7e3c23f4f1dc3baf6b51b360ef4d865", + "medium_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0cbcc45e8ecc3cc73ce48fbe60cce2adbf86358271b88a519046a625a13291b1", + "large_square_crop": "https://s3.j19.planetexpress.cc/georg-funkwhale/__sized__/attachments/4c/b8/8d/ent_cover-2bfb4d7c-9f7c-441a-ba3e-2205ace3a268-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=georg-funkwhale%2F20220924%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220924T133157Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=d59a05c8399b512d2ea681988a89f3991ccca2835ecefc2228b0f875a08e936d" + } + }, + "creation_date": "2022-09-02T23:45:11.792202Z", + "is_local": false, + "tracks_count": 53 + }, + "uploads": [ + { + "uuid": "1cfdd546-b46f-4152-a67f-cc22cbf4c5e4", + "listen_url": "/api/v1/listen/bf16ef28-e833-4724-9312-31e6b1147002/?upload=1cfdd546-b46f-4152-a67f-cc22cbf4c5e4", + "size": 8943648, + "duration": 175, + "bitrate": 320000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/bf16ef28-e833-4724-9312-31e6b1147002/", + "tags": [ + "ActionAdventureGame", + "ActionRolePlayingGame", + "Ambient", + "Electronic", + "Fantasy", + "Jazz", + "Rock", + "RolePlayingVideoGame", + "VideoGameWithLgbtCharacter" + ], + "attributed_to": { + "fid": "https://zik.canevas.eu/federation/actors/admin", + "url": "https://zik.canevas.eu/@admin", + "creation_date": "2021-08-17T18:44:06.429121Z", + "summary": null, + "preferred_username": "admin", + "name": "admin", + "last_fetch_date": "2022-09-23T16:19:16.756482Z", + "domain": "zik.canevas.eu", + "type": "Person", + "manually_approves_followers": false, + "full_username": "admin@zik.canevas.eu", + "is_local": false + }, + "id": 160776, + "fid": "https://zik.canevas.eu/federation/music/tracks/6d5b3bce-d652-4b5a-b37e-fe0616ea4ab4", + "mbid": "4b8bc16d-6490-4d43-81cd-c219257d91d2", + "title": "The Gathering Storm", + "artist": { + "id": 8307, + "fid": "https://zik.canevas.eu/federation/music/artists/6b63af8f-613a-402c-a190-6bec3a1248d1", + "mbid": "f413369d-d72f-46b9-8744-2d09344a9c6a", + "name": "Jeremy Soule", + "creation_date": "2022-09-02T23:43:32.823692Z", + "modification_date": "2022-09-03T02:14:28.187985Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2022-09-02T23:52:59.904262Z", + "is_local": false, + "position": 13, + "disc_number": 3, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": true + } + ] +} \ No newline at end of file diff --git a/tests/data/tracks/track.json b/tests/data/tracks/track.json new file mode 100644 index 0000000000000000000000000000000000000000..c3fa5311e9c58f0ef06adc59b3255330d535bd5b --- /dev/null +++ b/tests/data/tracks/track.json @@ -0,0 +1,75 @@ +{ + "cover": null, + "album": { + "id": 1049, + "fid": "https://open.audio/federation/music/albums/cbee1889-2b23-4e85-ac2d-09f873e2e5ef", + "mbid": null, + "title": "Songs For The Dawn Of Peace", + "artist": { + "id": 1560, + "fid": "https://open.audio/federation/music/artists/e2f30f6d-6311-4b8c-a6f8-18fe81a2b788", + "mbid": "None", + "name": "Leon Lishner", + "creation_date": "2018-12-13T09:41:49.516084Z", + "modification_date": "2020-05-08T16:17:38.164147Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2016-06-19", + "cover": { + "uuid": "3a58c2db-f2a8-479b-a924-36db7f67e89c", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-05-08T16:17:38.175455Z", + "urls": { + "source": "https://open.audio/media/albums/covers/2018/12/13/bcbee1889-2b23-4e85-ac2d-09f873e2e5ef.jpg", + "original": "https://soundship.de/api/v1/attachments/3a58c2db-f2a8-479b-a924-36db7f67e89c/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/3a58c2db-f2a8-479b-a924-36db7f67e89c/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/3a58c2db-f2a8-479b-a924-36db7f67e89c/proxy?next=large_square_crop" + } + }, + "creation_date": "2018-12-13T09:41:49.517819Z", + "is_local": false, + "tracks_count": 25 + }, + "uploads": [ + { + "uuid": "36791303-cadc-4993-97fc-ec9c80f42f27", + "listen_url": "/api/v1/listen/8d587c70-6e03-4e08-8a61-2dbadc1fcdeb/?upload=36791303-cadc-4993-97fc-ec9c80f42f27", + "size": 7840160, + "duration": 138, + "bitrate": 256000, + "mimetype": "audio/mpeg", + "extension": "mp3", + "is_local": false + } + ], + "listen_url": "/api/v1/listen/8d587c70-6e03-4e08-8a61-2dbadc1fcdeb/", + "tags": [ + "Traditional" + ], + "attributed_to": null, + "id": 8550, + "fid": "https://open.audio/federation/music/tracks/242bab7b-0de1-4bb2-a49e-70668711f39e", + "mbid": null, + "title": "La Complainte Du Partisan (Song Of The French Partisan, France)", + "artist": { + "id": 1559, + "fid": "https://open.audio/federation/music/artists/85f9e259-9de6-4683-aab5-5278d7ef860c", + "mbid": "None", + "name": "Leon Lishner and Friends", + "creation_date": "2018-12-13T09:41:50.023726Z", + "modification_date": "2020-05-08T16:17:38.155143Z", + "is_local": false, + "content_category": "music" + }, + "creation_date": "2018-12-13T09:41:52.622218Z", + "is_local": false, + "position": 23, + "disc_number": null, + "downloads_count": 0, + "copyright": "Attribution-Noncommercial-Share Alike 3.0 United States: http://creativecommons.org/licenses/by-nc-sa/3.0/us/", + "license": "cc-by-nc-sa-3.0-us", + "is_playable": true, + "description": null +} \ No newline at end of file diff --git a/tests/data/tracks/track_album.json b/tests/data/tracks/track_album.json new file mode 100644 index 0000000000000000000000000000000000000000..a48e86fcb4f06d0febba1ee9ed306f1ac9d7689a --- /dev/null +++ b/tests/data/tracks/track_album.json @@ -0,0 +1,32 @@ +{ + "id": 1049, + "fid": "https://open.audio/federation/music/albums/cbee1889-2b23-4e85-ac2d-09f873e2e5ef", + "mbid": null, + "title": "Songs For The Dawn Of Peace", + "artist": { + "id": 1560, + "fid": "https://open.audio/federation/music/artists/e2f30f6d-6311-4b8c-a6f8-18fe81a2b788", + "mbid": "None", + "name": "Leon Lishner", + "creation_date": "2018-12-13T09:41:49.516084Z", + "modification_date": "2020-05-08T16:17:38.164147Z", + "is_local": false, + "content_category": "music" + }, + "release_date": "2016-06-19", + "cover": { + "uuid": "3a58c2db-f2a8-479b-a924-36db7f67e89c", + "size": null, + "mimetype": "image/jpeg", + "creation_date": "2020-05-08T16:17:38.175455Z", + "urls": { + "source": "https://open.audio/media/albums/covers/2018/12/13/bcbee1889-2b23-4e85-ac2d-09f873e2e5ef.jpg", + "original": "https://soundship.de/api/v1/attachments/3a58c2db-f2a8-479b-a924-36db7f67e89c/proxy?next=original", + "medium_square_crop": "https://soundship.de/api/v1/attachments/3a58c2db-f2a8-479b-a924-36db7f67e89c/proxy?next=medium_square_crop", + "large_square_crop": "https://soundship.de/api/v1/attachments/3a58c2db-f2a8-479b-a924-36db7f67e89c/proxy?next=large_square_crop" + } + }, + "creation_date": "2018-12-13T09:41:49.517819Z", + "is_local": false, + "tracks_count": 25 +} \ No newline at end of file diff --git a/tests/data/uploads/paginated_upload_for_owner_list.json b/tests/data/uploads/paginated_upload_for_owner_list.json new file mode 100644 index 0000000000000000000000000000000000000000..066598642f2655e6766d59d37c2c19f36243762b --- /dev/null +++ b/tests/data/uploads/paginated_upload_for_owner_list.json @@ -0,0 +1,6294 @@ +{ + "count": 16865, + "next": "https://tanukitunes.com/api/v1/uploads?page=2", + "previous": null, + "results": [ + { + "uuid": "45538feb-3eed-42eb-ade5-f18913e3ba38", + "filename": "Mitski - Puberty 2 - Happy.opus", + "creation_date": "2022-07-15T13:29:20.617644Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4a04b811-0db4-45f2-86db-fbaa8aa47eab/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103044, + "fid": "https://tanukitunes.com/federation/music/tracks/4a04b811-0db4-45f2-86db-fbaa8aa47eab", + "mbid": "cbb1ae16-9795-4648-b19a-f39662ea0847", + "title": "Happy", + "creation_date": "2022-07-15T13:29:21.345571Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 220, + "bitrate": 0, + "size": 3803153, + "import_date": "2022-07-15T13:29:21.373486Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 01 Happy.opus" + }, + { + "uuid": "25c199ab-3e7d-4789-bf57-daddfcdf7a5b", + "filename": "Mitski - Puberty 2 - Dan the Dancer.opus", + "creation_date": "2022-07-15T13:29:19.483957Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/c699bd20-0302-4c52-ad45-bb632a89406a/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103043, + "fid": "https://tanukitunes.com/federation/music/tracks/c699bd20-0302-4c52-ad45-bb632a89406a", + "mbid": "ba02d84e-3ed2-43f1-a547-26bc9d6ec37b", + "title": "Dan the Dancer", + "creation_date": "2022-07-15T13:29:20.180771Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 145, + "bitrate": 0, + "size": 2461038, + "import_date": "2022-07-15T13:29:20.207021Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 02 Dan the Dancer.opus" + }, + { + "uuid": "83da11c0-ef61-4c66-bc91-7c5df3ee11cc", + "filename": "Mitski - Puberty 2 - Once More to See You.opus", + "creation_date": "2022-07-15T13:29:18.463670Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/7eef19de-3bd9-448e-998a-279c65ea240d/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103042, + "fid": "https://tanukitunes.com/federation/music/tracks/7eef19de-3bd9-448e-998a-279c65ea240d", + "mbid": "e6810a18-ab6d-40ac-a039-009d0af6fe54", + "title": "Once More to See You", + "creation_date": "2022-07-15T13:29:19.362751Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 180, + "bitrate": 0, + "size": 2998393, + "import_date": "2022-07-15T13:29:19.405532Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 03 Once More to See You.opus" + }, + { + "uuid": "d1ff65db-6b2c-4da8-a0e7-feeb204230e9", + "filename": "Mitski - Puberty 2 - Fireworks.opus", + "creation_date": "2022-07-15T13:29:17.508086Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/98f2d973-e131-4472-8a70-170eb27d6e41/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103041, + "fid": "https://tanukitunes.com/federation/music/tracks/98f2d973-e131-4472-8a70-170eb27d6e41", + "mbid": "039f8dc7-40c6-4bd3-a93a-2d631fb7d0a0", + "title": "Fireworks", + "creation_date": "2022-07-15T13:29:18.182041Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 157, + "bitrate": 0, + "size": 2771090, + "import_date": "2022-07-15T13:29:18.206884Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 04 Fireworks.opus" + }, + { + "uuid": "da8949ae-8473-4816-aa76-65011e4cf151", + "filename": "Mitski - Puberty 2 - Your Best American Girl.opus", + "creation_date": "2022-07-15T13:29:16.497472Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/975d4eaa-285d-4f2f-845a-a7d4bb966b49/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103040, + "fid": "https://tanukitunes.com/federation/music/tracks/975d4eaa-285d-4f2f-845a-a7d4bb966b49", + "mbid": "171082e8-61df-4473-881b-d18805c35e5e", + "title": "Your Best American Girl", + "creation_date": "2022-07-15T13:29:17.355688Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 212, + "bitrate": 0, + "size": 3711671, + "import_date": "2022-07-15T13:29:17.380197Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 05 Your Best American Girl.opus" + }, + { + "uuid": "1a585868-b98b-4a2a-9c70-91c11f5fdf52", + "filename": "Mitski - Puberty 2 - I Bet on Losing Dogs.opus", + "creation_date": "2022-07-15T13:29:15.224705Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/ed2d4533-da0f-4151-abe7-c54372672ae0/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103039, + "fid": "https://tanukitunes.com/federation/music/tracks/ed2d4533-da0f-4151-abe7-c54372672ae0", + "mbid": "6a670c6d-d695-4447-9bde-dabd5c9adede", + "title": "I Bet on Losing Dogs", + "creation_date": "2022-07-15T13:29:16.204124Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 170, + "bitrate": 0, + "size": 2859733, + "import_date": "2022-07-15T13:29:16.238620Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 06 I Bet on Losing Dogs.opus" + }, + { + "uuid": "78ed2c38-8358-4cc0-ba05-e5fd1fd84d51", + "filename": "Mitski - Puberty 2 - My Body’s Made of Crushed Little Stars.opus", + "creation_date": "2022-07-15T13:29:14.286830Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/62a7ca24-afbc-42f7-b4d8-c6ba851c052a/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103038, + "fid": "https://tanukitunes.com/federation/music/tracks/62a7ca24-afbc-42f7-b4d8-c6ba851c052a", + "mbid": "f1820646-15e7-47ac-986a-ed3eb9b5d9b9", + "title": "My Body’s Made of Crushed Little Stars", + "creation_date": "2022-07-15T13:29:15.332879Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 116, + "bitrate": 0, + "size": 1992281, + "import_date": "2022-07-15T13:29:15.355076Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 07 My Body's Made of Crushed Little Stars.opus" + }, + { + "uuid": "5ad194a2-aed3-458f-a6d3-72a990a1cd7d", + "filename": "Mitski - Puberty 2 - Thursday Girl.opus", + "creation_date": "2022-07-15T13:29:13.496495Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b096f3c4-30c3-484d-a2ab-670fbeb16c57/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103037, + "fid": "https://tanukitunes.com/federation/music/tracks/b096f3c4-30c3-484d-a2ab-670fbeb16c57", + "mbid": "f2d24e2b-2f2d-4aa1-ab59-e5cc73a62207", + "title": "Thursday Girl", + "creation_date": "2022-07-15T13:29:14.183668Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 188, + "bitrate": 0, + "size": 3313480, + "import_date": "2022-07-15T13:29:14.211540Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 08 Thursday Girl.opus" + }, + { + "uuid": "e0605225-7391-422f-9a1f-f17f3464c2a1", + "filename": "Mitski - Puberty 2 - A Loving Feeling.opus", + "creation_date": "2022-07-15T13:29:12.483492Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/78b90c50-1a21-4b08-abab-1af186d8928f/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103036, + "fid": "https://tanukitunes.com/federation/music/tracks/78b90c50-1a21-4b08-abab-1af186d8928f", + "mbid": "5598e580-6e85-45dd-b1db-a473348f382a", + "title": "A Loving Feeling", + "creation_date": "2022-07-15T13:29:13.328484Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 92, + "bitrate": 0, + "size": 1531682, + "import_date": "2022-07-15T13:29:13.354891Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 09 A Loving Feeling.opus" + }, + { + "uuid": "cf81bae5-fbe8-4ed7-a3fa-a09d970c6300", + "filename": "Mitski - Puberty 2 - Crack Baby.opus", + "creation_date": "2022-07-15T13:29:11.602448Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/030dd7fe-85a7-49b1-8922-beaa398d7306/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103035, + "fid": "https://tanukitunes.com/federation/music/tracks/030dd7fe-85a7-49b1-8922-beaa398d7306", + "mbid": "0f345e7e-1105-46ab-8d6e-9f9362881618", + "title": "Crack Baby", + "creation_date": "2022-07-15T13:29:12.241512Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 292, + "bitrate": 0, + "size": 4741468, + "import_date": "2022-07-15T13:29:12.268184Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 10 Crack Baby.opus" + }, + { + "uuid": "657b342a-66e5-4d7f-84fc-f44ac4a148fd", + "filename": "Mitski - Puberty 2 - A Burning Hill.opus", + "creation_date": "2022-07-15T13:29:10.291209Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ae588ad3da0577f99d03de6e1ce3d2a7aeb72b0b3b2e6d7eec4fa1c1a7200c21", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=f0e9c13dbb1c5264195c0f496f365a24b319bbd9b978bf0fee444b25a8e9eeb4", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=45cc57d480e3d4ca1e6742ce5d31aa0e76ee6f859af2ba87ba0418e558e38ec2" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b0baeecc-1cf0-4174-8d23-ab67924794ff/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103034, + "fid": "https://tanukitunes.com/federation/music/tracks/b0baeecc-1cf0-4174-8d23-ab67924794ff", + "mbid": "38e404da-797c-4eb7-b209-2914b9a01da7", + "title": "A Burning Hill", + "creation_date": "2022-07-15T13:29:11.608298Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 109, + "bitrate": 0, + "size": 1893720, + "import_date": "2022-07-15T13:29:11.630736Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 11 A Burning Hill.opus" + }, + { + "uuid": "e7441d63-b935-4bb2-94a4-c8ed35609180", + "filename": "Mitski - Retired from Sad, New Career in Business - Goodbye, My Danish Sweetheart.opus", + "creation_date": "2022-07-15T13:29:09.078445Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/c39623d2-73f9-4495-ac67-e69abcca56f5/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103033, + "fid": "https://tanukitunes.com/federation/music/tracks/c39623d2-73f9-4495-ac67-e69abcca56f5", + "mbid": "de1c0a85-da01-46e4-aac6-55cfe9976ad6", + "title": "Goodbye, My Danish Sweetheart", + "creation_date": "2022-07-15T13:29:10.199069Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 137, + "bitrate": 0, + "size": 2328259, + "import_date": "2022-07-15T13:29:10.232577Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 01 Goodbye, My Danish Sweetheart.opus" + }, + { + "uuid": "5bc95b50-0140-4326-aa42-23e861bcfc4c", + "filename": "Mitski - Retired from Sad, New Career in Business - Square.opus", + "creation_date": "2022-07-15T13:29:08.118383Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/83cf4ebb-6985-446e-9b0c-ba845463f628/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103032, + "fid": "https://tanukitunes.com/federation/music/tracks/83cf4ebb-6985-446e-9b0c-ba845463f628", + "mbid": "989f6d51-954e-4aa2-9755-d2261440ee75", + "title": "Square", + "creation_date": "2022-07-15T13:29:09.329446Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 190, + "bitrate": 0, + "size": 3379687, + "import_date": "2022-07-15T13:29:09.350951Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 02 Square.opus" + }, + { + "uuid": "fb3dfbb0-329c-47e1-b455-dfa27d71c202", + "filename": "Mitski - Retired from Sad, New Career in Business - Strawberry Blond.opus", + "creation_date": "2022-07-15T13:29:07.083904Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/2c1516c8-2f15-4621-822f-315a3ac74b45/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/Lar", + "url": null, + "creation_date": "2020-12-01T22:22:54.059735Z", + "summary": null, + "preferred_username": "Lar", + "name": "Lar", + "last_fetch_date": "2020-12-01T22:22:54.059751Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "Lar@tanukitunes.com", + "is_local": true + }, + "id": 83312, + "fid": "https://tanukitunes.com/federation/music/tracks/2c1516c8-2f15-4621-822f-315a3ac74b45", + "mbid": "824aaac9-9891-4fff-9dc1-6ea90582a558", + "title": "Strawberry Blond", + "creation_date": "2021-02-21T17:48:30.112269Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 4, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 114, + "bitrate": 0, + "size": 1970977, + "import_date": "2022-07-15T13:29:08.193055Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 03 Strawberry Blond.opus" + }, + { + "uuid": "ef2a7637-44f3-4e0a-a00f-b429e2259197", + "filename": "Mitski - Retired from Sad, New Career in Business - Humpty.opus", + "creation_date": "2022-07-15T13:29:06.276973Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3ca8a436-46d6-42e7-b576-07ba1bdb2ae0/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103031, + "fid": "https://tanukitunes.com/federation/music/tracks/3ca8a436-46d6-42e7-b576-07ba1bdb2ae0", + "mbid": "5d1c8726-e38e-4bf7-a80c-4f9f8c81b48d", + "title": "Humpty", + "creation_date": "2022-07-15T13:29:07.266069Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 201, + "bitrate": 0, + "size": 3544294, + "import_date": "2022-07-15T13:29:07.296599Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 04 Humpty.opus" + }, + { + "uuid": "36ed01b3-98cd-40d8-b4a3-09e83df2519d", + "filename": "Mitski - Retired from Sad, New Career in Business - I Want You.opus", + "creation_date": "2022-07-15T13:29:05.169393Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/9c770b89-4d47-4c1d-922b-892dc113ffdf/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103030, + "fid": "https://tanukitunes.com/federation/music/tracks/9c770b89-4d47-4c1d-922b-892dc113ffdf", + "mbid": "4d5f13e5-b62f-469c-843f-55d7a1d36218", + "title": "I Want You", + "creation_date": "2022-07-15T13:29:06.178142Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 183, + "bitrate": 0, + "size": 3021662, + "import_date": "2022-07-15T13:29:06.209173Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 05 I Want You.opus" + }, + { + "uuid": "91d91304-4c68-405e-aa8b-61ccd2bca7ac", + "filename": "Mitski - Retired from Sad, New Career in Business - Shame.opus", + "creation_date": "2022-07-15T13:29:04.141717Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/5468ba66-0688-4538-9d5d-2adf8d09e21b/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103029, + "fid": "https://tanukitunes.com/federation/music/tracks/5468ba66-0688-4538-9d5d-2adf8d09e21b", + "mbid": "d395ffa2-6745-4fc3-b3c6-a646f2d2ed0b", + "title": "Shame", + "creation_date": "2022-07-15T13:29:05.332767Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 144, + "bitrate": 0, + "size": 2499873, + "import_date": "2022-07-15T13:29:05.356318Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 06 Shame.opus" + }, + { + "uuid": "1bf91f39-732f-47f5-a902-56f8ee673e42", + "filename": "Mitski - Retired from Sad, New Career in Business - Because Dreaming Costs Money, My Dear.opus", + "creation_date": "2022-07-15T13:29:03.133795Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/d2a9a808-e3c1-41c6-8cde-438a69b5f383/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103028, + "fid": "https://tanukitunes.com/federation/music/tracks/d2a9a808-e3c1-41c6-8cde-438a69b5f383", + "mbid": "057e73f9-f2c1-4820-9c56-4c94d340ed0d", + "title": "Because Dreaming Costs Money, My Dear", + "creation_date": "2022-07-15T13:29:04.177487Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 185, + "bitrate": 0, + "size": 3426458, + "import_date": "2022-07-15T13:29:04.206590Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 07 Because Dreaming Costs Money, My Dear.opus" + }, + { + "uuid": "df26796d-5c0e-4dc7-8d8f-e9522da34f0a", + "filename": "Mitski - Retired from Sad, New Career in Business - Circle.opus", + "creation_date": "2022-07-15T13:29:01.978949Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/0b8c47bb-1dd2-414c-9b95-ee2138e3fa84/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103027, + "fid": "https://tanukitunes.com/federation/music/tracks/0b8c47bb-1dd2-414c-9b95-ee2138e3fa84", + "mbid": "aa2584fb-292e-42f0-aae5-9196c2e6618e", + "title": "Circle", + "creation_date": "2022-07-15T13:29:03.345784Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 171, + "bitrate": 0, + "size": 3049452, + "import_date": "2022-07-15T13:29:03.374763Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 08 Circle.opus" + }, + { + "uuid": "707fccb2-8eb0-4e6e-ada9-ebc56fe8ea4e", + "filename": "Mitski - Retired from Sad, New Career in Business - Class of 2013.opus", + "creation_date": "2022-07-15T13:29:00.905558Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 9407, + "fid": "https://tanukitunes.com/federation/music/albums/28bcc81d-eddf-47de-a8d5-09e126ec34b5", + "mbid": "82d929d8-df8f-494b-844d-3b08e2d8ba8f", + "title": "Retired from Sad, New Career in Business", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2013-08-01", + "cover": { + "uuid": "8a2370cd-b98c-48dc-92e8-ba8ecd5f8bc7", + "size": 349657, + "mimetype": "image/jpeg", + "creation_date": "2021-02-21T17:48:32.371979Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=ead49212ef21c5e2068f82d2f6abaab57a0f47dfd061530fa84e7544c1566e34", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8cf51ca1cdae718e085ca776f9340a3d6276597e5328cb6094b6a4605d49a6f6", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/cf/41/2b/attachment_cover-28bcc81d-eddf-47de-a8d5-09e126ec34b5-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210354Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=627c8fad367710880714f59789fd48ab91a1fc9a17244ba3cce7c7712012fe8d" + } + }, + "creation_date": "2021-02-21T17:48:30.101625Z", + "is_local": true, + "tracks_count": 9 + }, + "uploads": [], + "listen_url": "/api/v1/listen/1ceba9a4-6d88-4a0e-b93c-9483b0c0f35c/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103026, + "fid": "https://tanukitunes.com/federation/music/tracks/1ceba9a4-6d88-4a0e-b93c-9483b0c0f35c", + "mbid": "d00a33b2-53f0-489a-9d07-c12ba6814355", + "title": "Class of 2013", + "creation_date": "2022-07-15T13:29:02.177545Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 109, + "bitrate": 0, + "size": 1978111, + "import_date": "2022-07-15T13:29:02.206283Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Retired from Sad, New Career in Business - 09 Class of 2013.opus" + }, + { + "uuid": "6b9173be-eb96-4c12-8cd9-10510dc1f463", + "filename": "Mitski - Laurel Hell - Valentine, Texas.opus", + "creation_date": "2022-07-15T13:29:00.154257Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/9123aa60-d146-4f31-bcc5-2df2963ef4f1/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103025, + "fid": "https://tanukitunes.com/federation/music/tracks/9123aa60-d146-4f31-bcc5-2df2963ef4f1", + "mbid": "bb21106b-30ad-4537-9eb1-ae598e9bcd99", + "title": "Valentine, Texas", + "creation_date": "2022-07-15T13:29:01.167145Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 9, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 155, + "bitrate": 0, + "size": 2530407, + "import_date": "2022-07-15T13:29:01.196992Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 01 Valentine, Texas.opus" + }, + { + "uuid": "5c9cf579-e585-45a7-94cc-13e23892fe0f", + "filename": "Mitski - Laurel Hell - Working for the Knife.opus", + "creation_date": "2022-07-15T13:28:59.159818Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/fbcfa5a8-c89f-4bad-9026-14c932b6f637/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103024, + "fid": "https://tanukitunes.com/federation/music/tracks/fbcfa5a8-c89f-4bad-9026-14c932b6f637", + "mbid": "79fd00cf-b17b-4c81-82ad-03c2097dd519", + "title": "Working for the Knife", + "creation_date": "2022-07-15T13:29:00.183238Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 8, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 158, + "bitrate": 0, + "size": 2703352, + "import_date": "2022-07-15T13:29:00.216482Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 02 Working for the Knife.opus" + }, + { + "uuid": "c026e610-c537-4788-9803-737b31cb30b9", + "filename": "Mitski - Laurel Hell - Stay Soft.opus", + "creation_date": "2022-07-15T13:28:58.072675Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/7b2b011d-b4a8-41fe-b2c7-b16a0ee89ef7/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103023, + "fid": "https://tanukitunes.com/federation/music/tracks/7b2b011d-b4a8-41fe-b2c7-b16a0ee89ef7", + "mbid": "b96abbac-dd5d-430a-a241-f5c9fbaf89fe", + "title": "Stay Soft", + "creation_date": "2022-07-15T13:28:59.326349Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 196, + "bitrate": 0, + "size": 3404277, + "import_date": "2022-07-15T13:28:59.351507Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 03 Stay Soft.opus" + }, + { + "uuid": "8d6c9803-0bfb-472f-ac0c-7ed9480cc985", + "filename": "Mitski - Laurel Hell - Everyone.opus", + "creation_date": "2022-07-15T13:28:56.873738Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b422047f-457b-409f-9297-53fd767dd8bd/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103022, + "fid": "https://tanukitunes.com/federation/music/tracks/b422047f-457b-409f-9297-53fd767dd8bd", + "mbid": "8ae8b577-e6c7-4278-883b-70c912059293", + "title": "Everyone", + "creation_date": "2022-07-15T13:28:58.172153Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 227, + "bitrate": 0, + "size": 3690788, + "import_date": "2022-07-15T13:28:58.196235Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 04 Everyone.opus" + }, + { + "uuid": "a045088e-8e31-433f-87d3-13528e0d3657", + "filename": "Mitski - Laurel Hell - Heat Lightning.opus", + "creation_date": "2022-07-15T13:28:55.702977Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/bb79fe61-b278-4a0b-bfab-cf16e08026ca/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103021, + "fid": "https://tanukitunes.com/federation/music/tracks/bb79fe61-b278-4a0b-bfab-cf16e08026ca", + "mbid": "5b6fb2de-4bfa-4398-84c8-a07824c11d12", + "title": "Heat Lightning", + "creation_date": "2022-07-15T13:28:57.327777Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 171, + "bitrate": 0, + "size": 3003524, + "import_date": "2022-07-15T13:28:57.365875Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 05 Heat Lightning.opus" + }, + { + "uuid": "7f003415-fc20-476e-b373-bd024a3b7347", + "filename": "Mitski - Laurel Hell - The Only Heartbreaker.opus", + "creation_date": "2022-07-15T13:28:54.653474Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3c20eefb-3412-44c4-8a55-386192996bb4/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103020, + "fid": "https://tanukitunes.com/federation/music/tracks/3c20eefb-3412-44c4-8a55-386192996bb4", + "mbid": "98b81b12-d5ff-4d6b-97cf-8c4b6b839259", + "title": "The Only Heartbreaker", + "creation_date": "2022-07-15T13:28:57.137592Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 184, + "bitrate": 0, + "size": 3179842, + "import_date": "2022-07-15T13:28:57.166045Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 06 The Only Heartbreaker.opus" + }, + { + "uuid": "077ecaed-a81f-45e8-9849-077c1f74c3c6", + "filename": "Mitski - Laurel Hell - Love Me More.opus", + "creation_date": "2022-07-15T13:28:53.515956Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/2290c3e0-327d-46d8-8628-78e15e787ff2/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103019, + "fid": "https://tanukitunes.com/federation/music/tracks/2290c3e0-327d-46d8-8628-78e15e787ff2", + "mbid": "cfa6e54a-305a-43fb-8fbe-14248f72a096", + "title": "Love Me More", + "creation_date": "2022-07-15T13:28:55.920158Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 212, + "bitrate": 0, + "size": 3633957, + "import_date": "2022-07-15T13:28:55.944712Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 07 Love Me More.opus" + }, + { + "uuid": "d9cbe06f-8802-48fc-86de-eae68f7fddac", + "filename": "Mitski - Laurel Hell - There’s Nothing Left for You.opus", + "creation_date": "2022-07-15T13:28:52.300320Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/af2d4eee-3be5-4438-8aff-6bc58ab4cb05/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103018, + "fid": "https://tanukitunes.com/federation/music/tracks/af2d4eee-3be5-4438-8aff-6bc58ab4cb05", + "mbid": "9fcd3efd-61c0-408e-aec3-2f5b81b9af96", + "title": "There’s Nothing Left for You", + "creation_date": "2022-07-15T13:28:54.184870Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 172, + "bitrate": 0, + "size": 2940543, + "import_date": "2022-07-15T13:28:54.229088Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 08 There's Nothing Left Here for You.opus" + }, + { + "uuid": "28773941-bb7b-46cb-9324-02933edf7e4b", + "filename": "Mitski - Laurel Hell - Should’ve Been Me.opus", + "creation_date": "2022-07-15T13:28:51.192846Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a10fab18-cdba-476f-b751-0bb3be0c4d11/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103017, + "fid": "https://tanukitunes.com/federation/music/tracks/a10fab18-cdba-476f-b751-0bb3be0c4d11", + "mbid": "56782cfe-84b3-4326-a83b-62ef5bdcb3a9", + "title": "Should’ve Been Me", + "creation_date": "2022-07-15T13:28:53.184282Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 191, + "bitrate": 0, + "size": 3309432, + "import_date": "2022-07-15T13:28:53.218432Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 09 Should've Been Me.opus" + }, + { + "uuid": "6b48297b-4067-4cf9-b5e8-607e639442ac", + "filename": "Mitski - Laurel Hell - I Guess.opus", + "creation_date": "2022-07-15T13:28:50.096596Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a5b8ef45-bb6e-4ce8-b8ea-afb2af81056c/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103016, + "fid": "https://tanukitunes.com/federation/music/tracks/a5b8ef45-bb6e-4ce8-b8ea-afb2af81056c", + "mbid": "23703b89-dd98-4d0e-92e4-4ca44fc06304", + "title": "I Guess", + "creation_date": "2022-07-15T13:28:52.206959Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 135, + "bitrate": 0, + "size": 2332279, + "import_date": "2022-07-15T13:28:52.235231Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 10 I Guess.opus" + }, + { + "uuid": "b59ef9ff-e397-40d2-beeb-af2d2d69e413", + "filename": "Mitski - Laurel Hell - That’s Our Lamp.opus", + "creation_date": "2022-07-15T13:28:49.208993Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12766, + "fid": "https://tanukitunes.com/federation/music/albums/9670c3be-72dd-4f1a-9e95-7d0d97731b16", + "mbid": "31eb8cfd-2508-478c-a088-d014a91ee40e", + "title": "Laurel Hell", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-02-04", + "cover": { + "uuid": "0140887c-f092-437f-afb0-3be055016529", + "size": 62698, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:51.182138Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=700b2cb35a0fbdc0224c66088e5d85c39ec39217f61dd639bcb3b9b84190c72e", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=5d2db2c038bacda12c2639e698a124f1da88b958c1a281f7f3262ff438ca948f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/ad/e2/6b/attachment_cover-9670c3be-72dd-4f1a-9e95-7d0d97731b16-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8075dfe78a9d9c6f1caa4dda1203356c2084b241d6a5d26bdcc303375e97d3c8" + } + }, + "creation_date": "2022-07-15T13:28:51.176742Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/db09a147-5881-42be-8708-b05af81df6e9/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103015, + "fid": "https://tanukitunes.com/federation/music/tracks/db09a147-5881-42be-8708-b05af81df6e9", + "mbid": "52a463b5-8576-44a7-ae94-c1788f0d8116", + "title": "That’s Our Lamp", + "creation_date": "2022-07-15T13:28:51.467109Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 144, + "bitrate": 0, + "size": 2531392, + "import_date": "2022-07-15T13:28:51.497872Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Laurel Hell - 11 That's Our Lamp.opus" + }, + { + "uuid": "d71dc743-2f43-4246-8214-2f1fce95cee9", + "filename": "Mitski - Be the Cowboy - Geyser.opus", + "creation_date": "2022-07-15T13:28:48.330943Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/94bf9e1b-3843-4252-b180-ca6ea19115c8/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103014, + "fid": "https://tanukitunes.com/federation/music/tracks/94bf9e1b-3843-4252-b180-ca6ea19115c8", + "mbid": "8ed04af5-c3c8-43be-8cd3-9a1c1326438d", + "title": "Geyser", + "creation_date": "2022-07-15T13:28:50.178498Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 7, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 143, + "bitrate": 0, + "size": 2484714, + "import_date": "2022-07-15T13:28:50.201654Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 01 Geyser.opus" + }, + { + "uuid": "b261bd5a-ac2c-44e0-b27c-b42e3c823cf9", + "filename": "Mitski - Be the Cowboy - Why Didn’t You Stop Me?.opus", + "creation_date": "2022-07-15T13:28:47.405011Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e3d94c96-cb8a-4b82-b82f-931ca1a238ac/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103013, + "fid": "https://tanukitunes.com/federation/music/tracks/e3d94c96-cb8a-4b82-b82f-931ca1a238ac", + "mbid": "b2c98769-c9d4-46ff-befa-d2f8ce0eb901", + "title": "Why Didn’t You Stop Me?", + "creation_date": "2022-07-15T13:28:49.162804Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 141, + "bitrate": 0, + "size": 2509948, + "import_date": "2022-07-15T13:28:49.192119Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 02 Why Didn't You Stop Me-.opus" + }, + { + "uuid": "e1445081-9fba-4e10-b3ee-c5bb0f000cc5", + "filename": "Mitski - Be the Cowboy - Old Friend.opus", + "creation_date": "2022-07-15T13:28:46.509633Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/3b08bb76-a556-4555-9d2f-cb4e70039b27/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103012, + "fid": "https://tanukitunes.com/federation/music/tracks/3b08bb76-a556-4555-9d2f-cb4e70039b27", + "mbid": "3cc717a0-2852-49c8-92f6-7466ae38a4fc", + "title": "Old Friend", + "creation_date": "2022-07-15T13:28:48.152050Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 112, + "bitrate": 0, + "size": 1951161, + "import_date": "2022-07-15T13:28:48.180089Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 03 Old Friend.opus" + }, + { + "uuid": "3eee84d5-1046-4322-87b3-81e953ad533d", + "filename": "Mitski - Be the Cowboy - A Pearl.opus", + "creation_date": "2022-07-15T13:28:45.653485Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/96e05367-07cc-40a4-85c5-9a3fc8735c55/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103011, + "fid": "https://tanukitunes.com/federation/music/tracks/96e05367-07cc-40a4-85c5-9a3fc8735c55", + "mbid": "fe92cc74-a146-4548-b8ab-eb4a15df5add", + "title": "A Pearl", + "creation_date": "2022-07-15T13:28:47.198995Z", + "is_local": true, + "position": 4, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 156, + "bitrate": 0, + "size": 2769748, + "import_date": "2022-07-15T13:28:47.245319Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 04 A Pearl.opus" + }, + { + "uuid": "1b30af52-396c-40a8-a998-2293b6348d36", + "filename": "Mitski - Be the Cowboy - Lonesome Love.opus", + "creation_date": "2022-07-15T13:28:44.753471Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/43d36cf4-3f00-4e54-b0a0-fcee934003bf/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103010, + "fid": "https://tanukitunes.com/federation/music/tracks/43d36cf4-3f00-4e54-b0a0-fcee934003bf", + "mbid": "5fd33b13-5c38-4c7c-b257-6225944335b1", + "title": "Lonesome Love", + "creation_date": "2022-07-15T13:28:46.199831Z", + "is_local": true, + "position": 5, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 110, + "bitrate": 0, + "size": 1917526, + "import_date": "2022-07-15T13:28:46.231889Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 05 Lonesome Love.opus" + }, + { + "uuid": "832b9401-13a3-485d-a35b-51319d8fb756", + "filename": "Mitski - Be the Cowboy - Remember My Name.opus", + "creation_date": "2022-07-15T13:28:44.024750Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/f519c08b-d355-47e9-a68a-c0d4946eb435/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103009, + "fid": "https://tanukitunes.com/federation/music/tracks/f519c08b-d355-47e9-a68a-c0d4946eb435", + "mbid": "2293e1a3-0993-4542-b94b-fe92d035c653", + "title": "Remember My Name", + "creation_date": "2022-07-15T13:28:45.190692Z", + "is_local": true, + "position": 6, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 135, + "bitrate": 0, + "size": 2240941, + "import_date": "2022-07-15T13:28:45.218509Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 06 Remember My Name.opus" + }, + { + "uuid": "51d86f90-e3ed-4a8b-ae61-27bc2661d37e", + "filename": "Mitski - Be the Cowboy - Me and My Husband.opus", + "creation_date": "2022-07-15T13:28:42.965565Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/536f2dbf-9238-48b1-8df4-0100fbfa3f2d/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103008, + "fid": "https://tanukitunes.com/federation/music/tracks/536f2dbf-9238-48b1-8df4-0100fbfa3f2d", + "mbid": "aa2e409c-ab42-4cf4-b6bb-005ff1dfb2a3", + "title": "Me and My Husband", + "creation_date": "2022-07-15T13:28:44.151794Z", + "is_local": true, + "position": 7, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 137, + "bitrate": 0, + "size": 2363873, + "import_date": "2022-07-15T13:28:44.178993Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 07 Me and My Husband.opus" + }, + { + "uuid": "fa33e360-3e16-41cd-85dd-7641fa4741b4", + "filename": "Mitski - Be the Cowboy - Come Into the Water.opus", + "creation_date": "2022-07-15T13:28:42.115245Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/7a326170-c5e9-4506-b27a-14c241051440/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103007, + "fid": "https://tanukitunes.com/federation/music/tracks/7a326170-c5e9-4506-b27a-14c241051440", + "mbid": "2f4b0c2b-bd28-4d78-82ad-f58ec75591f2", + "title": "Come Into the Water", + "creation_date": "2022-07-15T13:28:43.147168Z", + "is_local": true, + "position": 8, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 92, + "bitrate": 0, + "size": 1670969, + "import_date": "2022-07-15T13:28:43.181773Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 08 Come into the Water.opus" + }, + { + "uuid": "ccd341ee-d7a7-481a-bc6e-24ff24b1ec54", + "filename": "Mitski - Be the Cowboy - Nobody.opus", + "creation_date": "2022-07-15T13:28:41.291864Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/422d9e27-d616-4e40-a605-f08fe8802da7/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103006, + "fid": "https://tanukitunes.com/federation/music/tracks/422d9e27-d616-4e40-a605-f08fe8802da7", + "mbid": "e77b161d-664d-413e-bd04-f0a8ac205735", + "title": "Nobody", + "creation_date": "2022-07-15T13:28:42.173579Z", + "is_local": true, + "position": 9, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 193, + "bitrate": 0, + "size": 3334168, + "import_date": "2022-07-15T13:28:42.198878Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 09 Nobody.opus" + }, + { + "uuid": "4b6521de-edf9-4e4d-a634-b58174dd7b39", + "filename": "Mitski - Be the Cowboy - Pink in the Night.opus", + "creation_date": "2022-07-15T13:28:40.210171Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/e7f1cac5-21cf-4f22-a4d0-3de6d52fae49/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103005, + "fid": "https://tanukitunes.com/federation/music/tracks/e7f1cac5-21cf-4f22-a4d0-3de6d52fae49", + "mbid": "063877ae-a817-4392-a9f1-3451696e58a5", + "title": "Pink in the Night", + "creation_date": "2022-07-15T13:28:41.234195Z", + "is_local": true, + "position": 10, + "disc_number": 1, + "downloads_count": 5, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 136, + "bitrate": 0, + "size": 2323407, + "import_date": "2022-07-15T13:28:41.305124Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 10 Pink in the Night.opus" + }, + { + "uuid": "bbf38caa-b354-456f-9ceb-f9bd08750755", + "filename": "Mitski - Be the Cowboy - A Horse Named Cold Air.opus", + "creation_date": "2022-07-15T13:28:39.385462Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/b880d5e7-1256-462b-9e30-7b7756ae9182/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103004, + "fid": "https://tanukitunes.com/federation/music/tracks/b880d5e7-1256-462b-9e30-7b7756ae9182", + "mbid": "9d85d12a-465a-478b-9d84-9186a45271d2", + "title": "A Horse Named Cold Air", + "creation_date": "2022-07-15T13:28:40.386939Z", + "is_local": true, + "position": 11, + "disc_number": 1, + "downloads_count": 6, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 123, + "bitrate": 0, + "size": 2288139, + "import_date": "2022-07-15T13:28:40.408947Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 11 A Horse Named Cold Air.opus" + }, + { + "uuid": "f592082d-01b4-4827-9bc2-61579efaca6e", + "filename": "Mitski - Be the Cowboy - Washing Machine Heart.opus", + "creation_date": "2022-07-15T13:28:38.450868Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/73dd78b4-57d6-4555-8e4f-0e02d8459f8d/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103003, + "fid": "https://tanukitunes.com/federation/music/tracks/73dd78b4-57d6-4555-8e4f-0e02d8459f8d", + "mbid": "422ddf55-33c5-4111-b039-5ac48c0ad9a6", + "title": "Washing Machine Heart", + "creation_date": "2022-07-15T13:28:39.572887Z", + "is_local": true, + "position": 12, + "disc_number": 1, + "downloads_count": 8, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 128, + "bitrate": 0, + "size": 2184300, + "import_date": "2022-07-15T13:28:39.596511Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 12 Washing Machine Heart.opus" + }, + { + "uuid": "60cd3b58-f2ee-4536-b633-be71db83eef1", + "filename": "Mitski - Be the Cowboy - Blue Light.opus", + "creation_date": "2022-07-15T13:28:37.640507Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/cdea6967-b9e9-4680-a1f5-e50fed982762/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103002, + "fid": "https://tanukitunes.com/federation/music/tracks/cdea6967-b9e9-4680-a1f5-e50fed982762", + "mbid": "16a5ef95-6f02-4f52-9e29-cd77110187dd", + "title": "Blue Light", + "creation_date": "2022-07-15T13:28:38.505085Z", + "is_local": true, + "position": 13, + "disc_number": 1, + "downloads_count": 8, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 103, + "bitrate": 0, + "size": 1720031, + "import_date": "2022-07-15T13:28:38.528183Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 13 Blue Light.opus" + }, + { + "uuid": "1d71ea30-07e1-446c-80a9-0f870c50b6f4", + "filename": "Mitski - Be the Cowboy - Two Slow Dancers.opus", + "creation_date": "2022-07-15T13:28:36.852782Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12765, + "fid": "https://tanukitunes.com/federation/music/albums/4359545c-4e4f-4c27-bf7a-1b356bf3971a", + "mbid": "52eeba43-55ea-4c30-8e08-e2b174a2ddac", + "title": "Be the Cowboy", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2018-08-17", + "cover": { + "uuid": "119124ed-4bd3-40d0-ae4e-9e34826a50d0", + "size": 57654, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:28:37.206741Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=d38f308df666f6c5950e4ca1192426624bcb6e093d71560c869fa5dbeea1a029", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=661ef8a09ab45458b5e646965faba7e2e8c48eea3f091c2a5fb1cf321e7524fd", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/26/06/7d/attachment_cover-4359545c-4e4f-4c27-bf7a-1b356bf3971a-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=79d98abe4c987ff829c1dc5159ad694bd79f0953be74943b872abb69996fc940" + } + }, + "creation_date": "2022-07-15T13:28:37.196451Z", + "is_local": true, + "tracks_count": 14 + }, + "uploads": [], + "listen_url": "/api/v1/listen/d1953bed-c6e5-4fb8-90f3-6e6c4ba2762e/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103001, + "fid": "https://tanukitunes.com/federation/music/tracks/d1953bed-c6e5-4fb8-90f3-6e6c4ba2762e", + "mbid": "3a34517b-8c36-440f-ade0-05bc5c40609c", + "title": "Two Slow Dancers", + "creation_date": "2022-07-15T13:28:37.491206Z", + "is_local": true, + "position": 14, + "disc_number": 1, + "downloads_count": 9, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 239, + "bitrate": 0, + "size": 4221876, + "import_date": "2022-07-15T13:28:37.523152Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Be the Cowboy - 14 Two Slow Dancers.opus" + }, + { + "uuid": "2aea0321-0416-4d5b-a6a4-af9c2b0c8f55", + "creation_date": "2022-05-23T15:08:10.523226Z", + "mimetype": "audio/mpeg", + "track": null, + "library": { + "uuid": "56574b9f-0ccc-436c-b592-06663639d2c7", + "fid": "https://tanukitunes.com/federation/music/libraries/56574b9f-0ccc-436c-b592-06663639d2c7", + "name": "ciaranainsworth", + "description": null, + "privacy_level": "everyone", + "uploads_count": 0, + "size": 0, + "creation_date": "2020-04-13T18:04:02.533228Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 27, + "bitrate": 224000, + "size": 764176, + "import_date": null, + "import_status": "draft", + "import_details": {}, + "import_metadata": { + "tags": [ + "Cinematic" + ], + "album": 10703, + "title": "Impact Moderato", + "license": "cc0-1.0" + }, + "import_reference": "188f6d98-c8e3-4164-8321-161a25addd0f", + "metadata": {}, + "source": "upload://file_example_MP3_700KB.mp3" + }, + { + "uuid": "68e7f99a-6da6-4f20-a347-5c2c9e781a02", + "filename": "Iacobus de Albion - Messe en Midi - Chanson.opus", + "creation_date": "2022-03-07T14:44:14.235217Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 12130, + "fid": "https://tanukitunes.com/federation/music/artists/1f906ce9-8d35-44a1-954e-93d96a1b92da", + "mbid": "d661920f-0513-47c3-abcc-2a0ad5dc6df6", + "name": "Iacobus de Albion", + "creation_date": "2022-03-07T14:44:09.068013Z", + "modification_date": "2022-03-07T14:44:09.068069Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11617, + "fid": "https://tanukitunes.com/federation/music/albums/7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b", + "mbid": "3e4c85a2-2286-42cc-ab95-739d582a51cb", + "title": "Messe en Midi", + "artist": { + "id": 12130, + "fid": "https://tanukitunes.com/federation/music/artists/1f906ce9-8d35-44a1-954e-93d96a1b92da", + "mbid": "d661920f-0513-47c3-abcc-2a0ad5dc6df6", + "name": "Iacobus de Albion", + "creation_date": "2022-03-07T14:44:09.068013Z", + "modification_date": "2022-03-07T14:44:09.068069Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-03-04", + "cover": { + "uuid": "19de364f-73c8-48e6-9b59-6aa901fe35b6", + "size": 1098515, + "mimetype": "image/png", + "creation_date": "2022-03-07T14:44:09.077808Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b59957c81bb6ac9fae7fe6115fe9b4f28fc34b5fed45bbadc30443c3c223e2cf", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b92c5bbd662b51cf51ae097000f75bbf8a90e51993af96ae6d7f6b172a9dac6f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e9cb311d4cd80c379fa6e140178ba296339ba3e648b8459b663479bb82f36a35" + } + }, + "creation_date": "2022-03-07T14:44:09.074117Z", + "is_local": true, + "tracks_count": 3 + }, + "uploads": [], + "listen_url": "/api/v1/listen/5716c1c4-5cfb-4886-b38e-ce313aa385c5/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 96932, + "fid": "https://tanukitunes.com/federation/music/tracks/5716c1c4-5cfb-4886-b38e-ce313aa385c5", + "mbid": "6bce72e4-e65c-4815-8a9b-371cf809f94d", + "title": "Chanson", + "creation_date": "2022-03-07T14:44:14.720409Z", + "is_local": true, + "position": 3, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 603, + "bitrate": 0, + "size": 12078620, + "import_date": "2022-03-07T14:44:14.752568Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-03-07T15:43:57+01:00", + "metadata": {}, + "source": "upload://Iacobus de Albion - Messe en Midi - 03 Chanson.opus" + }, + { + "uuid": "7f8f52a2-7098-40e0-b833-3473f4b3423a", + "filename": "Iacobus de Albion - Messe en Midi - Kyrie.opus", + "creation_date": "2022-03-07T14:44:11.091864Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 12130, + "fid": "https://tanukitunes.com/federation/music/artists/1f906ce9-8d35-44a1-954e-93d96a1b92da", + "mbid": "d661920f-0513-47c3-abcc-2a0ad5dc6df6", + "name": "Iacobus de Albion", + "creation_date": "2022-03-07T14:44:09.068013Z", + "modification_date": "2022-03-07T14:44:09.068069Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11617, + "fid": "https://tanukitunes.com/federation/music/albums/7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b", + "mbid": "3e4c85a2-2286-42cc-ab95-739d582a51cb", + "title": "Messe en Midi", + "artist": { + "id": 12130, + "fid": "https://tanukitunes.com/federation/music/artists/1f906ce9-8d35-44a1-954e-93d96a1b92da", + "mbid": "d661920f-0513-47c3-abcc-2a0ad5dc6df6", + "name": "Iacobus de Albion", + "creation_date": "2022-03-07T14:44:09.068013Z", + "modification_date": "2022-03-07T14:44:09.068069Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-03-04", + "cover": { + "uuid": "19de364f-73c8-48e6-9b59-6aa901fe35b6", + "size": 1098515, + "mimetype": "image/png", + "creation_date": "2022-03-07T14:44:09.077808Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b59957c81bb6ac9fae7fe6115fe9b4f28fc34b5fed45bbadc30443c3c223e2cf", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b92c5bbd662b51cf51ae097000f75bbf8a90e51993af96ae6d7f6b172a9dac6f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e9cb311d4cd80c379fa6e140178ba296339ba3e648b8459b663479bb82f36a35" + } + }, + "creation_date": "2022-03-07T14:44:09.074117Z", + "is_local": true, + "tracks_count": 3 + }, + "uploads": [], + "listen_url": "/api/v1/listen/1a7c9ef8-e550-47fc-a945-6a3c2f78b129/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 96931, + "fid": "https://tanukitunes.com/federation/music/tracks/1a7c9ef8-e550-47fc-a945-6a3c2f78b129", + "mbid": "d340e767-e483-4380-9944-743dcf5daee2", + "title": "Kyrie", + "creation_date": "2022-03-07T14:44:11.471040Z", + "is_local": true, + "position": 2, + "disc_number": 1, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 424, + "bitrate": 0, + "size": 8325510, + "import_date": "2022-03-07T14:44:11.503032Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-03-07T15:43:57+01:00", + "metadata": {}, + "source": "upload://Iacobus de Albion - Messe en Midi - 02 Kyrie.opus" + }, + { + "uuid": "92defa81-c323-4147-b931-23e520d69291", + "filename": "Iacobus de Albion - Messe en Midi - Introit.opus", + "creation_date": "2022-03-07T14:44:08.733838Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 12130, + "fid": "https://tanukitunes.com/federation/music/artists/1f906ce9-8d35-44a1-954e-93d96a1b92da", + "mbid": "d661920f-0513-47c3-abcc-2a0ad5dc6df6", + "name": "Iacobus de Albion", + "creation_date": "2022-03-07T14:44:09.068013Z", + "modification_date": "2022-03-07T14:44:09.068069Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11617, + "fid": "https://tanukitunes.com/federation/music/albums/7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b", + "mbid": "3e4c85a2-2286-42cc-ab95-739d582a51cb", + "title": "Messe en Midi", + "artist": { + "id": 12130, + "fid": "https://tanukitunes.com/federation/music/artists/1f906ce9-8d35-44a1-954e-93d96a1b92da", + "mbid": "d661920f-0513-47c3-abcc-2a0ad5dc6df6", + "name": "Iacobus de Albion", + "creation_date": "2022-03-07T14:44:09.068013Z", + "modification_date": "2022-03-07T14:44:09.068069Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-03-04", + "cover": { + "uuid": "19de364f-73c8-48e6-9b59-6aa901fe35b6", + "size": 1098515, + "mimetype": "image/png", + "creation_date": "2022-03-07T14:44:09.077808Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b59957c81bb6ac9fae7fe6115fe9b4f28fc34b5fed45bbadc30443c3c223e2cf", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b-crop-c0-5__0-5-200x200.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b92c5bbd662b51cf51ae097000f75bbf8a90e51993af96ae6d7f6b172a9dac6f", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/00/81/2c/attachment_cover-7fcdb9af-1342-4bc8-b2cb-32cbd4259b9b-crop-c0-5__0-5-600x600.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e9cb311d4cd80c379fa6e140178ba296339ba3e648b8459b663479bb82f36a35" + } + }, + "creation_date": "2022-03-07T14:44:09.074117Z", + "is_local": true, + "tracks_count": 3 + }, + "uploads": [], + "listen_url": "/api/v1/listen/a201114f-d89e-40dd-a852-72e3c0058647/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 96930, + "fid": "https://tanukitunes.com/federation/music/tracks/a201114f-d89e-40dd-a852-72e3c0058647", + "mbid": "ab43f65a-bdc2-4d12-ac0a-0554cfbf7ce5", + "title": "Introit", + "creation_date": "2022-03-07T14:44:09.780408Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 1, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 240, + "bitrate": 0, + "size": 5102533, + "import_date": "2022-03-07T14:44:09.816749Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-03-07T15:43:57+01:00", + "metadata": {}, + "source": "upload://Iacobus de Albion - Messe en Midi - 01 Introit.opus" + }, + { + "uuid": "184c3649-3808-4235-9c7d-605b2247e34f", + "filename": "hyacinth. - all dreams fade. - finesse..opus", + "creation_date": "2022-03-07T14:29:59.404774Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 12129, + "fid": "https://tanukitunes.com/federation/music/artists/c703b13b-11be-4c50-af8d-727c2c19b002", + "mbid": "13d5cbb5-de7b-443e-a09f-e05e77639fde", + "name": "hyacinth.", + "creation_date": "2022-03-07T14:29:51.208260Z", + "modification_date": "2022-03-07T14:29:51.208355Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 11616, + "fid": "https://tanukitunes.com/federation/music/albums/03bcc123-2b07-4a24-bfc3-2ed356e13b14", + "mbid": "932afb26-5313-48f2-90d5-4a5ad1e6085e", + "title": "all dreams fade.", + "artist": { + "id": 12129, + "fid": "https://tanukitunes.com/federation/music/artists/c703b13b-11be-4c50-af8d-727c2c19b002", + "mbid": "13d5cbb5-de7b-443e-a09f-e05e77639fde", + "name": "hyacinth.", + "creation_date": "2022-03-07T14:29:51.208260Z", + "modification_date": "2022-03-07T14:29:51.208355Z", + "is_local": true, + "content_category": "music", + "description": null, + "attachment_cover": null, + "channel": null + }, + "release_date": "2022-03-04", + "cover": { + "uuid": "a5979d59-5354-45c7-bc66-13216632aff3", + "size": 74070, + "mimetype": "image/jpeg", + "creation_date": "2022-03-07T14:29:51.221548Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/96/fa/1b/attachment_cover-03bcc123-2b07-4a24-bfc3-2ed356e13b14.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=de805deffe80ffdf97acca694ba30504c91adafbf7dc063b0d028f22f4a2c83b", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/96/fa/1b/attachment_cover-03bcc123-2b07-4a24-bfc3-2ed356e13b14-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=1878c9d3364ab3ed88cda97f7a2d6d038a66fa4a0003e0d880d36608ded94a11", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/96/fa/1b/attachment_cover-03bcc123-2b07-4a24-bfc3-2ed356e13b14-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220925T210355Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=048365eaa1df8362c2b3b0b9a2174387bbf9f56c8166f548e19203282d44aac4" + } + }, + "creation_date": "2022-03-07T14:29:51.216198Z", + "is_local": true, + "tracks_count": 15 + }, + "uploads": [], + "listen_url": "/api/v1/listen/cbd33af1-d2f9-4488-bb4d-736cdae11459/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 96929, + "fid": "https://tanukitunes.com/federation/music/tracks/cbd33af1-d2f9-4488-bb4d-736cdae11459", + "mbid": "226f8b5d-c786-49c1-a243-563fd7533d2a", + "title": "finesse.", + "creation_date": "2022-03-07T14:30:05.758466Z", + "is_local": true, + "position": 15, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 63, + "bitrate": 0, + "size": 1082120, + "import_date": "2022-03-07T14:30:05.789842Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-03-07T15:29:40+01:00", + "metadata": {}, + "source": "upload://hyacinth. - all dreams fade. - 15 finesse..opus" + } + ] +} \ No newline at end of file diff --git a/tests/data/uploads/upload_for_owner.json b/tests/data/uploads/upload_for_owner.json new file mode 100644 index 0000000000000000000000000000000000000000..af3c0230543dbfdb16dca6c9ccd39200f81ad5fd --- /dev/null +++ b/tests/data/uploads/upload_for_owner.json @@ -0,0 +1,128 @@ +{ + "uuid": "45538feb-3eed-42eb-ade5-f18913e3ba38", + "filename": "Mitski - Puberty 2 - Happy.opus", + "creation_date": "2022-07-15T13:29:20.617644Z", + "mimetype": "audio/opus", + "track": { + "cover": null, + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "album": { + "id": 12767, + "fid": "https://tanukitunes.com/federation/music/albums/1f16aa88-0111-4b9d-bfe5-29426b329152", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "title": "Puberty 2", + "artist": { + "id": 10243, + "fid": "https://tanukitunes.com/federation/music/artists/e3a9e4c0-67c6-491d-af9d-567d5db9ffc2", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5", + "name": "Mitski", + "creation_date": "2021-02-21T17:48:30.093187Z", + "modification_date": "2021-02-21T17:48:30.093334Z", + "is_local": true, + "content_category": "music", + "description": { + "text": "Mitski Miyawaki is a Japanese-born American singer-songwriter.", + "content_type": "text/markdown", + "html": "<p>Mitski Miyawaki is a Japanese-born American singer-songwriter.</p>" + }, + "attachment_cover": null, + "channel": null + }, + "release_date": "2016-06-17", + "cover": { + "uuid": "a1219dc3-c40f-4407-96e2-a35231dd086b", + "size": 87793, + "mimetype": "image/jpeg", + "creation_date": "2022-07-15T13:29:11.331335Z", + "urls": { + "source": null, + "original": "https://fra1.digitaloceanspaces.com/tanukitunes/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220926%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220926T111541Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b536d9d1b6fc49f5c076978d18a94c5fe49da4de6ec3652add6d7881f3a72116", + "medium_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-200x200-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220926%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220926T111541Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=76c2749d89598d0ed425dc92227ea4aeddd4b6ceb656d8442448d8319b1384e1", + "large_square_crop": "https://fra1.digitaloceanspaces.com/tanukitunes/__sized__/attachments/a5/19/ab/attachment_cover-1f16aa88-0111-4b9d-bfe5-29426b329152-crop-c0-5__0-5-600x600-95.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=CKT5DNTMO5K4DPLYNTIY%2F20220926%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220926T111541Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=b70e885921b242d26cb44405cb58630ea02cffcbf580df749ed6e99e70b95311" + } + }, + "creation_date": "2022-07-15T13:29:11.326712Z", + "is_local": true, + "tracks_count": 11 + }, + "uploads": [], + "listen_url": "/api/v1/listen/4a04b811-0db4-45f2-86db-fbaa8aa47eab/", + "tags": [], + "attributed_to": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + }, + "id": 103044, + "fid": "https://tanukitunes.com/federation/music/tracks/4a04b811-0db4-45f2-86db-fbaa8aa47eab", + "mbid": "cbb1ae16-9795-4648-b19a-f39662ea0847", + "title": "Happy", + "creation_date": "2022-07-15T13:29:21.345571Z", + "is_local": true, + "position": 1, + "disc_number": 1, + "downloads_count": 0, + "copyright": null, + "license": null, + "is_playable": false + }, + "library": { + "uuid": "a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "fid": "https://tanukitunes.com/federation/music/libraries/a6309d46-47c6-4a55-be1a-7cfa3cba625c", + "name": "My Personal Library", + "description": "This library contains a personal collection of music only visible to myself", + "privacy_level": "me", + "uploads_count": 0, + "size": 0, + "creation_date": "2018-12-12T22:16:34.002451Z", + "actor": { + "fid": "https://tanukitunes.com/federation/actors/doctorworm", + "url": null, + "creation_date": "2018-12-12T22:12:18Z", + "summary": null, + "preferred_username": "doctorworm", + "name": "doctorworm", + "last_fetch_date": "2021-06-13T14:13:41Z", + "domain": "tanukitunes.com", + "type": "Person", + "manually_approves_followers": false, + "full_username": "doctorworm@tanukitunes.com", + "is_local": true + } + }, + "duration": 220, + "bitrate": 0, + "size": 3803153, + "import_date": "2022-07-15T13:29:21.373486Z", + "import_status": "finished", + "import_details": {}, + "import_metadata": {}, + "import_reference": "2022-07-15T14:01:59+02:00", + "metadata": {}, + "source": "upload://Mitski - Puberty 2 - 01 Happy.opus" +} \ No newline at end of file diff --git a/tests/data/uploads/upload_for_owner_metadata.json b/tests/data/uploads/upload_for_owner_metadata.json new file mode 100644 index 0000000000000000000000000000000000000000..45a9496d409f70132fffbdafdf95c9dc878d8f0c --- /dev/null +++ b/tests/data/uploads/upload_for_owner_metadata.json @@ -0,0 +1,32 @@ +{ + "title": "Happy", + "position": 1, + "disc_number": 1, + "mbid": "cbb1ae16-9795-4648-b19a-f39662ea0847", + "tags": [ + "IndieRock" + ], + "album": { + "title": "Puberty 2", + "mbid": "d2e5129b-7a04-4be2-b303-cfe48d2c2c26", + "release_date": "2016-06-17", + "artists": [ + { + "name": "Mitski", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5" + } + ], + "cover_data": { + "mimetype": "image/jpeg", + "content": "/9j/4AAQSkZJRgABAQEAPAA8AAD/4QC8RXhpZgAASUkqAAgAAAAGABIBAwABAAAAAQAAABoBBQABAAAAVgAAABsBBQABAAAAXgAAACgBAwABAAAAAgAAABMCAwABAAAAAQAAAGmHBAABAAAAZgAAAAAAAAA8AAAAAQAAADwAAAABAAAABgAAkAcABAAAADAyMTABkQcABAAAAAECAwAAoAcABAAAADAxMDABoAMAAQAAAP//AAACoAMAAQAAAFcCAAADoAMAAQAAAFgCAAAAAAAA/+ENY2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4bXB0az0nSW1hZ2U6OkV4aWZUb29sIDExLjg4Jz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOmV4aWY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvJz4KICA8ZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgPHJkZjpTZXE+CiAgICA8cmRmOmxpPjE8L3JkZjpsaT4KICAgIDxyZGY6bGk+MjwvcmRmOmxpPgogICAgPHJkZjpsaT4zPC9yZGY6bGk+CiAgICA8cmRmOmxpPjA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6dGlmZj0naHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8nPgogIDx0aWZmOkJpdHNQZXJTYW1wbGU+CiAgIDxyZGY6U2VxPgogICAgPHJkZjpsaT44PC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L3RpZmY6Qml0c1BlclNhbXBsZT4KICA8dGlmZjpJbWFnZUxlbmd0aD42MDA8L3RpZmY6SW1hZ2VMZW5ndGg+CiAgPHRpZmY6SW1hZ2VXaWR0aD41OTk8L3RpZmY6SW1hZ2VXaWR0aD4KICA8dGlmZjpZQ2JDclBvc2l0aW9uaW5nPjE8L3RpZmY6WUNiQ3JQb3NpdGlvbmluZz4KICA8dGlmZjpZQ2JDclN1YlNhbXBsaW5nPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGk+MTwvcmRmOmxpPgogICAgPHJkZjpsaT4xPC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L3RpZmY6WUNiQ3JTdWJTYW1wbGluZz4KIDwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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", + "description": "", + "type": 3 + } + }, + "artists": [ + { + "name": "Mitski", + "mbid": "fa58cf24-0e44-421d-8519-8bf461dcfaa5" + } + ] +} \ No newline at end of file diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py index addb588ab26d21f479504ad5742dbfcd24ab6993..543dfed7cd9077827b8593d48e294cff6660a15f 100644 --- a/tests/integration/conftest.py +++ b/tests/integration/conftest.py @@ -2,7 +2,7 @@ import pytest from funkwhale_api_client import Client + @pytest.fixture def client() -> Client: return Client(base_url="https://soundship.de") - diff --git a/tests/integration/test_activity.py b/tests/integration/test_activity.py index 45e385adf394e93d880010997d2264fc27061893..94a0842579fa29ae8b212bc83f9067172a22f2f0 100644 --- a/tests/integration/test_activity.py +++ b/tests/integration/test_activity.py @@ -1,7 +1,6 @@ -from funkwhale_api_client.models import PaginatedAlbumList - from funkwhale_api_client.api.activity import activity_list + def test_activity_list(client): response = activity_list.sync_detailed(client=client) print(response) @@ -10,5 +9,5 @@ def test_activity_list(client): # This endoint currently does not have any serializer, so the generated lib # cannot deserialize the json into objects. TODO! - #for activity in activities.results: + # for activity in activities.results: # print(activity) diff --git a/tests/integration/test_albums.py b/tests/integration/test_albums.py index 39c52c30c1c5351b7bcd563e69a5884aac73b0f5..6078f3448493accfe221df44154977fb2327c7fc 100644 --- a/tests/integration/test_albums.py +++ b/tests/integration/test_albums.py @@ -1,13 +1,14 @@ +from funkwhale_api_client.api.albums import albums_list, albums_retrieve from funkwhale_api_client.models import PaginatedAlbumList -from funkwhale_api_client.api.albums import albums_list, albums_retrieve def test_album_list(client): - albums : PaginatedAlbumList = albums_list.sync(client=client) + albums: PaginatedAlbumList = albums_list.sync(client=client) for album in albums.results: print(album.title) + def test_album_retrieve(client): - album = albums_retrieve.sync(client=client, id=12) + album = albums_retrieve.sync(client=client, id=12) print(album) diff --git a/tests/integration/test_artists.py b/tests/integration/test_artists.py index cb349fa02b62a4fb8be6cb25b1e8a1b46c9df6b6..4aee1197bd065931a4d2daa47ba783b00aa00749 100644 --- a/tests/integration/test_artists.py +++ b/tests/integration/test_artists.py @@ -1,5 +1,6 @@ -from funkwhale_api_client.models import PaginatedArtistWithAlbumsList from funkwhale_api_client.api.artists import artists_list +from funkwhale_api_client.models import PaginatedArtistWithAlbumsList + def test_artist_list(client): artists: PaginatedArtistWithAlbumsList | None = artists_list.sync(client=client) diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py index 28e4fa7c9010f73bf43f32ec70d86915f9c1b185..79f092e888d9283132a539fc03733607435e3de4 100644 --- a/tests/unit/conftest.py +++ b/tests/unit/conftest.py @@ -1,11 +1,12 @@ -import pytest import json +import pytest + + @pytest.fixture def load_data(): - - def _load_data(requested_file : str): - with open(f'tests/data/{requested_file}.json') as data: + def _load_data(requested_file: str): + with open(f"tests/data/{requested_file}.json") as data: return json.load(data) return _load_data diff --git a/tests/unit/test_model_activity_object.py b/tests/unit/test_model_activity_object.py new file mode 100644 index 0000000000000000000000000000000000000000..66908454aad4d2795a713b5a0ea844cf66f5362a --- /dev/null +++ b/tests/unit/test_model_activity_object.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.activity_object import ActivityObject + + +def test_ActivityObject(load_data): + response = load_data("activity/activity") + activity: ActivityObject = ActivityObject.from_dict(response) + + assert isinstance(activity, ActivityObject) diff --git a/tests/unit/test_model_activity_related_object.py b/tests/unit/test_model_activity_related_object.py new file mode 100644 index 0000000000000000000000000000000000000000..c56c5b90a87757941eb9aae93c5d71e87e9282e6 --- /dev/null +++ b/tests/unit/test_model_activity_related_object.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.activity_related_object import ActivityRelatedObject + + +def test_ActivityRelatedObject(load_data): + response = load_data("activity/activity") + activity_related_object: ActivityRelatedObject = ActivityRelatedObject.from_dict(response) + + assert isinstance(activity_related_object, ActivityRelatedObject) diff --git a/tests/unit/test_model_album.py b/tests/unit/test_model_album.py new file mode 100644 index 0000000000000000000000000000000000000000..ac81bb974f93e93a703f7a08f6b9f0f948f652db --- /dev/null +++ b/tests/unit/test_model_album.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.album import Album + + +def test_Album(load_data): + response = load_data("albums/album") + album: Album = Album.from_dict(response) + + assert isinstance(album, Album) diff --git a/tests/unit/test_model_all_favorite.py b/tests/unit/test_model_all_favorite.py new file mode 100644 index 0000000000000000000000000000000000000000..334d636d4391aaddd9551720abc0a1bb872d45dc --- /dev/null +++ b/tests/unit/test_model_all_favorite.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.all_favorite import AllFavorite + + +def test_AllFavorite(load_data): + response = load_data("favorites/favorites_all") + favorites: AllFavorite = AllFavorite.from_dict(response) + + assert isinstance(favorites, AllFavorite) diff --git a/tests/unit/test_model_artist_with_albums.py b/tests/unit/test_model_artist_with_albums.py new file mode 100644 index 0000000000000000000000000000000000000000..5b7b034ed27ebba66d7a657cea525f3c497a0440 --- /dev/null +++ b/tests/unit/test_model_artist_with_albums.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.artist_with_albums import ArtistWithAlbums + + +def test_ArtistWithAlbums(load_data): + response = load_data("artists/artist_with_albums") + artist: ArtistWithAlbums = ArtistWithAlbums.from_dict(response) + + assert isinstance(artist, ArtistWithAlbums) diff --git a/tests/unit/test_model_attachment.py b/tests/unit/test_model_attachment.py new file mode 100644 index 0000000000000000000000000000000000000000..f78d09473dca782f301fb704d3a1cc5d2189b89c --- /dev/null +++ b/tests/unit/test_model_attachment.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.attachment import Attachment + + +def test_Attachment(load_data): + response = load_data("attachments/attachment") + attachment: Attachment = Attachment.from_dict(response) + + assert isinstance(attachment, Attachment) diff --git a/tests/unit/test_model_channel.py b/tests/unit/test_model_channel.py new file mode 100644 index 0000000000000000000000000000000000000000..14518bc01cf8c5b283a2edb11b20bbee13960b1d --- /dev/null +++ b/tests/unit/test_model_channel.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.channel import Channel + + +def test_Channel(load_data): + response = load_data("channels/channel") + channel: Channel = Channel.from_dict(response) + + assert isinstance(channel, Channel) diff --git a/tests/unit/test_model_global_preference.py b/tests/unit/test_model_global_preference.py new file mode 100644 index 0000000000000000000000000000000000000000..0d4ef13a48fd0fcc5ab6f5453077bdc8c580ca3b --- /dev/null +++ b/tests/unit/test_model_global_preference.py @@ -0,0 +1,13 @@ +import pytest + +from funkwhale_api_client.models.global_preference import GlobalPreference + + +# The global preferences are really generic and we need to find a way to specify +# any as type +@pytest.mark.xfail +def test_GlobalPreference(load_data): + response = load_data("instance/global_preference") + settings: GlobalPreference = GlobalPreference.from_dict(response) + + assert isinstance(settings, GlobalPreference) diff --git a/tests/unit/test_model_global_preference_request.py b/tests/unit/test_model_global_preference_request.py new file mode 100644 index 0000000000000000000000000000000000000000..c5bde7da198334657e8d9cbd85ca971494cea1be --- /dev/null +++ b/tests/unit/test_model_global_preference_request.py @@ -0,0 +1,13 @@ +import pytest + +from funkwhale_api_client.models.global_preference_request import GlobalPreferenceRequest + + +# The global preferences are really generic and we need to find a way to specify +# any as type +@pytest.mark.xfail +def test_GlobalPreferenceRequest(load_data): + response = load_data("instance/global_preference_request") + preference_request: GlobalPreferenceRequest = GlobalPreferenceRequest.from_dict(response) + + assert isinstance(preference_request, GlobalPreferenceRequest) diff --git a/tests/unit/test_model_inbox_item.py b/tests/unit/test_model_inbox_item.py new file mode 100644 index 0000000000000000000000000000000000000000..029f5b56f998faf7cb8195a2f204ab95fe516da9 --- /dev/null +++ b/tests/unit/test_model_inbox_item.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.inbox_item import InboxItem + + +def test_InboxItem(load_data): + response = load_data("federation/federation_inbox_item") + inbox_item: InboxItem = InboxItem.from_dict(response) + + assert isinstance(inbox_item, InboxItem) diff --git a/tests/unit/test_model_library.py b/tests/unit/test_model_library.py new file mode 100644 index 0000000000000000000000000000000000000000..0ae26b2ec51506f7f33a3c2e7e6b373104955357 --- /dev/null +++ b/tests/unit/test_model_library.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.library import Library + + +def test_Library(load_data): + response = load_data("libraries/library") + library: Library = Library.from_dict(response) + + assert isinstance(library, Library) diff --git a/tests/unit/test_model_library_follow.py b/tests/unit/test_model_library_follow.py new file mode 100644 index 0000000000000000000000000000000000000000..5f487fadb818aab310e5c6f42035a4971e970f84 --- /dev/null +++ b/tests/unit/test_model_library_follow.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.library_follow import LibraryFollow + + +def test_LibraryFollow(load_data): + response = load_data("federation/library_follow") + library_follow: LibraryFollow = LibraryFollow.from_dict(response) + + assert isinstance(library_follow, LibraryFollow) diff --git a/tests/unit/test_model_library_follow_all.py b/tests/unit/test_model_library_follow_all.py new file mode 100644 index 0000000000000000000000000000000000000000..868a55c843f08e918ce09f7ebcb84323e4cb4c99 --- /dev/null +++ b/tests/unit/test_model_library_follow_all.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.library_follow import LibraryFollow + + +def test_LibraryFollowAll(load_data): + response = load_data("federation/library_follow") + library_follow_all: LibraryFollow = LibraryFollow.from_dict(response) + + assert isinstance(library_follow_all, LibraryFollow) diff --git a/tests/unit/test_model_library_follow_request.py b/tests/unit/test_model_library_follow_request.py new file mode 100644 index 0000000000000000000000000000000000000000..0b096e7a0de8b7f38444cf23d2ec84627a0cca71 --- /dev/null +++ b/tests/unit/test_model_library_follow_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.library_follow_request import LibraryFollowRequest + + +def test_LibraryFollowRequest(load_data): + response = load_data("federation/library_follow_request") + follow_request: LibraryFollowRequest = LibraryFollowRequest.from_dict(response) + + assert isinstance(follow_request, LibraryFollowRequest) diff --git a/tests/unit/test_model_license.py b/tests/unit/test_model_license.py new file mode 100644 index 0000000000000000000000000000000000000000..273f49f03a226dfc29dee1ae9ffe0c382fdcae53 --- /dev/null +++ b/tests/unit/test_model_license.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.license_ import License + + +def test_License(load_data): + response = load_data("licenses/license") + license: License = License.from_dict(response) + + assert isinstance(license, License) diff --git a/tests/unit/test_model_listening.py b/tests/unit/test_model_listening.py new file mode 100644 index 0000000000000000000000000000000000000000..6d0643cd39d03370238ca98e9eac021d9a160f2c --- /dev/null +++ b/tests/unit/test_model_listening.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.listening import Listening + + +def test_Listening(load_data): + response = load_data("history/listening") + listening: Listening = Listening.from_dict(response) + + assert isinstance(listening, Listening) diff --git a/tests/unit/test_model_listening_write.py b/tests/unit/test_model_listening_write.py new file mode 100644 index 0000000000000000000000000000000000000000..cf50037af6a74585bd35de86ec059c830195b47c --- /dev/null +++ b/tests/unit/test_model_listening_write.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.listening_write import ListeningWrite + + +def test_ListeningWrite(load_data): + response = load_data("history/listening_write") + listening: ListeningWrite = ListeningWrite.from_dict(response) + + assert isinstance(listening, ListeningWrite) diff --git a/tests/unit/test_model_listening_write_request.py b/tests/unit/test_model_listening_write_request.py new file mode 100644 index 0000000000000000000000000000000000000000..1290a4f00992a201e410dc573375e8d1b573dfde --- /dev/null +++ b/tests/unit/test_model_listening_write_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.listening_write_request import ListeningWriteRequest + + +def test_ListeningWriteRequest(load_data): + response = load_data("history/listening_write_request") + listening: ListeningWriteRequest = ListeningWriteRequest.from_dict(response) + + assert isinstance(listening, ListeningWriteRequest) diff --git a/tests/unit/test_model_manage_album.py b/tests/unit/test_model_manage_album.py new file mode 100644 index 0000000000000000000000000000000000000000..4f80d626bb5713d03a369ef10070cf43fed7c689 --- /dev/null +++ b/tests/unit/test_model_manage_album.py @@ -0,0 +1,19 @@ +import pytest + +from funkwhale_api_client.models.manage_album import ManageAlbum + + +def test_ManageAlbum(load_data): + response = load_data("manage/manage_album") + album: ManageAlbum = ManageAlbum.from_dict(response) + + assert isinstance(album, ManageAlbum) + + +# We don't have a serializer here, refactorization needed +@pytest.mark.xfail +def test_ManageAlbumStats(load_data): + response = load_data("manage/manage_album_stats") + album_stats: ManageAlbum = ManageAlbum.from_dict(response) + + assert isinstance(album_stats, ManageAlbum) diff --git a/tests/unit/test_model_manage_artist.py b/tests/unit/test_model_manage_artist.py new file mode 100644 index 0000000000000000000000000000000000000000..6c12ca9c47197ac8aaaa6a5a29ac7c015f17a857 --- /dev/null +++ b/tests/unit/test_model_manage_artist.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_artist import ManageArtist + + +def test_ManageArtist(load_data): + response = load_data("manage/manage_artist") + artist: ManageArtist = ManageArtist.from_dict(response) + + assert isinstance(artist, ManageArtist) diff --git a/tests/unit/test_model_manage_channel.py b/tests/unit/test_model_manage_channel.py new file mode 100644 index 0000000000000000000000000000000000000000..df46d9967d6d9878c67358b4bd07e8c05c8bc2f9 --- /dev/null +++ b/tests/unit/test_model_manage_channel.py @@ -0,0 +1,19 @@ +import pytest + +from funkwhale_api_client.models.manage_channel import ManageChannel + + +def test_ManageChannel(load_data): + response = load_data("manage/manage_channel") + channel: ManageChannel = ManageChannel.from_dict(response) + + assert isinstance(channel, ManageChannel) + + +# We don't have a serializer here, refactorization needed +@pytest.mark.xfail +def test_ManageChannelStats(load_data): + response = load_data("manage/manage_channel_stats") + channel_stats: ManageChannel = ManageChannel.from_dict(response) + + assert isinstance(channel_stats, ManageChannel) diff --git a/tests/unit/test_model_manage_domain.py b/tests/unit/test_model_manage_domain.py new file mode 100644 index 0000000000000000000000000000000000000000..818178acd769eb76cdb2b35afb4366c4fdcbb743 --- /dev/null +++ b/tests/unit/test_model_manage_domain.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_domain import ManageDomain + + +def test_ManageDomain(load_data): + response = load_data("manage/manage_domain") + domain: ManageDomain = ManageDomain.from_dict(response) + + assert isinstance(domain, ManageDomain) diff --git a/tests/unit/test_model_manage_instance_policy.py b/tests/unit/test_model_manage_instance_policy.py new file mode 100644 index 0000000000000000000000000000000000000000..2dfef4998951f01cce2fd9158fe292c322a0a185 --- /dev/null +++ b/tests/unit/test_model_manage_instance_policy.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_instance_policy import ManageInstancePolicy + + +def test_ManageInstancePolicy(load_data): + response = load_data("manage/manage_instance_policy") + policy: ManageInstancePolicy = ManageInstancePolicy.from_dict(response) + + assert isinstance(policy, ManageInstancePolicy) diff --git a/tests/unit/test_model_manage_invitation.py b/tests/unit/test_model_manage_invitation.py new file mode 100644 index 0000000000000000000000000000000000000000..9a1246c514988f1bc09fa2846bf9027275abd911 --- /dev/null +++ b/tests/unit/test_model_manage_invitation.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_invitation import ManageInvitation + + +def test_ManageInvitation(load_data): + response = load_data("manage/manage_invitation") + invitation: ManageInvitation = ManageInvitation.from_dict(response) + + assert isinstance(invitation, ManageInvitation) diff --git a/tests/unit/test_model_manage_invitation_request.py b/tests/unit/test_model_manage_invitation_request.py new file mode 100644 index 0000000000000000000000000000000000000000..89a07ce22ce0782a5de05944f6a4d6325b92ccb8 --- /dev/null +++ b/tests/unit/test_model_manage_invitation_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_invitation_request import ManageInvitationRequest + + +def test_ManageInvitationRequest(load_data): + response = load_data("manage/manage_invitation_request") + request: ManageInvitationRequest = ManageInvitationRequest.from_dict(response) + + assert isinstance(request, ManageInvitationRequest) diff --git a/tests/unit/test_model_manage_library.py b/tests/unit/test_model_manage_library.py new file mode 100644 index 0000000000000000000000000000000000000000..37222e12e0d95c1d8dde93774ff8f7d5698e468c --- /dev/null +++ b/tests/unit/test_model_manage_library.py @@ -0,0 +1,19 @@ +import pytest + +from funkwhale_api_client.models.manage_library import ManageLibrary + + +def test_ManageLibrary(load_data): + response = load_data("manage/manage_library") + library: ManageLibrary = ManageLibrary.from_dict(response) + + assert isinstance(library, ManageLibrary) + + +## This is the wrong serializer and we don't have one +@pytest.mark.xfail +def test_ManageLibraryStats(load_data): + response = load_data("manage/manage_library_stats") + library_stats: ManageLibrary = ManageLibrary.from_dict(response) + + assert isinstance(library_stats, ManageLibrary) diff --git a/tests/unit/test_model_manage_note.py b/tests/unit/test_model_manage_note.py new file mode 100644 index 0000000000000000000000000000000000000000..6cdf8d839e19203a218b9e067f0d2802f1e17921 --- /dev/null +++ b/tests/unit/test_model_manage_note.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_note import ManageNote + + +def test_ManageNote(load_data): + response = load_data("manage/manage_note") + note: ManageNote = ManageNote.from_dict(response) + + assert isinstance(note, ManageNote) diff --git a/tests/unit/test_model_manage_note_request.py b/tests/unit/test_model_manage_note_request.py new file mode 100644 index 0000000000000000000000000000000000000000..3b281e395941b7a1f3237dc12d664f3ac9a49dba --- /dev/null +++ b/tests/unit/test_model_manage_note_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_note_request import ManageNoteRequest + + +def test_ManageNoteRequest(load_data): + response = load_data("manage/manage_note_request") + note: ManageNoteRequest = ManageNoteRequest.from_dict(response) + + assert isinstance(note, ManageNoteRequest) diff --git a/tests/unit/test_model_manage_report.py b/tests/unit/test_model_manage_report.py new file mode 100644 index 0000000000000000000000000000000000000000..42b17318aabf18d1ae5f2b5a99a43b27243d6e19 --- /dev/null +++ b/tests/unit/test_model_manage_report.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_report import ManageReport + + +def test_ManageReport(load_data): + response = load_data("manage/manage_report") + report: ManageReport = ManageReport.from_dict(response) + + assert isinstance(report, ManageReport) diff --git a/tests/unit/test_model_manage_report_request.py b/tests/unit/test_model_manage_report_request.py new file mode 100644 index 0000000000000000000000000000000000000000..f9b1d1a8dfa2fc5b44962d5811817c59d8c0f8ae --- /dev/null +++ b/tests/unit/test_model_manage_report_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_report_request import ManageReportRequest + + +def test_ManageReportRequest(load_data): + response = load_data("manage/manage_report_request") + request: ManageReportRequest = ManageReportRequest.from_dict(response) + + assert isinstance(request, ManageReportRequest) diff --git a/tests/unit/test_model_manage_track.py b/tests/unit/test_model_manage_track.py new file mode 100644 index 0000000000000000000000000000000000000000..5eef1d718ee1dc13d6ed9f6e1db4a4cce0501b24 --- /dev/null +++ b/tests/unit/test_model_manage_track.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_track import ManageTrack + + +def test_ManageTrack(load_data): + response = load_data("manage/manage_track") + track: ManageTrack = ManageTrack.from_dict(response) + + assert isinstance(track, ManageTrack) diff --git a/tests/unit/test_model_manage_upload.py b/tests/unit/test_model_manage_upload.py new file mode 100644 index 0000000000000000000000000000000000000000..b75e24b8e6046915d68bc1a2ff9f77d4556a2879 --- /dev/null +++ b/tests/unit/test_model_manage_upload.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_upload import ManageUpload + + +def test_ManageUpload(load_data): + response = load_data("manage/manage_upload") + upload: ManageUpload = ManageUpload.from_dict(response) + + assert isinstance(upload, ManageUpload) diff --git a/tests/unit/test_model_manage_user.py b/tests/unit/test_model_manage_user.py new file mode 100644 index 0000000000000000000000000000000000000000..970a667e4ee6349cafb6812a87a9ac51d0e1f814 --- /dev/null +++ b/tests/unit/test_model_manage_user.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_user import ManageUser + + +def test_ManageUser(load_data): + response = load_data("manage/manage_user") + user: ManageUser = ManageUser.from_dict(response) + + assert isinstance(user, ManageUser) diff --git a/tests/unit/test_model_manage_user_request.py b/tests/unit/test_model_manage_user_request.py new file mode 100644 index 0000000000000000000000000000000000000000..fb2e53644238622370fd18e9532a87c6128bccf4 --- /dev/null +++ b/tests/unit/test_model_manage_user_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.manage_user_request import ManageUserRequest + + +def test_ManageUserRequest(load_data): + response = load_data("manage/manage_user_request") + user_request: ManageUserRequest = ManageUserRequest.from_dict(response) + + assert isinstance(user_request, ManageUserRequest) diff --git a/tests/unit/test_model_node_info_20.py b/tests/unit/test_model_node_info_20.py new file mode 100644 index 0000000000000000000000000000000000000000..ec35fd64ee4f3375e7d80633afd28d95024e94ea --- /dev/null +++ b/tests/unit/test_model_node_info_20.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.node_info_20 import NodeInfo20 + + +def test_NodeInfo20(load_data): + response = load_data("instance/nodeinfo_2_0") + nodeinfo: NodeInfo20 = NodeInfo20.from_dict(response) + + assert isinstance(nodeinfo, NodeInfo20) diff --git a/tests/unit/test_model_paginated_album_list.py b/tests/unit/test_model_paginated_album_list.py index 87cb2fdf3b003bf5a5ef4cd8b968bf4278f88d52..4a85be0e85ee5aee60a813741dc4fe7880f94a6e 100644 --- a/tests/unit/test_model_paginated_album_list.py +++ b/tests/unit/test_model_paginated_album_list.py @@ -1,9 +1,8 @@ -import json from funkwhale_api_client.models.paginated_album_list import PaginatedAlbumList + def test_PaginatedAlbumList(load_data): - response = load_data("albums") - album_list : PaginatedAlbumList = PaginatedAlbumList.from_dict(response) + response = load_data("albums/paginated_album_list") + album_list: PaginatedAlbumList = PaginatedAlbumList.from_dict(response) assert isinstance(album_list, PaginatedAlbumList) - diff --git a/tests/unit/test_model_paginated_application_list.py b/tests/unit/test_model_paginated_application_list.py new file mode 100644 index 0000000000000000000000000000000000000000..595fb396244e19db9ad75c15606b60d021044ec5 --- /dev/null +++ b/tests/unit/test_model_paginated_application_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_application_list import PaginatedApplicationList + + +def test_PaginatedApplicationList(load_data): + response = load_data("oauth/paginated_application_list") + application_list: PaginatedApplicationList = PaginatedApplicationList.from_dict(response) + + assert isinstance(application_list, PaginatedApplicationList) diff --git a/tests/unit/test_model_paginated_artist_with_albums_list.py b/tests/unit/test_model_paginated_artist_with_albums_list.py new file mode 100644 index 0000000000000000000000000000000000000000..a8410971d0bf605b1d280972b29f2418b7671db9 --- /dev/null +++ b/tests/unit/test_model_paginated_artist_with_albums_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_artist_with_albums_list import PaginatedArtistWithAlbumsList + + +def test_PaginatedArtistWithAlbumsList(load_data): + response = load_data("artists/paginated_artist_with_albums_list") + artist_list: PaginatedArtistWithAlbumsList = PaginatedArtistWithAlbumsList.from_dict(response) + + assert isinstance(artist_list, PaginatedArtistWithAlbumsList) diff --git a/tests/unit/test_model_paginated_channel_list.py b/tests/unit/test_model_paginated_channel_list.py new file mode 100644 index 0000000000000000000000000000000000000000..ec7c04986dc6676bad9d0c960b028dc9354e66eb --- /dev/null +++ b/tests/unit/test_model_paginated_channel_list.py @@ -0,0 +1,13 @@ +import pytest + +from funkwhale_api_client.models.paginated_channel_list import PaginatedChannelList + + +# The problem here is we cannot easily make a optional field optional in the +# specs without a refactoring. +@pytest.mark.xfail +def test_PaginatedChannelList(load_data): + response = load_data("channels/paginated_channel_list") + channels: PaginatedChannelList = PaginatedChannelList.from_dict(response) + + assert isinstance(channels, PaginatedChannelList) diff --git a/tests/unit/test_model_paginated_inbox_item_list.py b/tests/unit/test_model_paginated_inbox_item_list.py new file mode 100644 index 0000000000000000000000000000000000000000..cd7d4441d5fbdee151381d86d97ab4d778634d8b --- /dev/null +++ b/tests/unit/test_model_paginated_inbox_item_list.py @@ -0,0 +1,12 @@ +import pytest + +from funkwhale_api_client.models.paginated_inbox_item_list import PaginatedInboxItemList + + +# This needs some refactoring to solve the error properly +@pytest.mark.xfail +def test_PaginatedInboxItemList(load_data): + response = load_data("federation/federation_inbox_item_list") + inbox_list: PaginatedInboxItemList = PaginatedInboxItemList.from_dict(response) + + assert isinstance(inbox_list, PaginatedInboxItemList) diff --git a/tests/unit/test_model_paginated_library_follow_list.py b/tests/unit/test_model_paginated_library_follow_list.py new file mode 100644 index 0000000000000000000000000000000000000000..6be57e02f8fea2d7a419dd35f4e07b504d889e58 --- /dev/null +++ b/tests/unit/test_model_paginated_library_follow_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_library_follow_list import PaginatedLibraryFollowList + + +def test_PaginatedLibraryFollowList(load_data): + response = load_data("federation/paginated_library_follow_list") + library_follows: PaginatedLibraryFollowList = PaginatedLibraryFollowList.from_dict(response) + + assert isinstance(library_follows, PaginatedLibraryFollowList) diff --git a/tests/unit/test_model_paginated_license_list.py b/tests/unit/test_model_paginated_license_list.py new file mode 100644 index 0000000000000000000000000000000000000000..f126ccf45c0f419f83fa2c6ef24fd3cde0ec8edc --- /dev/null +++ b/tests/unit/test_model_paginated_license_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_license_list import PaginatedLicenseList + + +def test_PaginatedLicenseList(load_data): + response = load_data("licenses/paginated_license_list") + license_list: PaginatedLicenseList = PaginatedLicenseList.from_dict(response) + + assert isinstance(license_list, PaginatedLicenseList) diff --git a/tests/unit/test_model_paginated_listening_list.py b/tests/unit/test_model_paginated_listening_list.py new file mode 100644 index 0000000000000000000000000000000000000000..e236c5d9db31d444b29cc166ad259fef727de6cc --- /dev/null +++ b/tests/unit/test_model_paginated_listening_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_listening_list import PaginatedListeningList + + +def test_PaginatedListeningList(load_data): + response = load_data("history/paginated_listening_list") + listenings_list: PaginatedListeningList = PaginatedListeningList.from_dict(response) + + assert isinstance(listenings_list, PaginatedListeningList) diff --git a/tests/unit/test_model_paginated_manage_actor_list.py b/tests/unit/test_model_paginated_manage_actor_list.py new file mode 100644 index 0000000000000000000000000000000000000000..cc5124b51ec0e4436d9e00049fb2e18831bc6328 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_actor_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_actor_list import PaginatedManageActorList + + +def test_PaginatedManageActorList(load_data): + response = load_data("manage/paginated_manage_actor_list") + actor_list: PaginatedManageActorList = PaginatedManageActorList.from_dict(response) + + assert isinstance(actor_list, PaginatedManageActorList) diff --git a/tests/unit/test_model_paginated_manage_album_list.py b/tests/unit/test_model_paginated_manage_album_list.py new file mode 100644 index 0000000000000000000000000000000000000000..70a2869910ce5eff6f92c7b612564a455bfbfb07 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_album_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_album_list import PaginatedManageAlbumList + + +def test_PaginatedManageAlbumList(load_data): + response = load_data("manage/paginated_manage_album_list") + album_list: PaginatedManageAlbumList = PaginatedManageAlbumList.from_dict(response) + + assert isinstance(album_list, PaginatedManageAlbumList) diff --git a/tests/unit/test_model_paginated_manage_artist_list.py b/tests/unit/test_model_paginated_manage_artist_list.py new file mode 100644 index 0000000000000000000000000000000000000000..2e50f2f815a0f9030878ce216b6054c65c98ff31 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_artist_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_artist_list import PaginatedManageArtistList + + +def test_PaginatedManageArtistList(load_data): + response = load_data("manage/paginated_manage_artist_list") + artist_list: PaginatedManageArtistList = PaginatedManageArtistList.from_dict(response) + + assert isinstance(artist_list, PaginatedManageArtistList) diff --git a/tests/unit/test_model_paginated_manage_channel_list.py b/tests/unit/test_model_paginated_manage_channel_list.py new file mode 100644 index 0000000000000000000000000000000000000000..54eb894ca08e889662c40ad3b92a91cf2110b80c --- /dev/null +++ b/tests/unit/test_model_paginated_manage_channel_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_channel_list import PaginatedManageChannelList + + +def test_PaginatedManageChannelList(load_data): + response = load_data("manage/paginated_manage_channel_list") + channel_list: PaginatedManageChannelList = PaginatedManageChannelList.from_dict(response) + + assert isinstance(channel_list, PaginatedManageChannelList) diff --git a/tests/unit/test_model_paginated_manage_domain_list.py b/tests/unit/test_model_paginated_manage_domain_list.py new file mode 100644 index 0000000000000000000000000000000000000000..d1e89a9b43763f992a2aa24c7081a3f3e4ee8f34 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_domain_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_domain_list import PaginatedManageDomainList + + +def test_PaginatedManageDomainList(load_data): + response = load_data("manage/paginated_manage_domain_list") + domain_list: PaginatedManageDomainList = PaginatedManageDomainList.from_dict(response) + + assert isinstance(domain_list, PaginatedManageDomainList) diff --git a/tests/unit/test_model_paginated_manage_instance_policy_list.py b/tests/unit/test_model_paginated_manage_instance_policy_list.py new file mode 100644 index 0000000000000000000000000000000000000000..dff91ca4807e65e8c4ca2547f8c7ae296c02dca9 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_instance_policy_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_instance_policy_list import PaginatedManageInstancePolicyList + + +def test_PaginatedManageInstancePolicyList(load_data): + response = load_data("manage/paginated_manage_instance_policy_list") + policy_list: PaginatedManageInstancePolicyList = PaginatedManageInstancePolicyList.from_dict(response) + + assert isinstance(policy_list, PaginatedManageInstancePolicyList) diff --git a/tests/unit/test_model_paginated_manage_invitation_list.py b/tests/unit/test_model_paginated_manage_invitation_list.py new file mode 100644 index 0000000000000000000000000000000000000000..bc46fe74272fb08009153a917fe7329540e3ebe8 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_invitation_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_invitation_list import PaginatedManageInvitationList + + +def test_PaginatedManageInvitationList(load_data): + response = load_data("manage/paginated_manage_invitation_list") + invitation_list: PaginatedManageInvitationList = PaginatedManageInvitationList.from_dict(response) + + assert isinstance(invitation_list, PaginatedManageInvitationList) diff --git a/tests/unit/test_model_paginated_manage_library_list.py b/tests/unit/test_model_paginated_manage_library_list.py new file mode 100644 index 0000000000000000000000000000000000000000..ead1a41e13c1dbeb2764f9ecb3962cdb185ae90a --- /dev/null +++ b/tests/unit/test_model_paginated_manage_library_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_library_list import PaginatedManageLibraryList + + +def test_PaginatedManageLibraryList(load_data): + response = load_data("manage/paginated_manage_library_list") + library_list: PaginatedManageLibraryList = PaginatedManageLibraryList.from_dict(response) + + assert isinstance(library_list, PaginatedManageLibraryList) diff --git a/tests/unit/test_model_paginated_manage_note_list.py b/tests/unit/test_model_paginated_manage_note_list.py new file mode 100644 index 0000000000000000000000000000000000000000..d60fffc8b4aeedfa6bbedebfd212b8d1faa99de2 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_note_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_note_list import PaginatedManageNoteList + + +def test_PaginatedManageNoteList(load_data): + response = load_data("manage/paginated_manage_note_list") + note_list: PaginatedManageNoteList = PaginatedManageNoteList.from_dict(response) + + assert isinstance(note_list, PaginatedManageNoteList) diff --git a/tests/unit/test_model_paginated_manage_report_list.py b/tests/unit/test_model_paginated_manage_report_list.py new file mode 100644 index 0000000000000000000000000000000000000000..2f3b70363438c9c2c0dc9989cffda1b8d0f401e5 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_report_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_report_list import PaginatedManageReportList + + +def test_PaginatedManageReportList(load_data): + response = load_data("manage/paginated_manage_report_list") + report_list: PaginatedManageReportList = PaginatedManageReportList.from_dict(response) + + assert isinstance(report_list, PaginatedManageReportList) diff --git a/tests/unit/test_model_paginated_manage_track_list.py b/tests/unit/test_model_paginated_manage_track_list.py new file mode 100644 index 0000000000000000000000000000000000000000..6a2d1f8c64d8ab3da4ef581c0c5ece8f780aff6b --- /dev/null +++ b/tests/unit/test_model_paginated_manage_track_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_track_list import PaginatedManageTrackList + + +def test_PaginatedManageTrackList(load_data): + response = load_data("manage/paginated_manage_track_list") + track_list: PaginatedManageTrackList = PaginatedManageTrackList.from_dict(response) + + assert isinstance(track_list, PaginatedManageTrackList) diff --git a/tests/unit/test_model_paginated_manage_upload_list.py b/tests/unit/test_model_paginated_manage_upload_list.py new file mode 100644 index 0000000000000000000000000000000000000000..35963acbd8cc2a158915465d9abeb66d1595dd9a --- /dev/null +++ b/tests/unit/test_model_paginated_manage_upload_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_upload_list import PaginatedManageUploadList + + +def test_PaginatedManageUploadList(load_data): + response = load_data("manage/paginated_manage_upload_list") + upload_list: PaginatedManageUploadList = PaginatedManageUploadList.from_dict(response) + + assert isinstance(upload_list, PaginatedManageUploadList) diff --git a/tests/unit/test_model_paginated_manage_user_list.py b/tests/unit/test_model_paginated_manage_user_list.py new file mode 100644 index 0000000000000000000000000000000000000000..aaaa551a6db5dbc26e591139aa7513129ca013cc --- /dev/null +++ b/tests/unit/test_model_paginated_manage_user_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_user_list import PaginatedManageUserList + + +def test_PaginatedManageUserList(load_data): + response = load_data("manage/paginated_manage_user_list") + user_list: PaginatedManageUserList = PaginatedManageUserList.from_dict(response) + + assert isinstance(user_list, PaginatedManageUserList) diff --git a/tests/unit/test_model_paginated_manage_user_request_list.py b/tests/unit/test_model_paginated_manage_user_request_list.py new file mode 100644 index 0000000000000000000000000000000000000000..dc9b0e9c93273ce6e984aa33696c11a33a342532 --- /dev/null +++ b/tests/unit/test_model_paginated_manage_user_request_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_manage_user_request_list import PaginatedManageUserRequestList + + +def test_PaginatedManageUserRequestList(load_data): + response = load_data("manage/paginated_manage_user_request_list") + request_list: PaginatedManageUserRequestList = PaginatedManageUserRequestList.from_dict(response) + + assert isinstance(request_list, PaginatedManageUserRequestList) diff --git a/tests/unit/test_model_paginated_playlist_list.py b/tests/unit/test_model_paginated_playlist_list.py new file mode 100644 index 0000000000000000000000000000000000000000..e60a53a94bce9d329bbdf351dbf7b10b3657f867 --- /dev/null +++ b/tests/unit/test_model_paginated_playlist_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_playlist_list import PaginatedPlaylistList + + +def test_PaginatedPlaylistList(load_data): + response = load_data("playlists/paginated_playlist_list") + playlists: PaginatedPlaylistList = PaginatedPlaylistList.from_dict(response) + + assert isinstance(playlists, PaginatedPlaylistList) diff --git a/tests/unit/test_model_paginated_radio_list.py b/tests/unit/test_model_paginated_radio_list.py new file mode 100644 index 0000000000000000000000000000000000000000..2a35651ea1a6fce3dec04dd85b49f902dc76a1be --- /dev/null +++ b/tests/unit/test_model_paginated_radio_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_radio_list import PaginatedRadioList + + +def test_PaginatedRadioList(load_data): + response = load_data("radios/paginated_radio_list") + radios: PaginatedRadioList = PaginatedRadioList.from_dict(response) + + assert isinstance(radios, PaginatedRadioList) diff --git a/tests/unit/test_model_paginated_subscription_list.py b/tests/unit/test_model_paginated_subscription_list.py new file mode 100644 index 0000000000000000000000000000000000000000..4e5d35d8ee6612f2e4604acd7b256cfcece95bd9 --- /dev/null +++ b/tests/unit/test_model_paginated_subscription_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_subscription_list import PaginatedSubscriptionList + + +def test_Paginated_SubscriptionList(load_data): + response = load_data("subscriptions/paginated_subscription_list") + subscription_list: PaginatedSubscriptionList = PaginatedSubscriptionList.from_dict(response) + + assert isinstance(subscription_list, PaginatedSubscriptionList) diff --git a/tests/unit/test_model_paginated_tag_list.py b/tests/unit/test_model_paginated_tag_list.py new file mode 100644 index 0000000000000000000000000000000000000000..715429733313a1b6fc930b169efd4c6345e121d7 --- /dev/null +++ b/tests/unit/test_model_paginated_tag_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_tag_list import PaginatedTagList + + +def test_PaginatedTagList(load_data): + response = load_data("tags/paginated_tag_list") + tags: PaginatedTagList = PaginatedTagList.from_dict(response) + + assert isinstance(tags, PaginatedTagList) diff --git a/tests/unit/test_model_paginated_track_list.py b/tests/unit/test_model_paginated_track_list.py new file mode 100644 index 0000000000000000000000000000000000000000..872ecc949fe6d704a841ad6ad6ad7dd4af825301 --- /dev/null +++ b/tests/unit/test_model_paginated_track_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_track_list import PaginatedTrackList + + +def test_PaginatedTrackList(load_data): + response = load_data("tracks/paginated_track_list") + track_list: PaginatedTrackList = PaginatedTrackList.from_dict(response) + + assert isinstance(track_list, PaginatedTrackList) diff --git a/tests/unit/test_model_paginated_upload_for_owner_list.py b/tests/unit/test_model_paginated_upload_for_owner_list.py new file mode 100644 index 0000000000000000000000000000000000000000..8831a895be79bcdd1c73e5af226ec1c591231b01 --- /dev/null +++ b/tests/unit/test_model_paginated_upload_for_owner_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_upload_for_owner_list import PaginatedUploadForOwnerList + + +def test_PaginatedUploadForOwnerList(load_data): + response = load_data("uploads/paginated_upload_for_owner_list") + upload_list: PaginatedUploadForOwnerList = PaginatedUploadForOwnerList.from_dict(response) + + assert isinstance(upload_list, PaginatedUploadForOwnerList) diff --git a/tests/unit/test_model_paginated_user_track_favorite_list.py b/tests/unit/test_model_paginated_user_track_favorite_list.py new file mode 100644 index 0000000000000000000000000000000000000000..50a0d0afe7d6f03a7dbceb30631785dfc90e6f30 --- /dev/null +++ b/tests/unit/test_model_paginated_user_track_favorite_list.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.paginated_user_track_favorite_list import PaginatedUserTrackFavoriteList + + +def test_PaginatedUserTrackFavoriteList(load_data): + response = load_data("favorites/paginated_user_track_favorite_list") + favorite: PaginatedUserTrackFavoriteList = PaginatedUserTrackFavoriteList.from_dict(response) + + assert isinstance(favorite, PaginatedUserTrackFavoriteList) diff --git a/tests/unit/test_model_patched_global_preference_request.py b/tests/unit/test_model_patched_global_preference_request.py new file mode 100644 index 0000000000000000000000000000000000000000..c489a190622be765112f069bf0d507b85f5e1eea --- /dev/null +++ b/tests/unit/test_model_patched_global_preference_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.patched_global_preference_request import PatchedGlobalPreferenceRequest + + +def test_PatchedGlobalPreferenceRequest(load_data): + response = load_data("instance/patched_global_preference_request") + patch: PatchedGlobalPreferenceRequest = PatchedGlobalPreferenceRequest.from_dict(response) + + assert isinstance(patch, PatchedGlobalPreferenceRequest) diff --git a/tests/unit/test_model_patched_manage_report_request.py b/tests/unit/test_model_patched_manage_report_request.py new file mode 100644 index 0000000000000000000000000000000000000000..a79ce3f9c12de1ffd7498dc66fd1fb8a08d42d23 --- /dev/null +++ b/tests/unit/test_model_patched_manage_report_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.patched_manage_report_request import PatchedManageReportRequest + + +def test_PatchedManageReportRequest(load_data): + response = load_data("manage/patched_manage_report_request") + request: PatchedManageReportRequest = PatchedManageReportRequest.from_dict(response) + + assert isinstance(request, PatchedManageReportRequest) diff --git a/tests/unit/test_model_playlist.py b/tests/unit/test_model_playlist.py new file mode 100644 index 0000000000000000000000000000000000000000..4c64eb3473974c29abd1c2c2133b361e5cdf8dca --- /dev/null +++ b/tests/unit/test_model_playlist.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.playlist import Playlist + + +def test_Playlist(load_data): + response = load_data("playlists/playlist") + playlist: Playlist = Playlist.from_dict(response) + + assert isinstance(playlist, Playlist) diff --git a/tests/unit/test_model_radio.py b/tests/unit/test_model_radio.py new file mode 100644 index 0000000000000000000000000000000000000000..97fa9f9de803a8105aa4082be0c47cd76c81d8dc --- /dev/null +++ b/tests/unit/test_model_radio.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.radio import Radio + + +def test_Radio(load_data): + response = load_data("radios/radio") + radio: Radio = Radio.from_dict(response) + + assert isinstance(radio, Radio) diff --git a/tests/unit/test_model_radio_session.py b/tests/unit/test_model_radio_session.py new file mode 100644 index 0000000000000000000000000000000000000000..3691ab8d8526e4ff68f2f10fca168227f06bd192 --- /dev/null +++ b/tests/unit/test_model_radio_session.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.radio_session import RadioSession + + +def test_RadioSession(load_data): + response = load_data("radios/radio_session") + session: RadioSession = RadioSession.from_dict(response) + + assert isinstance(session, RadioSession) diff --git a/tests/unit/test_model_radio_session_request.py b/tests/unit/test_model_radio_session_request.py new file mode 100644 index 0000000000000000000000000000000000000000..fc9d2465cdd328388757d5652bf035c702ad8491 --- /dev/null +++ b/tests/unit/test_model_radio_session_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.radio_session_request import RadioSessionRequest + + +def test_RadioSessionRequest(load_data): + response = load_data("radios/radio_session_request") + request: RadioSessionRequest = RadioSessionRequest.from_dict(response) + + assert isinstance(request, RadioSessionRequest) diff --git a/tests/unit/test_model_rate_limit.py b/tests/unit/test_model_rate_limit.py new file mode 100644 index 0000000000000000000000000000000000000000..52281dad968d3d692dde3065894b14fbfabd2483 --- /dev/null +++ b/tests/unit/test_model_rate_limit.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.rate_limit import RateLimit + + +def test_RateLimit(load_data): + response = load_data("rate_limit/rate_limit") + rate_limit: RateLimit = RateLimit.from_dict(response) + + assert isinstance(rate_limit, RateLimit) diff --git a/tests/unit/test_model_simple_artist.py b/tests/unit/test_model_simple_artist.py new file mode 100644 index 0000000000000000000000000000000000000000..f29a0f1b38941320cc0d9bab844215fa05901cd8 --- /dev/null +++ b/tests/unit/test_model_simple_artist.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.simple_artist import SimpleArtist + + +def test_SimpleArtist(load_data): + response = load_data("artists/simple_artist") + simple_artist: SimpleArtist = SimpleArtist.from_dict(response) + + assert isinstance(simple_artist, SimpleArtist) diff --git a/tests/unit/test_model_subscription.py b/tests/unit/test_model_subscription.py new file mode 100644 index 0000000000000000000000000000000000000000..b193dcd7c3ff262cf36a0cb93979dede8ae39922 --- /dev/null +++ b/tests/unit/test_model_subscription.py @@ -0,0 +1,16 @@ +from funkwhale_api_client.models.all_subscriptions import AllSubscriptions +from funkwhale_api_client.models.subscription import Subscription + + +def test_Subscription(load_data): + response = load_data("subscriptions/subscription") + subscription: Subscription = Subscription.from_dict(response) + + assert isinstance(subscription, Subscription) + + +def test_SubscriptionAll(load_data): + response = load_data("subscriptions/subscription_all") + subscription_all: AllSubscriptions = AllSubscriptions.from_dict(response) + + assert isinstance(subscription_all, AllSubscriptions) diff --git a/tests/unit/test_model_tag.py b/tests/unit/test_model_tag.py new file mode 100644 index 0000000000000000000000000000000000000000..38d6b4d6d28f7f30ebf2d59ffd2dd27b244b9de8 --- /dev/null +++ b/tests/unit/test_model_tag.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.tag import Tag + + +def test_Tag(load_data): + response = load_data("tags/tag") + tag: Tag = Tag.from_dict(response) + + assert isinstance(tag, Tag) diff --git a/tests/unit/test_model_track.py b/tests/unit/test_model_track.py new file mode 100644 index 0000000000000000000000000000000000000000..b5f017b50d884490562ce7b7681d4a45928724c4 --- /dev/null +++ b/tests/unit/test_model_track.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.track import Track + + +def test_Track(load_data): + response = load_data("tracks/track") + track: Track = Track.from_dict(response) + + assert isinstance(track, Track) diff --git a/tests/unit/test_model_track_album.py b/tests/unit/test_model_track_album.py new file mode 100644 index 0000000000000000000000000000000000000000..c32848578cf148a9f5af87dc043073683791edc3 --- /dev/null +++ b/tests/unit/test_model_track_album.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.track_album import TrackAlbum + + +def test_TrackAlbum(load_data): + response = load_data("tracks/track_album") + track_album: TrackAlbum = TrackAlbum.from_dict(response) + + assert isinstance(track_album, TrackAlbum) diff --git a/tests/unit/test_model_track_metadata.py b/tests/unit/test_model_track_metadata.py new file mode 100644 index 0000000000000000000000000000000000000000..c628fec4ebb748c4583cff3068cee3f4f4d659e0 --- /dev/null +++ b/tests/unit/test_model_track_metadata.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.track_metadata import TrackMetadata + + +def test_UploadForOwnerMetadata(load_data): + response = load_data("uploads/upload_for_owner_metadata") + upload_metadata: TrackMetadata = TrackMetadata.from_dict(response) + + assert isinstance(upload_metadata, TrackMetadata) diff --git a/tests/unit/test_model_upload_for_owner.py b/tests/unit/test_model_upload_for_owner.py new file mode 100644 index 0000000000000000000000000000000000000000..74c15f12b9883a4ad95eb2595cf0784c9d5f056e --- /dev/null +++ b/tests/unit/test_model_upload_for_owner.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.upload_for_owner import UploadForOwner + + +def test_UploadForOwner(load_data): + response = load_data("uploads/upload_for_owner") + upload: UploadForOwner = UploadForOwner.from_dict(response) + + assert isinstance(upload, UploadForOwner) diff --git a/tests/unit/test_model_user_details.py b/tests/unit/test_model_user_details.py new file mode 100644 index 0000000000000000000000000000000000000000..fda59627db1db80a72c6e34622f3917ba6e6eb0c --- /dev/null +++ b/tests/unit/test_model_user_details.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.user_details import UserDetails + + +def test_UserDetails(load_data): + response = load_data("auth/user_details") + user_details: UserDetails = UserDetails.from_dict(response) + + assert isinstance(user_details, UserDetails) diff --git a/tests/unit/test_model_user_track_favorite_write.py b/tests/unit/test_model_user_track_favorite_write.py new file mode 100644 index 0000000000000000000000000000000000000000..f7d4248eb12218abee894e0cb5fd995594ebecca --- /dev/null +++ b/tests/unit/test_model_user_track_favorite_write.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.user_track_favorite_write import UserTrackFavoriteWrite + + +def test_UserTrackFavoriteWrite(load_data): + response = load_data("favorites/track_favorite_write") + favorite: UserTrackFavoriteWrite = UserTrackFavoriteWrite.from_dict(response) + + assert isinstance(favorite, UserTrackFavoriteWrite) diff --git a/tests/unit/test_model_user_track_favorite_write_request.py b/tests/unit/test_model_user_track_favorite_write_request.py new file mode 100644 index 0000000000000000000000000000000000000000..ba3f3df9fd0f5018cda596befff9645a75580afa --- /dev/null +++ b/tests/unit/test_model_user_track_favorite_write_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.user_track_favorite_write_request import UserTrackFavoriteWriteRequest + + +def test_UserTrackFavoriteWriteRequest(load_data): + response = load_data("favorites/track_favorite_write") + favorite: UserTrackFavoriteWriteRequest = UserTrackFavoriteWriteRequest.from_dict(response) + + assert isinstance(favorite, UserTrackFavoriteWriteRequest) diff --git a/tests/unit/test_model_user_write.py b/tests/unit/test_model_user_write.py new file mode 100644 index 0000000000000000000000000000000000000000..4925cefcf87bcd69dda5b657e5659b4cb7a3c56c --- /dev/null +++ b/tests/unit/test_model_user_write.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.user_write import UserWrite + + +def test_UserWrite(load_data): + response = load_data("auth/user_me") + user: UserWrite = UserWrite.from_dict(response) + + assert isinstance(user, UserWrite) diff --git a/tests/unit/test_model_verify_email.py b/tests/unit/test_model_verify_email.py new file mode 100644 index 0000000000000000000000000000000000000000..89b0af09ff856efab32edb439ac7e8aaffc3a099 --- /dev/null +++ b/tests/unit/test_model_verify_email.py @@ -0,0 +1,12 @@ +import pytest + +from funkwhale_api_client.models.verify_email import VerifyEmail + + +@pytest.mark.xfail +# This is known to be broken, see https://dev.funkwhale.audio/funkwhale/funkwhale/-/issues/1877 +def test_VerifyEmail(load_data): + response = load_data("auth/verify_email") + verify_email: VerifyEmail = VerifyEmail.from_dict(response) + + assert isinstance(verify_email, VerifyEmail) diff --git a/tests/unit/test_model_verify_email_request.py b/tests/unit/test_model_verify_email_request.py new file mode 100644 index 0000000000000000000000000000000000000000..4afd323f475ca3e2475d46c5cacc001a4e2aca38 --- /dev/null +++ b/tests/unit/test_model_verify_email_request.py @@ -0,0 +1,8 @@ +from funkwhale_api_client.models.verify_email_request import VerifyEmailRequest + + +def test_VerifyEmailRequest(load_data): + response = load_data("auth/verify_email_request") + email_request: VerifyEmailRequest = VerifyEmailRequest.from_dict(response) + + assert isinstance(email_request, VerifyEmailRequest)