Как автоматически публиковать изображения в канале Discord

Вы управляете сервером Discord и хотите автоматически публиковать изображения в определённый канал через регулярные промежутки времени, не прилагая усилий? Эта статья покажет вам, как автоматически загружать изображения в канал Discord с помощью инструмента Discord-AIU и пользовательских скриптов.
Содержание
- Наша цель и инструменты
- Установка Discord-AIU
- Создание конечной точки вебхука для вашего канала
- Настройка параметров Discord-AUI
- Автоматическая публикация нескольких изображений в Discord
- Запланировать выполнение Discord-AUI через регулярные промежутки времени
Наша цель и инструменты
Представьте, что вы управляете сервером Discord, посвящённым аниме, и хотите поддерживать интерес участников свежими фан-артами, публикуемыми каждый день. Идея кажется простой в реализации: вам просто нужно помнить о том, чтобы публиковать изображение каждые 24 часа, верно? Неправильно. Жизнь становится занятой, и прежде чем вы это осознаете, ваши участники кричат на вас, спрашивая, куда делась их ежедневная доза аниме. Вот тут-то и приходит на помощь автоматизация – и ваше спокойствие.
Чтобы автоматически публиковать изображения в ваш канал Discord, мы будем использовать комбинацию инструментов и скриптов. Наша главная цель – настроить систему, которая будет регулярно загружать изображения в указанный вами канал Discord без какого-либо ручного вмешательства. Мы будем использовать инструмент Discord-AIU (Автоматический загрузчик изображений) в качестве основы, а также несколько пользовательских скриптов для обработки планирования и выбора изображений.
Установка Discord-AIU
Теперь, когда мы определили нашу цель, давайте создадим нашего бота для загрузки изображений с помощью Discord-AIU. Сначала вам нужно скачать Discord-AIU из его репозитория на GitHub. Я рекомендую вам скачать последнюю версию и распаковать её в подходящем месте. Инструмент разработан на Python, поэтому вы можете запускать его на любой основной операционной системе.

После того как вы скачали Discord-AIU, вам нужно установить необходимые зависимости Python. Если Python установлен на вашей системе, вы можете просто открыть терминал или командную строку, перейти в директорию Discord-AIU и выполнить команду pdm install (вам также может понадобиться установить PDM для её выполнения).

Команда установит все необходимые пакеты для корректной работы инструмента, а именно pillow, python-dotenv и requests.
Создание конечной точки вебхука для вашего канала
Следующий шаг – создать конечную точку вебхука на вашем сервере Discord. Этот вебхук является точкой соединения между Discord-AIU и вашим сервером. Для этого откройте Настройки сервера и перейдите на вкладку Интеграции.

Нажмите кнопку Создать вебхук, и вам будут предложены варианты для настройки вашего вебхука. Вы можете изменить аватар, выбрать канал, в который будут публиковаться изображения, и дать вашему вебхуку имя.

После настройки вы можете нажать кнопку Скопировать URL вебхука, чтобы получить URL только что созданного вебхука.
Настройка параметров Discord-AUI
С установленным вебхуком пришло время настроить Discord-AIU. Откройте папку Discord-AUI и перейдите в подпапку src.

Там найдите файл с именем discord_aiu.py и откройте его в вашем любимом текстовом редакторе. Вставьте ваш URL вебхука в соответствующий параметр конфигурации в верхней части файла. Он должен выглядеть примерно так:
WEBHOOK_URL = "https://discord.com/api/webhooks//YOUR_WEBHOOK_TOKEN"Я также рекомендую изменить параметр конфигурации FOLDER_PATH в зависимости от ваших предпочтений. По умолчанию он установлен на:
FOLDER_PATH = './images/'Этот путь относителен к местоположению файла discord_aiu.py. Другими словами, папка “images” должна быть создана в той же директории, что и скрипт discord_aiu.py. Не стесняйтесь сохранить файл и создать папку сейчас.
Автоматическая публикация нескольких изображений в Discord
Чтобы проверить, работает ли Discord-AUI так, как должно, поместите одно или несколько тестовых изображений в только что указанную папку изображений. Затем откройте терминал или командную строку, перейдите в директорию Discord-AIU и выполните следующую команду:
pdm run ./src/discord_aiu.pyЕсли всё настроено правильно, вы должны увидеть все тестовые изображения, появляющиеся в указанном канале Discord в течение нескольких мгновений. Вы также можете посмотреть на вывод инструмента, который должен сообщить вам, сколько изображений было успешно загружено.

Единственная проблема заключается в том, что команда всегда загружает все изображения в указанной папке оптом. Хотя это может быть невероятно полезно и экономить время, если вам нужно поделиться большим количеством изображений с вашим сообществом, наша цель – автоматически загружать одно изображение за раз в Discord через регулярные промежутки времени. К счастью, всё, что нам нужно, – это пользовательский скрипт.
Запланировать выполнение Discord-AUI через регулярные промежутки времени
Теперь, когда мы подтвердили, что Discord-AUI работает, давайте автоматизируем процесс публикации изображений через регулярные промежутки времени. Мы создадим скрипт, который выполняет следующие задачи:
- Выбирает случайный файл из папки очереди.
- Перемещает его в папку изображений.
- Выполняет инструмент Discord-AUI.
- Перемещает загруженное изображение в папку “загруженные”.
Если вы используете Windows, вам нужно создать новый текстовый файл (вы можете использовать Блокнот) и скопировать и вставить следующий код:
$QUEUE_FOLDER="C:\path\to\Discord-AIU\src\queue"
$IMAGES_FOLDER="C:\path\to\Discord-AIU\src\images"
$UPLOADED_FOLDER="C:\path\to\Discord-AIU\src\uploaded"
$DISCORD_AIU_PATH="C:\path\to\Discord-AIU\src\discord_aiu.py"
# Выбираем случайный файл из очереди
$RANDOM_FILE=Get-ChildItem-Path$QUEUE_FOLDER| Get-Random -Count1
if($RANDOM_FILE){
# Перемещаем файл в папку изображений
Move-Item-Path$RANDOM_FILE.FullName -Destination$IMAGES_FOLDER
# Запускаем Discord-AIU
Set-Location-Path"C:\path\to\Discord-AIU"
pdm run $DISCORD_AIU_PATH
# Перемещаем обработанный файл в папку загруженных
$PROCESSED_FILE=Get-ChildItem-Path$IMAGES_FOLDER
Move-Item-Path$PROCESSED_FILE.FullName -Destination$UPLOADED_FOLDER
}Сохраните скрипт как script.ps1 или что-то подобное (.ps1 – это расширение скриптов PowerShell).
Пользователи Linux и macOS могут создать файл script.sh с следующим bash-скриптом:
#!/bin/bash
QUEUE_FOLDER="/path/to/Discord-AIU/src/queue"
IMAGES_FOLDER="/path/to/Discord-AIU/src/images"
UPLOADED_FOLDER="/path/to/Discord-AIU/src/uploaded"
DISCORD_AIU_PATH="/path/to/Discord-AIU/src/discord_aiu.py"
# Выбираем случайный файл из очереди
RANDOM_FILE=$(find"$QUEUE_FOLDER"-type f | shuf -n1)
if[-n"$RANDOM_FILE"]; then
# Перемещаем файл в папку изображений
mv"$RANDOM_FILE""$IMAGES_FOLDER"
# Запускаем Discord-AIU
cd/path/to/Discord-AIU && pdm run "$DISCORD_AIU_PATH"
# Перемещаем файл в папку загруженных
mv"$IMAGES_FOLDER"/*"$UPLOADED_FOLDER"
fiНе забудьте создать необходимые папки и изменить пути, чтобы отразить их местоположение, а также местоположение самой папки Discord-AIU. Вам также нужно сделать скрипт исполняемым, используя команду chmod +X /path/to/script.
Наконец, вам нужно запланировать выполнение файла script.ps1 (Windows) или файла script.sh (Linux и macOS) для автоматического запуска – скажем, раз в день.
Как пользователь Windows, вы можете открыть Планировщик задач, найдя его в меню Пуск. Нажмите Создать простую задачу в правой панели и дайте вашей задаче имя, например, “Загрузчик изображений Discord”.

Выберите Ежедневно в качестве триггера и установите предпочитаемое время. Для действия выберите Запустить программу. В поле Программа/скрипт введите “powershell”, а в поле Добавить аргументы введите -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1".

Если вы используете Linux или macOS, вы можете открыть ваш терминал и ввести
crontab -eчтобы отредактировать ваши задания cron (вы также можете использовать sudo EDITOR=nano crontab -e, чтобы использовать редактор Nano вместо Vim).
Добавьте новую строку для запуска скрипта ежедневно в 12:00 (полдень), которая выглядит так:
0 12 * * * /path/to/your/script.shСохраните и выйдите из редактора.
С завершением этих шагов ваш выбранный скрипт будет автоматически запускаться каждый день, поддерживая ваш канал Discord свежим с новыми изображениями. Просто не забудьте поддерживать вашу папку очереди заполненной новыми изображениями, чтобы обеспечить постоянный поток контента. Если вы хотите сделать ваш сервер ещё более развлекательным местом для посещения, вы можете продолжить, узнав, как превратить ваш Raspberry Pi в радиостанцию Discord.
Изображения и скриншоты предоставлены Дэвидом Морео.