summaryrefslogtreecommitdiffstats
path: root/users/tasks/identity.py
diff options
context:
space:
mode:
authorAndrew Godwin2022-11-06 21:30:07 -0700
committerAndrew Godwin2022-11-06 21:30:07 -0700
commitfb6c409a9af5b8a686e977ee2251c359071e0ec3 (patch)
tree322469694585b766eb623b47955623b3e43c89b1 /users/tasks/identity.py
parent0d5f7e7a891bec4b8af26c2d86d8be0209a3202d (diff)
downloadtakahe-fb6c409a9af5b8a686e977ee2251c359071e0ec3.tar.gz
takahe-fb6c409a9af5b8a686e977ee2251c359071e0ec3.tar.bz2
takahe-fb6c409a9af5b8a686e977ee2251c359071e0ec3.zip
Rework task system and fetching.
I can taste how close follow is to working.
Diffstat (limited to 'users/tasks/identity.py')
-rw-r--r--users/tasks/identity.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/users/tasks/identity.py b/users/tasks/identity.py
new file mode 100644
index 0000000..f5cd214
--- /dev/null
+++ b/users/tasks/identity.py
@@ -0,0 +1,11 @@
+from asgiref.sync import sync_to_async
+
+from users.models import Identity
+
+
+async def handle_identity_fetch(task_handler):
+ # Get the actor URI via webfinger
+ actor_uri, handle = await Identity.fetch_webfinger(task_handler.subject)
+ # Get or create the identity, then fetch
+ identity = await sync_to_async(Identity.by_actor_uri_with_create)(actor_uri)
+ await identity.fetch_actor()