Graag & Discord.py: De bot blijft dezelfde meme sturen. Ik wil dat de bot verschillende meme verzendt wanneer daarom wordt gevraagd

Ik probeer een listenervoor meme te maken. De bot reageert op het bericht als er "meme"in staat. Het moet een meme sturen. Ik gebruik Praw voor dat doel.

Dit is de code die ik heb geschreven:

@nd.listen()
async def on_message(message):
    if message.author == nd.user:
        return
    def findCoindences(w):
        return re.compile(r'\b({0})\b'.format(w)).search
    content = message.content
    reaction = "👍"
    subreddit = reddit.subreddit("memes")
    for submission in subreddit.random():
        submission_link = submission.url
    if findCoindences('meme')(content.lower()):
        await message.reply(submission_link)
        await message.add_reaction(f"<{reaction}>")

Opmerking: ik heb reddital boven enkele regels gedefinieerd. Dat is niet de oorzaak denk ik.


Het probleem:

Telkens wanneer ik memestuur in de chat, wordt elke keer dezelfde meme verzonden. Ik wil dat het anders is, maar weet niet waar ik dit probleem heb.

Zo ziet het eruit:


Antwoord 1, autoriteit 100%

Je hoeft niets te herhalen. Praw biedt een methode waarmee je een willekeurige inzending van een subreddit kunt pakken.

Documentatie:
willekeurig()

Code:

@nd.listen()
async def on_message(message):
    if message.author == nd.user:
        return
    def findCoindences(w):
        return re.compile(r'\b({0})\b'.format(w)).search
    content = message.content
    reaction = "👍"
    if findCoindences('meme')(content.lower()):
        random_submission = reddit.subreddit('memes').random()
        await message.reply(random_submission.url)
        await message.add_reaction(f"<{reaction}>")

Opmerking: ik heb de random_submission naar de If-statementverplaatst omdat je geen inzending hoeft op te zoeken als het bericht geen “meme” zegt. Het zou gewoon de snelheidslimiet verspillen.

Other episodes