невозможно рандомизировать материалы, поступающие с Reddit - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь заставить мой дискордант бота получать изображения из субреддита r / memes.

вот мой код, интерфейсы с API Reddit

subreddit = reddit.subreddit('memes')
hot_python = subreddit.hot(limit=100)

for submission in hot_python:
    print(submission.title)

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)

вот мой код отправлять выбранное сообщение

elif message.content == "!meme":
        channel = message.channel
        await message.channel.send(submission.url)

всякий раз, когда я запускаю команду, она отправляет один и тот же мем снова и снова вместо выбора случайного. есть идеи как это исправить?

1 Ответ

1 голос
/ 07 января 2020

Получение случайного сообщения из subreddit - это функция Reddit, которая PRAW поддерживает .

Вот функция, которая получает случайное сообщение из указанного subreddit:

def random_post(subreddit):
    return reddit.subreddit(subreddit).random()

И если вы хотите, чтобы публикация не была прикреплена, используйте это:

def random_nonsticky_post(subreddit):
    while True:
        post = reddit.subreddit(subreddit).random()
        if not post.stickied:
            return post

Как обсуждено в ваш дополнительный вопрос , важно отметить, что некоторые подредакты не позволяют получать случайный пост.

...