python - 带有 cs 和 AIOHTTP 的 Discord.py Meme 命令
问题描述
@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)
我从一个 stackoverflow 问题中找到了这段代码,我真的很想知道它是如何工作的。我觉得它可以提高我对 discord.py 的理解 :> 所以如果你不介意并且有时间和知识,请回答!:D
解决方案
所有这一切都是向给定的 url 发送一个 GET 请求,该 url 本身返回 JSON 数据。如果您通过任何浏览器发送请求,您将看到您收到 JSON 格式的数据。例如,如果您使用 Firefox,它会自动为您提供将其作为 JSON 对象进行检查的选项。为了更好地理解,您可以单击您的方式向下键
['data']['children'] [random.randint(0, 25)]['data']['url']
所以你进入数据 -> 孩子 -> 选择一个随机数 -> 数据 -> url 你会看到最终结果是一个 url 字符串,它将你引导到一个 meme 图片。
代码片段的最后一步是它发送你在某个地方得到的 url(我猜是不和谐的聊天)
推荐阅读
- java - JSON 格式的 RESTful Web 服务
- python - 检查方法参数的 Python 2/3 兼容方式
- reactjs - 下拉菜单翻转位置问题。React-Select + Material-UI Popper
- cross-browser - 带有 babel-preset-env 的 Babel 似乎忽略了 browserslist 配置
- php - 查找电子邮件地址时如何使 PHP 正则表达式断言适用于整个模式?
- excel - 单元格值 = 来自超链接路径的 lastmodifieddate
- bash - 为什么 git log 在退出后返回退出代码 141,我该如何避免它?
- python - 我的错误是什么?(第一个数字是 1,第二个数字是 2 = 3,但输出显示 1 + 2 = 12)
- java - spring boot 登录应用
- asciidoc - ASCII 文档中的域名