Добавить в ежедневную сводку блок вакансий, релевантных пользователю на основе настроек его профиля

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

Вот конечная точка (endpoint). Идея заключается в том, чтобы получить местоположение пользователя и выполнить запрос, передав его как параметры:
https://api.get.it/api/v1/listings/jobs/search/?limit=1&search=sales&city=Alexandria&state=VA

Ниже представлено изображение вакансии. Синяя область уже существует в письме рассылки, а нам нужно реализовать список вакансий (желтая область).

На данный момент я пытаюсь реализовать две эти идеи:
Первая идея — кастомизация через user_notifications.digest.custom.html:

  • Я знаю, что файл user_notifications.digest.custom.html можно использовать для изменения письма рассылки в интерфейсе.
  • Мне нужно исследовать, можно ли использовать плагин для доступа к файлу такого типа, что, по моему мнению, может быть лучшим подходом.

Вторая идея: я заметил, что в тексте некоторых сайтов используются «переменные».

Если я смогу создать переменную такого типа, например {jobtitle}, и сделать её динамической, я смогу добавить её в custom.html.

Вопросы:

  • Я вижу только один плагин, влияющий на ежедневную рассылку (перечислите их). Известны ли вам какие-либо другие? GitHub - pfaffman/discourse-add-to-summary: Add text to summary before and after title · GitHub
  • Возможно ли повлиять на рассылку, добавив к ней раздел, и будет ли это совместимо с будущими версиями Discourse?

Цель этой работы — добавить в ежедневную рассылку блок с вакансиями (полученными из ответа API), актуальными для пользователя на основе настроек в его профиле.

Любые предложения или идеи приветствуются. Заранее спасибо!

О. Забавно. Я как раз собирался дать ссылку на него. Я почти уверен, что он всё ещё работает. (!)

Я бы начал с чистого шаблона и добавлял в него компоненты по мере необходимости. Я писал это очень давно, Discourse изменился, а тогда я не очень хорошо умел писать плагины. :slight_smile:

Также рекомендую поискать примеры, использующие Discourse.cache, чтобы не извлекать одни и те же задачи из API без необходимости снова и снова.

Ваш запрос на новую функцию также должен быть упомянут: