Skip to content

Why on messages sent with await channel.send #306

@MatthewBaggins

Description

@MatthewBaggins

Normally, Stampy sends messages to channels using the Response object. Passing a string to the why argument gives us a way to ask Stampy for why he gave particular responses

            return Response(
                confidence=Conf,
                text=self.dereference(text.partition(" ")[2], who) + "!",
                why=f"{who} told me to say it!",
            )

Screenshot from 2023-06-27 15-56-57

However, sometimes Stampy sends a message to a channel as a string via await channel.send syntax. This allows Stampy send a message to an arbitrary channel, rather than just "in Response" to a message that somebody else posted to the channel. However, in this case there is no why because there is no Response.

        await channel.send(make_post_question_message(question))

Screenshot from 2023-06-27 15-59-10

Giving "reasons why" is served by the Why module.

Maybe it would be possible to use Response with await channel.send but IDK. One alternative I see is just to make Stampy remember all the awaited messages he sends, e.g., by saving them to some new dictionary in Utilities that maps message IDs to their "why's". In this case, we would probably want to have a new method for doing await channel.send, which automatically saves the messages to that dictionary. The Why module would then need to be extended to make use of that dictionary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions