Рубрики
Без рубрики

Discord.py Project 3: Случайные фото собаки! 🐕

В этой статье вы собираетесь узнать, как сделать бот раздорты, который может: отправить фотографию собаки … Теги с разногласием, ботом, дискоментом, Python.

В этой статье вы собираетесь узнать, как сделать раздорный бот, который может:

  • Отправить картину собаки в встраиваемой
  • Отправьте факт собаки в встраивании используя нижние колонтитулы

К концу этого поста вы узнаете, как:

  • Сделать запросы 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”