У вас есть сервер Discord и вы хотели бы автоматически публиковать изображения на определенном канале через определенные промежутки времени, не пошевелив и пальцем? В этой статье показано, как автоматически загружать изображения в канал Discord с помощью инструмента Discord-AIU и пользовательских скриптов.
Наша цель и инструментарий
Представьте, что у вас есть Сервер Discord посвященный аниме и вы хотите, чтобы ваши учас
Contents
Наша цель и инструментарий
тами, публикуемыми каждый день. Идея кажется простой в реализации: нужно только не забывать публиковать изображение каждые 24 часа, верно? Неправильный. Жизнь становится насыщенной, и, прежде чем вы это осознаете, ваши участники кричат на вас, задаваясь вопросом, куда делась их ежедневная доза аниме-доброты. Именно здесь на помощь приходит автоматизация, которая спасет положение и ваше здравомыслие.Чтобы автоматически публиковать изображения на вашем канале Discord, мы будем использовать комбинацию инструментов и скриптов. Наша основная цель — настроить систему, которая будет регулярно загружать изображения на указанный вами канал Discord без какого-либо ручного вмешательства. В качестве основы мы будем использовать инструмент Discord-AIU (автоматическая загрузка изображений), а также некоторые пользовательские скрипты для управления процессом планирования и выбора изображений.
Установка Discord-AIU
Теперь, когда мы определили нашу цель, давайте создадим бота для загрузки изображений с помощью Discord-AIU. Сначала вам нужно загрузить Discord-AIU из Репозиторий GitHub . Я рекомендую вам взять последнюю версию и распаковать ее в подходящем месте. Инструмент разработан на Python, поэтому его можно запускать в любой основной операционной системе.
![Загрузите Discord Aiu с Github](https://saintist.ru/wp-content/uploads/2024/07/download-discord-aiu-from-github-800x419-1.jpeg)
После загрузки Discord-AIU вам необходимо установить необходимые зависимости Python. Если в вашей системе Питон установлен , вы можете просто открыть терминал или командную строку, перейти в каталог Discord-AIU и запустить команду pdm install
(вам также может потребоваться установить PDM для его выполнения).
Команда установит все необходимые пакеты для правильной работы инструмента, а именно Pillow, Python-dotenv и Requests.
Создайте конечную точку вебхука для своего канала
Следующим шагом будет создание конечной точки веб-перехватчика на вашем сервере Discord. Этот вебхук является точкой соединения между Discord-AIU и вашим сервером. Для этого откройте Настройки сервера и перейдите на вкладку Интеграция.
![Discord Создать вебхук](https://saintist.ru/wp-content/uploads/2024/07/discord-create-webhook-800x460-1.jpeg)
Нажмите кнопку Создать вебхук, и вам будут предложены варианты настройки вебхука. Вы можете отредактировать аватар, выбрать канал, на котором будут публиковаться изображения, и дать имя своему вебхуку.
![Discord Копировать URL-адрес веб-перехватчика](https://saintist.ru/wp-content/uploads/2024/07/discord-copy-webhook-url-800x460-1.jpeg)
После настройки вы можете нажать кнопку Копировать URL-адрес веб-перехватчика, чтобы получить URL-адрес вновь созданного веб-перехватчика.
Настройка параметров Discord-AUI
Когда ваш вебхук настроен, пришло время настроить Discord-AIU. Откройте папку Discord-AUI и перейдите во вложенную папку src.
![Подпапка Discord Aiu Src](https://saintist.ru/wp-content/uploads/2024/07/discord-aiu-src-subfolder-800x379-1.jpeg)
Найдите файл с именем discord_aiu.py и откройте его в своем любимом текстовом редакторе. Вставьте URL-адрес веб-перехватчика в соответствующий параметр конфигурации в верхней части файла. Это должно выглядеть примерно так:
WEBHOOK_URL = "https://discord.com/api/webhooks/<YOUR_WEBHOOK_ID>/YOUR_WEBHOOK_TOKEN"
Я также рекомендую вам изменить параметр конфигурации FOLDER_PATH в соответствии с вашими предпочтениями. По умолчанию
Создайте конечную точку вебхука для своего канала
'./images/'Этот путь указан относительно местоположения файла discord_aiu.py. Другими словами, папка «images» должна быть создана в том же каталоге, что и скрипт discord_aiu.py. Сохраните файл и создайте папку прямо сейчас.
Автоматически публиковать несколько изображений в Discord
Чтобы проверить, работает ли Discord-AUI должным образом, поместите один или несколько образцов изображений в новую указанную папку изображений. Затем откройте терминал или командную строку, перейдите в каталог Discord-AIU и выполните следующую команду:
pdm run ./src/discord_aiu.py
Если все настроено правильно, через несколько секунд вы увидите, что все тестовые изображения появятся на назначенном канале Discord. Вы также можете посмотреть выходные данные инструмента, которые должны точно сказать вам, сколько изображений было успешно загружено.
![Дискорд Айу](https://saintist.ru/wp-content/uploads/2024/07/discord-aiu-800x495-1.jpeg)
Единственная проблема заключается в том, что команда всегда загружает все изображения в указанную папку целиком. Хотя это может быть невероятно полезно и экономит время, если вам нужно поделиться большим количеством изображений со своим сообществом, наша цель — автоматически загружать в Discord по одному изображению через регулярные промежутки времени. К счастью, все, что нам нужно, это собственный Настройка параметров Discord-AUIнарий .
Запланировать выполнение 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" # Pick a random file from the queue $RANDOM_FILE = Get-ChildItem -Path $QUEUE_FOLDER | Get-Random -Count 1 if ($RANDOM_FILE) { # Move the file to the images folder Move-Item -Path $RANDOM_FILE.FullName -Destination $IMAGES_FOLDER # Run Discord-AIU Set-Location -PathАвтоматически публиковать несколько изображений в DiscordORD_AIU_PATH # Move the processed file to the uploaded folder $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" # Pick a random file from the queue RANDOM_FILE=$(find "$QUEUE_FOLDER" -type f | shuf -n 1) if [ -n "$RANDOM_FILE" ]; then # Move the file to the images folder mv "$RANDOM_FILE" "$IMAGES_FOLDER" # Run Discord-AIU cd /path/to/Discord-AIU && pdm run "$DISCORD_AIU_PATH" # Move the file to the uploaded folder mv "$IMAGES_FOLDER"/* "$UPLOADED_FOLDER" fi
Не забудьте создать необходимые папки и изменить пути, отражающие их расположение, а также расположение самой папки Discord-AIU. Вам
Запланировать выполнение Discord-AUI через регулярные промежутки времени
-chto-oznachaet-chmod-777/" title="сделать скрипт исполняемым">сделать скрипт исполняемым с помощью командыchmod +X /path/to/script
.
Наконец, вам нужно запланировать автоматический запуск файла script.ps1 (Windows) или файла script.sh (Linux и macOS), скажем, один раз в день.
Как пользователь Windows, вы можете открыть Планировщик заданий, выполнив поиск в меню «Пуск». Нажмите Создать базовую задачу на правой панели и дайте задаче имя, например «Загрузчик изображений Discord».
![Планировщик задач Windows Создать базовую задачу](https://saintist.ru/wp-content/uploads/2024/07/task-scheduler-windows-create-basic-task-800x519-1.jpeg)
Выберите Ежедневно в качестве триггера и установите желаемое время. В качестве действия выберите Запустить программу. В поле Программа/скрипт введите «powershell», а в поле Добавить аргументы введите -ExecutionPolicy Bypass -File "C:\path\to\your\script.ps1"
.
![Кронтаб Макос](https://saintist.ru/wp-content/uploads/2024/07/crontab-macos-800x507-1.jpeg)
Если вы используете Linux или macOS, вы можете открыть терминал и ввести
crontab -e
чтобы отредактировать ваш задания cron (вы также можете использовать sudo EDITOR=nano crontab -e
, чтобы использовать Нано-редактор вместо Вим ).
Добавьте новую строку для запуска сценария ежедневно в 12:00 (полдень), которая выглядит следующим образом:
0 12 * * * /path/to/your/script.sh
Сохраните и выйдите из редактора.
После выполнения этих шагов выбранный вами скрипт будет запускаться автоматически каждый день, обновляя ваш канал Discord новыми изображениями. Просто не забудьте пополнить папку очереди новыми изображениями, чтобы обеспечить постоянный поток контента. Если вы хотите сделать свой сервер еще более интересным местом для посещения, вы можете изучить как превратить Raspberry Pi в радиостанцию Discord .
Изображение и скриншоты Дэвида Морело.