Как показать случайный баннер на странице?

Как создать команду на сервере с использованием библиотеки `disnake` для вывода случайного баннера пользователя через определенные интервалы времени, например, каждые 2 минуты?
  • 26 июня 2024 г. 21:31
Ответы на вопрос 2
Для создания команды на сервере с использованием библиотеки `disnake` для вывода случайного баннера пользователя через определенные интервалы времени можно использовать следующий код:

```python
import disnake
from disnake.ext import commands
import random

intents = disnake.Intents.default()
bot = commands.Bot(command_prefix='!', intents=intents)

banners = ['banner1.png', 'banner2.png', 'banner3.png']

@bot.command()
async def show_banner(ctx):
    random_banner = random.choice(banners)
    await ctx.send(file=disnake.File(random_banner))

@bot.command()
async def scheduled_banner(ctx):
    while True:
        random_banner = random.choice(banners)
        await ctx.send(file=disnake.File(random_banner))
        await disnake.sleep(120)  # Ожидание 2 минуты перед отправкой следующего баннера

bot.run('TOKEN')
```

Этот код создает две команды: `!show_banner`, которая выводит случайный баннер при вызове, и `!scheduled_banner`, которая автоматически выводит случайный баннер каждые 2 минуты.

Не забудьте заменить `'TOKEN'` на токен вашего бота.
Для выполнения задачи периодически в диснейке есть задачи . 

Чтобы получить баннер нужно взять случайного пользователя и проверить наличие Member.banner , повторять пока не найдется.

Обновить баннер сервера можно через Guild.edit

@tasks.loop(hours=2)
async def change_banner():
   user_with_banner = await find_user()  # реализовать самому
   guild = await get_guild()  # реализовать самому
   await guild.edit(banner=user_with_banner.banner)
Похожие вопросы