From 2c3a1299709f2612e96c37e4e121c83ad4df7a56 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Wed, 9 Nov 2022 23:48:31 -0700 Subject: Profile fetching now working on state machine --- users/tasks/inbox.py | 56 ---------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 users/tasks/inbox.py (limited to 'users/tasks/inbox.py') diff --git a/users/tasks/inbox.py b/users/tasks/inbox.py deleted file mode 100644 index 27c602d..0000000 --- a/users/tasks/inbox.py +++ /dev/null @@ -1,56 +0,0 @@ -from asgiref.sync import sync_to_async - -from users.models import Follow, Identity - - -async def handle_inbox_item(task_handler): - type = task_handler.payload["type"].lower() - if type == "follow": - await inbox_follow(task_handler.payload) - elif type == "accept": - inner_type = task_handler.payload["object"]["type"].lower() - if inner_type == "follow": - await sync_to_async(accept_follow)(task_handler.payload["object"]) - else: - raise ValueError(f"Cannot handle activity of type accept.{inner_type}") - elif type == "undo": - inner_type = task_handler.payload["object"]["type"].lower() - if inner_type == "follow": - await inbox_unfollow(task_handler.payload["object"]) - else: - raise ValueError(f"Cannot handle activity of type undo.{inner_type}") - else: - raise ValueError(f"Cannot handle activity of type {inner_type}") - - -async def inbox_follow(payload): - """ - Handles an incoming follow request - """ - # TODO: Manually approved follows - source = Identity.by_actor_uri_with_create(payload["actor"]) - target = Identity.by_actor_uri(payload["object"]) - # See if this follow already exists - try: - follow = Follow.objects.get(source=source, target=target) - except Follow.DoesNotExist: - follow = Follow.objects.create(source=source, target=target, uri=payload["id"]) - # See if we need to acknowledge it - if not follow.acknowledged: - pass - - -async def inbox_unfollow(payload): - pass - - -def accept_follow(payload): - """ - Another server has acknowledged our follow request - """ - source = Identity.by_actor_uri_with_create(payload["actor"]) - target = Identity.by_actor_uri(payload["object"]) - follow = Follow.maybe_get(source, target) - if follow: - follow.accepted = True - follow.save() -- cgit v1.2.3