diff --git a/api/funkwhale_api/federation/tasks.py b/api/funkwhale_api/federation/tasks.py index df08b5f38..fbdf83a0c 100644 --- a/api/funkwhale_api/federation/tasks.py +++ b/api/funkwhale_api/federation/tasks.py @@ -236,8 +236,10 @@ def refresh_nodeinfo_known_nodes(): settings.NODEINFO_REFRESH_DELAY """ limit = timezone.now() - datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY) - candidates = models.Domain.objects.external().exclude( - nodeinfo_fetch_date__gte=limit + candidates = ( + models.Domain.objects.external() + .exclude(nodeinfo_fetch_date__gte=limit) + .filter(nodeinfo__software__name="Funkwhale") ) names = candidates.values_list("name", flat=True) logger.info("Launching periodic nodeinfo refresh on %s domains", len(names)) diff --git a/api/tests/federation/test_tasks.py b/api/tests/federation/test_tasks.py index 7f9fd6a93..ef48374b4 100644 --- a/api/tests/federation/test_tasks.py +++ b/api/tests/federation/test_tasks.py @@ -233,15 +233,19 @@ def test_refresh_nodeinfo_known_nodes(settings, factories, mocker, now): settings.NODEINFO_REFRESH_DELAY = 666 refreshed = [ - factories["federation.Domain"](nodeinfo_fetch_date=None), + factories["federation.Domain"]( + nodeinfo_fetch_date=None, + nodeinfo={"software": {"name": "Funkwhale"}}, + ), factories["federation.Domain"]( nodeinfo_fetch_date=now - - datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY + 1) + - datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY + 1), + nodeinfo={"software": {"name": "Funkwhale"}}, ), ] factories["federation.Domain"]( nodeinfo_fetch_date=now - - datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY - 1) + - datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY - 1), ) update_domain_nodeinfo = mocker.patch.object(tasks.update_domain_nodeinfo, "delay") diff --git a/changes/changelog.d/2442.enhancement b/changes/changelog.d/2442.enhancement new file mode 100644 index 000000000..64282d03f --- /dev/null +++ b/changes/changelog.d/2442.enhancement @@ -0,0 +1 @@ +Only refresh_nodeinfo_known_nodes for Funkwhale instances (#2442)