Как добавить аргументы в команду discord.py? - PullRequest
0 голосов
/ 31 мая 2018

Код, который у меня есть:

weather = Weather(unit=Unit.CELSIUS)
location = weather.lookup_by_location('toronto')
forecasts = location.forecast

embed = (discord.Embed(title="-=-__THE WEATHER__-=-", color=0x15dbc7))
embed.add_field(name="Clouds", value=forecasts[0].text, inline=False) 
embed.add_field(name="Date", value=forecasts[0].date, inline=False)
embed.add_field(name="High", value=forecasts[0].high, inline=False)
embed.add_field(name="Low", value=forecasts[0].low, inline=False)
await bot.say(embed=embed)

Как мне заменить 0 на переменную, которая ставится после команды?У меня есть код, который идентифицирует команду:

@bot.command(pass_context=True)
async def weather(ctx)

Используемый мной импорт:

import discord
from discord.ext import commands
from discord.ext.commands import Bot
import asyncio
import random
import weather
from weather import Weather, Unit

1 Ответ

0 голосов
/ 31 мая 2018

Вы передадите этот аргумент в определении функции вместе с преобразователем , который позволяет discord.py знать, в какой тип вы хотите преобразовать это значение.

@bot.command(pass_context=True)
async def weather(ctx, index: int):
    weather = Weather(unit=Unit.CELSIUS)
    location = weather.lookup_by_location('toronto')
    forecasts = location.forecast

    embed = (discord.Embed(title="-=-__THE WEATHER__-=-", color=0x15dbc7))
    embed.add_field(name="Clouds", value=forecasts[index].text, inline=False) 
    embed.add_field(name="Date", value=forecasts[index].date, inline=False)
    embed.add_field(name="High", value=forecasts[index].high, inline=False)
    embed.add_field(name="Low", value=forecasts[index].low, inline=False)
    await bot.say(embed=embed)

Вы бы вызвалиэто от Discord с чем-то вроде !weather 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...