【问题标题】:How do I get a random subreddit image to my discord.py bot?如何为我的 discord.py 机器人获取随机 subreddit 图像?
【发布时间】:2018-09-27 15:31:16
【问题描述】:

我正在异步 python 中制作一个不和谐的机器人。 当我执行命令(前缀!)示例!meme 时,我希望机器人发布 随机 图片。这会从 subreddit 中调出一张随机图片,在本例中是 memes subreddit。我已经开始了我想要的,但我需要随机 subreddit 位的帮助。

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 来做到这一点?

【问题讨论】:

  • 我会先写一些代码,如果你有一个特定的编程问题,然后来这里问。

标签: python python-3.x discord discord.py praw


【解决方案1】:

以下代码将从 memes subreddit 中获取随机帖子。目前它会从热门版块的前 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')

【讨论】:

【解决方案2】:
@client.command(aliases=['Meme'])
async def meme(ctx):
    reddit = praw.Reddit(client_id='XXXX',
                        client_secret='XXXX',
                        user_agent='XXXX')

    submission = reddit.subreddit("memes").random()
    await ctx.send(submission.url)

【讨论】:

    猜你喜欢
    • 2021-02-12
    • 1970-01-01
    • 2019-03-11
    • 2020-12-24
    • 2020-05-21
    • 2022-01-03
    • 2022-08-05
    • 1970-01-01
    • 2019-06-15
    相关资源
    最近更新 更多