Nostr.Event.EmojiList (Nostr Lib v0.2.1) (event) (nip51)

View Source

Emojis List (Kind 10030)

A list of user preferred custom emojis and pointers to emoji sets. Contains emoji tags (NIP-30 format) and a tags for emoji sets (kind:30030).

Defined in NIP 51 https://github.com/nostr-protocol/nips/blob/master/51.md

Summary

Functions

Creates a new emoji list (kind 10030).

Parses a kind 10030 event into an EmojiList struct.

Types

emoji_entry()

@type emoji_entry() :: %{shortcode: binary(), url: binary()}

t()

@type t() :: %Nostr.Event.EmojiList{
  emoji_sets: [binary()],
  emojis: [emoji_entry()],
  event: Nostr.Event.t()
}

Functions

create(items, opts \\ [])

@spec create(map() | Keyword.t(), Keyword.t()) :: t()

Creates a new emoji list (kind 10030).

Arguments

  • items - Map or keyword list with emoji items
  • opts - Optional event arguments (pubkey, created_at)

Item Keys

  • :emojis - List of emoji entries (shortcode + url)
  • :emoji_sets - List of emoji set addresses (kind:30030)

Emoji Entry Formats

Emojis can be specified as:

  • {"shortcode", "https://url.to/emoji.png"} - Tuple format
  • %{shortcode: "name", url: "https://..."} - Map format

Example

EmojiList.create(%{
  emojis: [
    {"soapbox", "https://example.com/soapbox.png"},
    %{shortcode: "ditto", url: "https://example.com/ditto.gif"}
  ],
  emoji_sets: ["30030:pubkey:my-emojis"]
})

parse(event)

@spec parse(Nostr.Event.t()) :: t()

Parses a kind 10030 event into an EmojiList struct.