Каков правильный процесс настройки пользовательской автоматизации?

Я новичок, и у меня есть несколько вопросов по руководству по созданию пользовательских автоматизаций.

Впервые я попробовал написать скрипт автоматизации прямо в среде разработки GitHub Codespaces (я не владею синтаксисом, код написал Claude).

После внесения изменений структура файлов должна выглядеть следующим образом:

plugins/automation/
├── lib/
│   └── discourse_automation/
│       ├── scripts.rb                 # Изменено
│       └── scripts/
│           ├── ...                    # Другие скрипты
│           └── remove_expired_group_members.rb  # Добавлено
└── config/
    └── locales/
        ├── server.en.yml              # Изменено
        ├── client.en.yml              # Изменено
        ├── server.zh_CN.yml           # Изменено
        └── client.zh_CN.yml           # Изменено

Однако я не уверен, можно ли так делать в производственной среде.
Также я не знаю, не будут ли такие изменения утеряны при пересборке или обновлении плагина автоматизации, поэтому боюсь пробовать это в продакшене. Возможно, стоит подать запрос на добавление функциональности, чтобы его реализовали разработчики плагина?

Надеюсь, опытные пользователи подскажут правильный порядок действий: от написания и тестирования до внедрения в производственную среду.
Огромное спасибо!

1 лайк

Я считаю, что это должно быть реализовано в новом плагине.

Вы можете ознакомиться с:

3 лайка

Я ознакомился со ссылкой, которую вы предоставили.

Позвольте спросить: не могли бы вы объяснить, почему лучше использовать плагины, а не создавать скрипты внутри автоматизационного плагина?

  1. Я не специалист, и создание плагинов кажется мне более сложным.
  2. Мне нужно реализовать множество функций. Неужели для этого потребуется создать множество плагинов? (Хотя мне нравятся плагины, так как их можно использовать совместно).
1 лайк

Если я не ошибаюсь, при следующем обновлении внесённые вами изменения в плагин будут перезаписаны.

4 лайка

Хорошо, это именно то, чего я опасался.
Значит, функция пользовательской автоматизации, похоже, не имеет большого значения для пользователей? :joy:
Я ещё раз изучу документацию, и если не получится, попробую создать плагин.

2 лайка

Думаю, в руководстве (которое пока является черновиком) не хватает этой информации. В нём объясняется как создавать новые автоматизации, но не где это делать. В ответах, однако, упоминаются примеры плагинов, например тот, на который ссылается @NateDhaliwal.

Саймон также предлагает посмотреть на плагин «Data Explorer»: Create custom Automations - #6 by simon.

Зависит от того, что вы имеете в виду под «пользователем»? :smile: Как разработчик, вы, безусловно, можете создать новый плагин, добавляющий автоматизации. Это правильный способ решения задачи.

Так как вы упомянули, что не понимаете код, но можете использовать ИИ для этого, возможно, вам будет интересна эта дискуссия: Claude & Discourse-related development. How good is it?.

Я сейчас экспериментирую с этим (хотя у меня есть лишь поверхностное представление о коде — недостаточно даже для создания простого плагина самостоятельно!), и скоро поделюсь своим недавним опытом.

Поскольку Claude посоветовал вам отредактировать плагин автоматизации, возможно, стоит уточнить свои промпты и попросить ИИ следовать реальным лучшим практикам.

3 лайка

Нет. То, что делает её пользовательской автоматизацией, — это то, что она не встроена в систему. Вам нужно добавить новую в виде плагина. GitHub - scossar/automation-script-example: An example of how to add a custom script to the Discourse Automation plugin. · GitHub, ссылка из учебника. Вы можете начать с этого и попробовать объяснить любой ИИ, что хотите добавить новую настройку.

Что вы хотите, чтобы делала ваша пользовательская автоматизация?

1 лайк

Мне нужен автоматический скрипт для удаления участников группы по истечении срока их действия.
Настройка группы и продолжительности: по истечении срока пользователь автоматически удаляется.

Например:
Настройка: группа VIP, продолжительность 30 дней.
Пользователь удаляется из группы VIP по истечении 30 дней после вступления.

Сейчас я всё больше путаюсь и не понимаю, могут ли плагины автоматизации сохранять мои собственные скрипты автоматизации (в предыдущих комментариях указывалось, что они будут перезаписаны).

Если бы вы были на моём месте, как бы вы обычно использовали плагины автоматизации?
Можете ли вы точно описать свой способ использования (в случаях, когда встроенные скрипты и триггеры плагинов автоматизации не удовлетворяют требованиям)?
Я думаю, что из вашего описания сценария смогу понять, как работают пользовательские функции.

Как пользователей добавляют в группу vip? Или, возможно, имеет смысл, чтобы то, что добавляет их в группу, также удаляло их. Именно так работает, например, плагин подписки.

Автоматизации не удаляются, но редактирование кода в вашем контейнере удаляется.

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

1 лайк