Команда Discord.py Meme с CS и AIOHTTP - PullRequest
0 голосов
/ 04 августа 2020
@client.command(aliases=['memes'])
async def meme(ctx):
    embed = discord.Embed(title="Meme", description=None)

    async with aiohttp.ClientSession() as cs:
        async with cs.get('https://www.reddit.com/r/wholesomememes/new.json?sort=hot') as r:
            res = await r.json()
            embed.set_image(url=res['data']['children'] [random.randint(0, 25)]['data']['url'])
            await ctx.send(embed=embed, content=None)

Я нашел этот блок кода в вопросе о переполнении стека. Я действительно хотел бы знать, как это работает. Я чувствую, что это может улучшить мое понимание discord.py:> Так что, если вы не возражаете и у вас есть время и знания, пожалуйста, ответьте! : D

1 Ответ

0 голосов
/ 04 августа 2020

Все, что это делает, - это отправка запроса GET на заданный URL-адрес, который сам возвращает JSON данные. Если вы отправите запрос через любой браузер, вы увидите, что вы получаете данные в формате JSON. Если вы используете, например, Firefox, он автоматически даст вам возможность проверить его как объект JSON. Для лучшего понимания вы можете затем щелкнуть по клавишам

['data']['children'] [random.randint(0, 25)]['data']['url']

Итак, вы go под данными -> дети -> выберите случайное число -> данные -> URL. Вы увидите, что конечный результат строка url, которая направляет вас к картинке мема.

Последний шаг в фрагменте кода - это отправка URL-адреса, который вы где-то только что нашли (я догадываюсь в чате Discord)

...