An alternative component handler for hikari, inspired by discord.py's views.
Project description
hikari-miru
An optional component handler for hikari, inspired by discord.py's views.
Installation
pip install -U hikari-miru
Usage
import hikari
import miru
class MyView(miru.View):
@miru.button(label="Rock", emoji=chr(129704), style=hikari.ButtonStyle.PRIMARY)
async def rock_button(self, button: miru.Button, interaction: miru.Interaction):
await interaction.send_message(content="Paper!")
@miru.button(label="Paper", emoji=chr(128220), style=hikari.ButtonStyle.PRIMARY)
async def paper_button(self, button: miru.Button, interaction: miru.Interaction):
await interaction.send_message(content="Scissors!")
@miru.button(label="Scissors", emoji=chr(9986), style=hikari.ButtonStyle.PRIMARY)
async def scissors_button(self, button: miru.Button, interaction: miru.Interaction):
await interaction.send_message(content="Rock!")
@miru.button(emoji=chr(9209), style=hikari.ButtonStyle.DANGER, row=2)
async def stop_button(self, button: miru.Button, interaction: miru.Interaction):
self.stop() # Stop listening for interactions
bot = hikari.GatewayBot(token="...")
@bot.listen()
async def buttons(event: hikari.GuildMessageCreateEvent) -> None:
if event.is_bot or not event.content:
return
if event.content.startswith("hm.buttons"):
view = MyView(bot, timeout=60) # Create a new view
message = await event.message.respond("Rock Paper Scissors!", components=view.build())
view.start(message) # Start listening for interactions
await view.wait() # Wait until the view times out or gets stopped
await event.message.respond("Thank you for playing!")
bot.run()
Issues and support
For general usage help or questions, see the #hikari-miru
channel in the hikari discord, if you have found a bug or have a feature request, feel free to open an issue!
Contributing
If you wish to contribute, be sure to first enable the formatting pre-commit hook via git config core.hooksPath .githooks
, then make your changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hikari-miru-0.6.1.tar.gz
(13.2 kB
view hashes)
Built Distribution
Close
Hashes for hikari_miru-0.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4b5127fa880457bd236e3f6b7f4dfa3757e8e53eb180af326cf3631e01a0030 |
|
MD5 | ac8a8436657c4d04f2dbe87deeb0797c |
|
BLAKE2b-256 | 6a0f4c58260ef41d7ee5d0d8079292c90f61c5109125660f61f7c19d0be83689 |