Getting Started#

Installation#

flare can be installed using pip via the following command:

$ python3 -m pip install -U hikari-flare

What is Flare?#

flare is a component handler that uses the custom_id field for components, which is a unique identifier for a component, to save information. This allows components to save information between restarts without using a database.

First steps#

How about the typical example from webdev with a counter button?

import hikari
import flare

bot = hikari.GatewayBot("TOKEN")

# This function must be called on startup. `bot` must be an object that
# implements `hikari.traits.EventManagerAware`.
flare.install(bot)


@flare.button(label="Click me!")
async def counter_button(
    ctx: flare.MessageContext,
    # The argument `n` is saved as the state. This argument defaults to 0 if no
    # value is specified in `counter_button()`.
    n: int = 0,
) -> None:
    n += 1
    await ctx.edit_response(
        # The components are edited to update the state.
        component=await flare.Row(counter_button(n=n).set_label(f"Clicked {n} Times!"))
    )


@bot.listen()
async def on_message(event: hikari.MessageCreateEvent):
    if event.message.author.is_bot or not event.message.content:
        return

    me = bot.get_me()

    # If the bot is mentioned
    if me.id in event.message.user_mentions_ids:
        await event.message.respond(
            # When responding to the interaction, use the default values.
            component=await flare.Row(counter_button())
        )

bot.run()