Can now fetch domain nodeinfo

This commit is contained in:
Eliot Berriot 2018-12-27 17:42:43 +01:00
parent e4117043cb
commit be388870a3
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
9 changed files with 171 additions and 1 deletions

View file

@ -1,8 +1,9 @@
from rest_framework import mixins, response, viewsets
from rest_framework.decorators import list_route
from rest_framework.decorators import detail_route, list_route
from funkwhale_api.common import preferences
from funkwhale_api.federation import models as federation_models
from funkwhale_api.federation import tasks as federation_tasks
from funkwhale_api.music import models as music_models
from funkwhale_api.users import models as users_models
from funkwhale_api.users.permissions import HasUserPermission
@ -98,6 +99,7 @@ class ManageInvitationViewSet(
class ManageDomainViewSet(
mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet
):
lookup_value_regex = "[a-zA-Z0-9\-\.]+"
queryset = (
federation_models.Domain.objects.external()
.with_last_activity_date()
@ -116,3 +118,10 @@ class ManageDomainViewSet(
"actors_count",
"outbox_activities_count",
]
@detail_route(methods=["get"])
def nodeinfo(self, request, *args, **kwargs):
domain = self.get_object()
federation_tasks.update_domain_nodeinfo(domain_name=domain.name)
domain.refresh_from_db()
return response.Response(domain.nodeinfo, status=200)