Чтобы выводить все результаты из цикла for в вашем Discord боте на Python, вы можете использовать асинхронную функцию и собрать все результаты в одном сообщении перед отправкой.
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix="!")
@bot.command()
async def holidays(ctx):
holidays = []
for info in block:
title = info.find('span', class_='title').text
link = info.findNext('a').get('href')
holidays.append(f"{title}\n{link}")
# Объединяем все результаты в одно сообщение
result_message = "\n\n".join(holidays)
await ctx.send(result_message)
# Запуск бота
bot.run('YOUR_DISCORD_TOKEN')
Основная идея заключается в том, чтобы сначала собрать все данные в список holidays, а затем объединить их в одну строку с помощью "\n\n".join(holidays), чтобы отправить все в одном сообщении.
Если вы хотите использовать slash-команды, пример будет аналогичным, но с использованием другой библиотеки для поддержки slash-команд. Например, для discord-py-slash-command:
from discord.ext import commands
from discord_slash import SlashCommand
bot = commands.Bot(command_prefix="!")
slash = SlashCommand(bot, sync_commands=True)
@slash.slash(name="holidays")
async def _holidays(ctx):
holidays = []
for info in block:
title = info.find('span', class_='title').text
link = info.findNext('a').get('href')
holidays.append(f"{title}\n{link}")
result_message = "\n\n".join(holidays)
await ctx.send(content=result_message)
bot.run('YOUR_DISCORD_TOKEN')
Но в дискорде выводит так
Вот часть кода которым я интересуюсь