Как мне получить случайное изображение сабреддита моему боту discord.py?

Я делаю бота Discord на асинхронном питоне. Я хочу, чтобы бот публиковал случайное изображение, когда я выполняю команду (префикс!) Example! Meme. Это вызовет случайное изображение из субреддита, в данном случае субреддита мемов. Я начал делать то, что хочу, но мне нужна помощь со случайным битом сабреддита.

import discord
import praw
from discord.ext import commands

bot = commands.Bot(description="test", command_prefix="!")

@bot.command()
async def meme():
    await bot.say(---)   
    #--- WOULD BE THE REDDIT URL
    bot.run("TOKEN")

Как это сделать с помощью discord.py и PRAW?


person Alex Wollan    schedule 17.04.2018    source источник
comment
Я бы начал с написания кода, и если у вас есть конкретный вопрос по программированию, то приходите и спрашивайте здесь.   -  person user3483203    schedule 17.04.2018


Ответы (1)


Приведенный ниже код будет извлекать случайную запись из сабреддита мемов. В настоящее время он выбирает случайную публикацию из 10 лучших сообщений из горячего раздела.

import praw
import random
from discord.ext import commands

bot = commands.Bot(description="test", command_prefix="!")

reddit = praw.Reddit(client_id='CLIENT_ID HERE',
                     client_secret='CLIENT_SECRET HERE',
                     user_agent='USER_AGENT HERE')

@bot.command()
async def meme():
    memes_submissions = reddit.subreddit('memes').hot()
    post_to_pick = random.randint(1, 10)
    for i in range(0, post_to_pick):
        submission = next(x for x in memes_submissions if not x.stickied)

    await bot.say(submission.url)

bot.run('TOKEN')
person Benjin    schedule 17.04.2018
comment
@AlexWollan Перейдите сюда reddit.com/prefs/apps и создайте приложение - person Benjin; 17.04.2018
comment
Я протестировал код, он работает нормально. Убедитесь, что ваши client_id, client_secret и user_agent верны. Краткое руководство здесь: praw.readthedocs.io/en/latest/getting_started/quick_start .html - person Benjin; 17.04.2018
comment
Нравится? USER_AGENT = ЧТО Я НАЗЫВАЛ СЦЕНАРИЙ @Benjin - person Alex Wollan; 18.04.2018