В этой статье вы собираетесь узнать, как сделать раздорный бот, который может:
- Отправить картину собаки в встраиваемой
- Отправьте факт собаки в встраивании используя нижние колонтитулы
К концу этого поста вы узнаете, как:
- Сделать запросы API для отдыха
- Parse Json Data.
- Используйте
нижний колонтитул
иизображение
поля вложения.
Везде, где используется команда, она отправит встроенную аналогичную это:
Для начала нам нужно инициализировать наш бот. На этот раз мы обратно используем команды. Бот, так как у нас будет одна функция, наша команда собаки.
import discord from discord.ext import commands client = commands.Bot(command_prefix="!") @client.event async def on_ready(): print("Ready") client.run('token')
До сих пор у нас есть бот с префиксом Действительно
. Когда он готов, он будет печатать Готов
В консоли!
Давайте сделаем команду собаки сейчас! Начнем, импортируя модули, нам понадобится: AioHTTP
и JSON
Отказ
Примечание: тип PIP Установить AioHTTP. Перед запуском кода!
import discord from discord.ext import commands import aiohttp client = commands.Bot(command_prefix="!") @client.event async def on_ready(): print("Ready") client.run('token')
Теперь создайте команду:
import discord from discord.ext import commands import aiohttp client = commands.Bot(command_prefix="!") @client.event async def on_ready(): print("Ready") @client.command() async def dog(ctx): async with aiohttp.ClientSession() as session: request = await session.get('https://some-random-api.ml/img/dog') dogjson = await request.json() client.run('token')
Теперь Догжсон
будет переменная, содержащая A Словарь , который является списком псевдонимов.
Какой словарь? Пример того, где вы будете использовать словарь, находится в заменении шифра. Вы можете сделать A1Z26 (где a становится 1 , b становится 2 , так далее.). Итак, вы сделаете словарь, чтобы облегчить: Введите полноэкранный режим Выйдите из полноэкранного режима Теперь вы можете использовать это для замены: Введите полноэкранный режим Выйдите из полноэкранного режима
Зная, что словарь структурирован так: Мы знаем, что мы хотим использовать связь
ключ.
Теперь мы могу
import discord from discord.ext import commands import aiohttp client = commands.Bot(command_prefix="!") @client.event async def on_ready(): print("Ready") @client.command() async def dog(ctx): async with aiohttp.ClientSession() as session: request = await session.get('https://some-random-api.ml/img/dog') # Make a request dogjson = await request.json() # Convert it to a JSON dictionary embed = discord.Embed(title="Doggo!", color=discord.Color.purple()) # Create embed embed.set_image(url=dogjson['link']) # Set the embed image to the value of the 'link' key await ctx.send(embed=embed) # Send the embed client.run('token')
Теперь, когда мы используем команду BOT, мы получим этот вывод:
Теперь давайте отправим это факт собаки! Сомерандомапи также имеет конечную точку фактов для собак, что позволит нам получить случайный факт о собаках!
@client.command() async def dog(ctx): async with aiohttp.ClientSession() as session: request = await session.get('https://some-random-api.ml/img/dog') dogjson = await request.json() # This time we'll get the fact request as well! request2 = await session.get('https://some-random-api.ml/facts/dog') factjson = await request2.json() embed = discord.Embed(title="Doggo!", color=discord.Color.purple()) embed.set_image(url=dogjson['link']) embed.set_footer(text=factjson['fact']) await ctx.send(embed=embed)
Это даст следующее!
Есть вопросы? Есть предложение о том, что делать для следующего поста?
Скажи мне в комментариях, и я отвечу!
Оригинал: “https://dev.to/mikeywastaken/discord-py-project-3-random-dog-pics-3b4a”