Skip to content

Call Baxter integration

Plugin configuration

plugins:
  - module: cb_social_plugin.bluesky
    config:
      identifier: "publisher.example"
      app_password: "${BLUESKY_APP_PASSWORD}"
      state_db_path: "/srv/data/social-publications.db"
      media_group_wait_seconds: 2

  - module: cb_social_plugin.mastodon
    config:
      base_url: "https://social.example"
      access_token: "${MASTODON_ACCESS_TOKEN}"
      state_db_path: "/srv/data/social-publications.db"
      visibility: "unlisted"

  - module: cb_social_plugin.x_plugin
    config:
      access_token: "${X_ACCESS_TOKEN}"
      state_db_path: "/srv/data/social-publications.db"
      edit_policy: "native"

Secrets above are placeholders; keep actual credentials in the normal Call Baxter secret/env boundary rather than committing them to configuration files.

Mirror the same Telegram event to several providers

id: mirror-telegram-social
enabled: true
match:
  source: telegram
  kind: telegram.message.new
actions:
  - kind: bluesky.mirror_telegram_message
    args:
      update: "{{ event.attrs.raw_update }}"
      required_hashtag: "#social"
  - kind: mastodon.mirror_telegram_message
    args:
      update: "{{ event.attrs.raw_update }}"
      required_hashtag: "#social"
  - kind: x.mirror_telegram_message
    args:
      update: "{{ event.attrs.raw_update }}"
      required_hashtag: "#social"

Add equivalent telegram.message.edited rules when edits should propagate. Bluesky and Mastodon update their existing mapped post. X follows its configured edit_policy; its native mode advances the mapping to the new post ID returned by the X edit request.

Media groups

When media_group_wait_seconds is greater than zero, every mirror action stages Telegram messages with media_group_id. Schedule each configured provider's flush action against the same state DB:

actions:
  - kind: bluesky.flush_due_media_groups
  - kind: mastodon.flush_due_media_groups
  - kind: x.flush_due_media_groups

Do not add a second broad album-staging mirror rule. As with the WordPress plugin, the ordinary mirror action itself is the staging path.