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.