tux icon indicating copy to clipboard operation
tux copied to clipboard

feat: add example cog with hybrid and slash command implementations

Open electron271 opened this issue 10 months ago • 3 comments

make sure to move the example.py file somewhere else

Summary by Sourcery

New Features:

  • Add an example command that can be invoked as both a slash command and a hybrid command.

electron271 avatar Feb 04 '25 06:02 electron271

Reviewer's Guide by Sourcery

This pull request introduces an example cog demonstrating hybrid and slash command implementations. It showcases the usage of commands.hybrid_command for commands accessible via both slash and prefix, and app_commands.command for slash-only commands. The cog also utilizes the EmbedCreator class for creating embeds.

Sequence diagram for hybrid command interaction

sequenceDiagram
    actor User
    participant Discord
    participant Tux
    participant Example
    participant EmbedCreator

    Note over User: Can use either slash or prefix command
    alt Slash Command
        User->>Discord: /example
    else Prefix Command
        User->>Discord: !example
    end
    Discord->>Tux: Process command
    Tux->>Example: example_hybrid_or_prefix()
    Example->>EmbedCreator: create_embed()
    EmbedCreator-->>Example: Return embed
    Example-->>User: Send embed message

Sequence diagram for slash-only command interaction

sequenceDiagram
    actor User
    participant Discord
    participant Tux
    participant Example
    participant EmbedCreator

    User->>Discord: /example-app-command
    Discord->>Tux: Process interaction
    Tux->>Example: example_app_command()
    Example->>EmbedCreator: create_embed()
    EmbedCreator-->>Example: Return embed
    Example-->>User: Send embed message

Class diagram for Example cog implementation

classDiagram
    class Example {
        +bot: Tux
        +example_hybrid_or_prefix(ctx: Context[Tux])
        +example_app_command(interaction: Interaction)
    }
    class commands.Cog {
        <<interface>>
    }
    class EmbedCreator {
        +create_embed()
    }
    Example --|> commands.Cog
    Example ..> EmbedCreator: uses
    note for Example "Implements both hybrid and slash commands"

File-Level Changes

Change Details Files
Added an example cog with a hybrid command.
  • Implemented a hybrid command named "example" accessible via both slash and prefix.
  • Added an alias "test" for the hybrid command.
  • Utilized EmbedCreator to create and send an embed in response to the command.
tux/cogs/utility/example.py
Implemented an example slash command.
  • Created a slash command named "example-app-command".
  • Utilized EmbedCreator to create and send an embed in response to the command.
tux/cogs/utility/example.py
Added a setup function to load the cog.
  • Defined an async setup function to add the Example cog to the bot.
tux/cogs/utility/example.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an issue from a review comment by replying to it. You can also reply to a review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull request title to generate a title at any time. You can also comment @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in the pull request body to generate a PR summary at any time exactly where you want it. You can also comment @sourcery-ai summary on the pull request to (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the pull request to resolve all Sourcery comments. Useful if you've already addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull request to dismiss all existing Sourcery reviews. Especially useful if you want to start fresh with a new review - don't forget to comment @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

  • Contact our support team for questions or feedback.
  • Visit our documentation for detailed guides and information.
  • Keep in touch with the Sourcery team by following us on X/Twitter, LinkedIn or GitHub.

sourcery-ai[bot] avatar Feb 04 '25 06:02 sourcery-ai[bot]

@kzndotsh needs to be figured out, you said would be added to the pre-0.1 documentation

electron271 avatar Apr 18 '25 00:04 electron271

Deploying tux with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3818a07
Status: ✅  Deploy successful!
Preview URL: https://f3ab02cd.tux-afh.pages.dev
Branch Preview URL: https://example-cog.tux-afh.pages.dev

View logs

closed upon request by @kzndotsh

electron271 avatar Jun 23 '25 19:06 electron271