Я обсуждал создание страницы сейчас с помощью Eleventy, но я также синдицирую подмножество этого контента для Mastodon, используя @11ty/eleventy-activity-feed и Make. @11ty/eleventy-activity-feed позволяет объединять различные веб-каналы в один канал, вставляя записи из каналов последовательно по мере их публикации. Мой follow-feed.11ty.js выглядит так:

module.exports = class {
 data() {
  return {
   permalink: '/follow.xml',
  }
 }
async render() {
  const { ActivityFeed } = await import('@11ty/eleventy-activity-feed')
  const feed = new ActivityFeed()
  feed.addSource('atom', 'Blog', 'https://coryd.dev/feed.xml')
  feed.addSource('rss', 'Letterboxd', 'https://letterboxd.com/cdme/rss')
  feed.addSource('rss', 'Glass', 'https://glass.photo/coryd/rss')
  feed.addSource('rss', 'Oku', 'https://oku.club/rss/collection/NvEmF')
  
  return feed.toRssFeed({
   title: "Cory Dransfeldt's activity feed",
   language: 'en',
   url: 'https://coryd.dev/follow/',
   subtitle: "Cory Dransfeldt's activity across the web.",
  })
 }
}

Когда я обновляю вышеуказанные каналы, мой канал активности, найденный по адресу https://coryd.dev/follow.xml, обновляется. Мой рабочий процесс в Make[1] наблюдает за /follow.xml, проверяя его каждые 2 часа и публикуя заголовок и URL новейшего элемента в Mastodon.

Если вы решите использовать Make для чего-то подобного, вам потребуется использовать модуль RSS, который я настроил для возврата максимум 3 элементов за проверку, а также либо модуль Mastodon, либо модуль HTTP (последний я использовал в качестве бывший ошибся при доступе к моему экземпляру). Если вы используете модуль HTTP, конфигурация довольно проста:

  1. Войдите в свой экземпляр, открыв настройки, затем меню Development.
  2. Создайте новое приложение, назовите его как хотите (мое называется coryd.dev [2]) с областью видимости write:statuses.
  3. Вернитесь к Make, подключив модуль HTTP к вашему модулю RSS.
  4. Добавьте заголовок Authorization со значением Bearer <TOKEN OBTAINED FROM YOUR MASTODON INSTANCE>.
  5. Добавьте второй заголовок с именем Accept со значением application/json.
  6. Установите тип кузова на Application/x-www-form-urlencoded
  7. Добавьте поле с ключом, установленным на status, и значением к данным Title и URL, полученным из вашего модуля RSS.
  8. Сохраните и запланируйте запуск сценария с нужной вам частотой.

Теперь вы должны видеть сообщения из вашего фида подписчиков, которые отправляются на ваш экземпляр Mastodon по мере их обновления.

  1. Сервис автоматизации перетаскивания, очень похожий на Zapier или IFTTT. ↩︎
  2. Ради тщеславия или ясности относительно источника поста. ↩︎