Skip to main content

Interaction module for dico.

Project description

dico-interaction

Interaction module for dico.

Features

  • Webserver included, powered by aiohttp.
  • Easier interaction usage.

Installation

pip install -U dico-interaction

Example

Gateway Client

from dico import Client, Button, ActionRow, ButtonStyles
from dico_interaction import InteractionClient, InteractionContext

client = Client("BOT_TOKEN")
interaction = InteractionClient(client=client)


@interaction.slash(name="hello", description="Say hello.")
async def hello(ctx: InteractionContext):
    button = Button(style=ButtonStyles.PRIMARY, label="Hello!", custom_id=f"hello{ctx.id}")
    await ctx.send("Hello, World!", components=[ActionRow(button)])
    
    
@interaction.context_menu(name="say", menu_type=3)
async def say_menu(ctx: InteractionContext):
    await ctx.send(f"You said: {ctx.target.content}")
    

@interaction.component_callback("hello")
async def hello_callback(ctx: InteractionContext):
    await ctx.send("Hello again!", ephemeral=True)

client.run()

Webserver

import ssl  # SSL is forced to register your webserver URL to discord.
from dico import Button, ActionRow, ButtonStyles
from dico_interaction import InteractionClient, InteractionWebserver, InteractionContext

bot_token = ""
bot_public_key = ""

interaction = InteractionClient(respond_via_endpoint=False)
server = InteractionWebserver(bot_token, bot_public_key, interaction)


@interaction.slash(name="hello", description="Say hello.")
async def hello(ctx: InteractionContext):
    button = Button(style=ButtonStyles.PRIMARY, label="Hello!", custom_id=f"hello{ctx.id}")
    await ctx.send("Hello, World!", components=[ActionRow(button)])
    
    
@interaction.context_menu(name="say", menu_type=3)
async def say_menu(ctx: InteractionContext):
    await ctx.send(f"You said: {ctx.target.content}")
    

@interaction.component_callback("hello")
async def hello_callback(ctx: InteractionContext):
    await ctx.send("Hello again!", ephemeral=True)

ssl_context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
ssl_context.load_cert_chain("cert.pem", "privkey.pem")
server.run(host='0.0.0.0', port=1337, ssl_context=ssl_context)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dico-interaction-0.0.9.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

dico_interaction-0.0.9-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file dico-interaction-0.0.9.tar.gz.

File metadata

  • Download URL: dico-interaction-0.0.9.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for dico-interaction-0.0.9.tar.gz
Algorithm Hash digest
SHA256 bff8c4a7b2eb26bad3e2805a210f609457b86caac329a024cedd3038cdc14558
MD5 7aae77516b7ec2a498c375ba28c4cb83
BLAKE2b-256 3826faca74e7f820e336ac64ba7909484adaf0b2568316f2595dfb3b268d39ce

See more details on using hashes here.

File details

Details for the file dico_interaction-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: dico_interaction-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for dico_interaction-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 e25266e0328110025042d1925aef124b36ba89228337f953ac7ed8b58af24fc0
MD5 524733949ff0e9ce1fe036a14bed8c86
BLAKE2b-256 a91638cf7f84b0b881cde76f9668013e854e6f4fb8298de32111e2890fe8a17d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page