Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NIP-89 support via links #881

Closed
mikedilger opened this issue Sep 28, 2024 · 5 comments
Closed

NIP-89 support via links #881

mikedilger opened this issue Sep 28, 2024 · 5 comments
Assignees
Milestone

Comments

@mikedilger
Copy link
Owner

We can do NIP-89 support if the registered app handlers are websites.

@mikedilger mikedilger added this to the 0.13 milestone Sep 28, 2024
@mikedilger
Copy link
Owner Author

mikedilger commented Oct 8, 2024

Here is the plan, which is already underway

  • New type HandlerKey(pubkey, dtag)
  • New type Handler with all the details:
    • HandlerKey, Metadata, kinds, up to 2 URLs (web+nevent & web+naddr)
  • Table of known Handlers
  • Always listen for 31989 recommendation events from everybody that we follow. Don't store these permanently, but when they flow in (if we don't already have that handler registered) trigger a process to fetch the 31990 event, registering the Handler in our table of possible handlers.
  • Table from kind -> (HandlerKey, bool) with duplicate keys enabled.
    • We store every registered handler here, indexed by the kinds it supports, so that we can find all possible handlers for a kind.
    • We also store the user's selected handler by setting the bool to 'true' if the user chose to enable this handler. They can enable multiple handlers for a single kind.
  • Create UI/UX method of users assigning handlers to event kinds. This will show the metadata of the handler. They should be able to select and deselect as many as they like for each kind.
  • When an event is rendered by the UI:
    • Show links for all the enabled handlers in the menu.

This work proceeds on branch nip89

@mikedilger
Copy link
Owner Author

I think that every handler that comes in will be enabled by default, and the event menu will let you pick one. But also there will be a settings page to disable handlers that the user doesn't want. How's that?

@mikedilger
Copy link
Owner Author

Ok this is on unstable. All the handlers are made available (as well as njump.me, but really that should be published to nostr as a 31990 and 31989 recommendations and not have an unfair advantage).

Handlers flow in rather slowly, after 30 minutes of usage you should have some.

We don't yet have a place where users can disable handlers they don't like.

We don't yet have any way users can type in their own handlers.

We don't yet have any way users can publish their own handlers.

We don't yet have any way users can recommend handlers (theirs or others).

@mikedilger
Copy link
Owner Author

mikedilger commented Oct 15, 2024

All of the original plan is done, but we need to do a bit more:

  • Remove njump.me.
  • Nudge dtonon to publish a 31990 for njump.me
  • Add a way to import a 31990 (naddr or id) for a handler that wasn't pointed to by your friends
  • Add a button to recommend a handler to your friends

@mikedilger
Copy link
Owner Author

I've decided not to remove njump.me because advertising it via NIP-89 is tortorous (as it handles EVERY kind, AFAIK).

So this is done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants