lemoncurry/wellknowns/views/nostr.py

27 lines
833 B
Python

from django.http import JsonResponse
from users.models import User
aliases = {"dani": ("_", "00dani")}
unaliases = {alias: name for (name, aliases) in aliases.items() for alias in aliases}
def nostr_json(request) -> JsonResponse:
users = User.objects.filter(nostr_key__isnull=False)
if "name" in request.GET:
name = request.GET["name"]
if name in unaliases:
name = unaliases[name]
users = users.filter(username=name)
names = {u.username: u.nostr_key for u in users}
for name in list(names.keys()):
for alias in aliases.get(name, []):
names[alias] = names[name]
relays = {u.nostr_key: u.nostr_relays for u in users if u.nostr_relays}
response = {"names": names}
if relays:
response["relays"] = relays
return JsonResponse(response)