Tootbot
--- name: mastodon-publisher description: Publish content to Mastodon. Use when you need to post a Mastodon status. author: Behrang Saeedzadeh version: 0.5.0 triggers: - "post to mastodon" - "publ
Description
name: mastodon-publisher description: Publish content to Mastodon. Use when you need to post a Mastodon status. author: Behrang Saeedzadeh version: 0.5.0 triggers:
- "post to mastodon"
- "publish status to mastodon" metadata: { "clawdbot": { "emoji": "🐘" }, "requires": { "bins": ["bun"] } }
Mastodon Publisher
Publish content to Mastodon. Use when you need to share updates, posts, or media.
Usage
Post one or more statuses to Mastodon
Post a new status to Mastodon with Bun:
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, Mastodon!"}' '{"status": "Goodby, Mastodon!"}'
JSON fields
| Name | Description | Type | Example | Required | Default |
|---|---|---|---|---|---|
status |
The text content of the status | string | "Hello, World" | yes^1 | N/A |
visibility |
Sets the visibility of the posted status | public or private or unlisted or direct |
"private" | no | "public" |
language |
ISO 639-1 language code for this status | ISO-639-1 Language Code | "en" | no | |
scheduledAt |
Datetime at which to schedule a status | RFC3339 date time | "2029-02-03T15:30:45.000Z" | no | |
quoteApprovalPolicy |
Sets who is allowed to quote the status | public or followrs or nobody |
"nobody" | no | "public |
media |
Media to be attached to the status | array of {file, description} objects |
{"file": "/path/to/foo.png", "description" : "Foo"} |
no^2 |
- ^1
statuscan be ommitted when one or--media-pathparameters are present - ^2 one or
mediaobjects must be present ifstatusis ommitted - ^2
media.descriptionis optional
Environment Variables
| Name | Description | Example |
|---|---|---|
MASTODON_URL |
Your Mastodon instance URL | https://mastodon.social |
MASTODON_ACCESS_TOKEN |
Your Mastodon access token | xAyBzC |
Examples
-
Post a new status
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, Mastodon"}'Read the output and summarize it for the user.
-
Post a scheduled status
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, future!", "scheduledAt" : "2030-02-05T13:21:34.000Z"}'Read the output and summarize it for the user.
-
Post a scheduled status with visibility, language, quote approval policy, and a single media attachment
bun {baseDir}/scripts/tootbot.js <<EOF { "status" : "Dorood", "visibility" : "public", "language" : "fa", "scheduledAt" : "2029-02-03T15:30:45.123456789+03:30", "quoteApprovalPolicy" : "followers", "media" : [ { "file" : "/path/to/media.png", "description" : "Nowrooz Pirooz" } ] } EOFRead the output and summarize it for the user.
-
Post a new status with media multiple attachments
bun {baseDir}/scripts/tootbot.js <<EOF { "status" : "Edsger W Dijkstra", "visibility" : "public", "language" : "fa", "scheduledAt" : "2029-02-03T15:30:45.123456789+03:30", "quoteApprovalPolicy" : "followers", "media" : [ { "file" : "/path/to/dijkstra.png", "description" : "Portrait" }, { "file" : "/path/to/signature.png", "description" : "Signature" } ] } EOF -
Post a new status with media attachments and no status text
bun {baseDir}/scripts/tootbot.js <<EOF { "media" : [ { "file" : "/path/to/flower-1.png", "description" : "White Rose" }, { "file" : "/path/to/flower-2.png", "description" : "Red Rose" } ] } EOF
Notes
- Requires
bunto be installed and available in the PATH.
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!