diff --git a/api/funkwhale_api/federation/views.py b/api/funkwhale_api/federation/views.py index 35d8a75a5..da2b193a2 100644 --- a/api/funkwhale_api/federation/views.py +++ b/api/funkwhale_api/federation/views.py @@ -121,7 +121,7 @@ class MusicFilesViewSet(FederationMixin, viewsets.GenericViewSet): qs = TrackFile.objects.order_by('-creation_date').select_related( 'track__artist', 'track__album__artist' - ) + ).filter(library_track__isnull=True) if page is None: conf = { 'id': utils.full_url(reverse('federation:music:files-list')), diff --git a/api/tests/federation/test_views.py b/api/tests/federation/test_views.py index c26810dad..c5d651dce 100644 --- a/api/tests/federation/test_views.py +++ b/api/tests/federation/test_views.py @@ -116,6 +116,18 @@ def test_audio_file_list_actor_page( assert response.status_code == 200 assert response.data == expected +def test_audio_file_list_actor_page_exclude_federated_files( + db, settings, api_client, factories): + settings.FEDERATION_MUSIC_NEEDS_APPROVAL = False + library = actors.SYSTEM_ACTORS['library'].get_actor_instance() + tfs = factories['music.TrackFile'].create_batch(size=5, federation=True) + + url = reverse('federation:music:files-list') + response = api_client.get(url) + + assert response.status_code == 200 + assert response.data['totalItems'] == 0 + def test_audio_file_list_actor_page_error( db, settings, api_client, factories):